@donotdev/cli 0.0.13 → 0.0.14
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/dependencies-matrix.json +2 -2
- package/dist/bin/commands/agent-setup.d.ts +6 -0
- package/dist/bin/commands/agent-setup.d.ts.map +1 -0
- package/dist/bin/commands/agent-setup.js +623 -0
- package/dist/bin/commands/agent-setup.js.map +1 -0
- package/dist/bin/commands/build.js +13 -12
- package/dist/bin/commands/bump.js +70 -28
- package/dist/bin/commands/cacheout.js +13 -12
- package/dist/bin/commands/create-app.js +53 -151
- package/dist/bin/commands/create-project.js +72 -166
- package/dist/bin/commands/deploy.js +16 -15
- package/dist/bin/commands/dev.js +13 -12
- package/dist/bin/commands/emu.js +13 -12
- package/dist/bin/commands/format.js +13 -12
- package/dist/bin/commands/lint.js +13 -12
- package/dist/bin/commands/preview.js +13 -12
- package/dist/bin/commands/sync-secrets.js +13 -12
- package/dist/bin/commands/wai.js +7397 -11
- package/dist/index.js +74 -55
- package/package.json +1 -1
- package/templates/root-consumer/.claude/commands/brainstorm.md.example +1 -1
- package/templates/root-consumer/.claude/commands/build.md.example +1 -1
- package/templates/root-consumer/.claude/commands/design.md.example +1 -1
- package/templates/root-consumer/.claude/commands/polish.md.example +1 -1
- package/templates/root-consumer/.dndev/args.json.example +6 -0
- package/templates/root-consumer/.gemini/settings.json.example +2 -2
- package/templates/root-consumer/AI.md.example +25 -14
- package/templates/root-consumer/CLAUDE.md.example +10 -4
- package/templates/root-consumer/guides/dndev/AGENT_START_HERE.md.example +34 -0
- package/templates/root-consumer/guides/dndev/GOTCHAS.md.example +186 -0
- package/templates/root-consumer/guides/dndev/INDEX.md.example +1 -0
- package/templates/root-consumer/guides/dndev/SETUP_FUNCTIONS.md.example +12 -7
|
@@ -1984,7 +1984,7 @@ var require_parse = __commonJS({
|
|
|
1984
1984
|
CHAR_NO_BREAK_SPACE,
|
|
1985
1985
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
|
1986
1986
|
} = require_constants();
|
|
1987
|
-
var
|
|
1987
|
+
var parse2 = (input, options = {}) => {
|
|
1988
1988
|
if (typeof input !== "string") {
|
|
1989
1989
|
throw new TypeError("Expected a string");
|
|
1990
1990
|
}
|
|
@@ -2184,7 +2184,7 @@ var require_parse = __commonJS({
|
|
|
2184
2184
|
push({ type: "eos" });
|
|
2185
2185
|
return ast;
|
|
2186
2186
|
};
|
|
2187
|
-
module.exports =
|
|
2187
|
+
module.exports = parse2;
|
|
2188
2188
|
}
|
|
2189
2189
|
});
|
|
2190
2190
|
|
|
@@ -2196,7 +2196,7 @@ var require_braces = __commonJS({
|
|
|
2196
2196
|
var stringify2 = require_stringify();
|
|
2197
2197
|
var compile = require_compile();
|
|
2198
2198
|
var expand = require_expand();
|
|
2199
|
-
var
|
|
2199
|
+
var parse2 = require_parse();
|
|
2200
2200
|
var braces = (input, options = {}) => {
|
|
2201
2201
|
let output = [];
|
|
2202
2202
|
if (Array.isArray(input)) {
|
|
@@ -2216,7 +2216,7 @@ var require_braces = __commonJS({
|
|
|
2216
2216
|
}
|
|
2217
2217
|
return output;
|
|
2218
2218
|
};
|
|
2219
|
-
braces.parse = (input, options = {}) =>
|
|
2219
|
+
braces.parse = (input, options = {}) => parse2(input, options);
|
|
2220
2220
|
braces.stringify = (input, options = {}) => {
|
|
2221
2221
|
if (typeof input === "string") {
|
|
2222
2222
|
return stringify2(braces.parse(input, options), options);
|
|
@@ -2873,7 +2873,7 @@ var require_parse2 = __commonJS({
|
|
|
2873
2873
|
var syntaxError = (type, char) => {
|
|
2874
2874
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
2875
2875
|
};
|
|
2876
|
-
var
|
|
2876
|
+
var parse2 = (input, options) => {
|
|
2877
2877
|
if (typeof input !== "string") {
|
|
2878
2878
|
throw new TypeError("Expected a string");
|
|
2879
2879
|
}
|
|
@@ -3022,7 +3022,7 @@ var require_parse2 = __commonJS({
|
|
|
3022
3022
|
output = token.close = `)$))${extglobStar}`;
|
|
3023
3023
|
}
|
|
3024
3024
|
if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
|
|
3025
|
-
const expression =
|
|
3025
|
+
const expression = parse2(rest, { ...options, fastpaths: false }).output;
|
|
3026
3026
|
output = token.close = `)${expression})${extglobStar})`;
|
|
3027
3027
|
}
|
|
3028
3028
|
if (token.prev.type === "bos") {
|
|
@@ -3547,7 +3547,7 @@ var require_parse2 = __commonJS({
|
|
|
3547
3547
|
}
|
|
3548
3548
|
return state;
|
|
3549
3549
|
};
|
|
3550
|
-
|
|
3550
|
+
parse2.fastpaths = (input, options) => {
|
|
3551
3551
|
const opts = { ...options };
|
|
3552
3552
|
const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
3553
3553
|
const len = input.length;
|
|
@@ -3613,7 +3613,7 @@ var require_parse2 = __commonJS({
|
|
|
3613
3613
|
}
|
|
3614
3614
|
return source;
|
|
3615
3615
|
};
|
|
3616
|
-
module.exports =
|
|
3616
|
+
module.exports = parse2;
|
|
3617
3617
|
}
|
|
3618
3618
|
});
|
|
3619
3619
|
|
|
@@ -3624,7 +3624,7 @@ var require_picomatch = __commonJS({
|
|
|
3624
3624
|
init_utils();
|
|
3625
3625
|
var path = __require("path");
|
|
3626
3626
|
var scan = require_scan();
|
|
3627
|
-
var
|
|
3627
|
+
var parse2 = require_parse2();
|
|
3628
3628
|
var utils = require_utils2();
|
|
3629
3629
|
var constants2 = require_constants2();
|
|
3630
3630
|
var isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
|
|
@@ -3712,7 +3712,7 @@ var require_picomatch = __commonJS({
|
|
|
3712
3712
|
picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
|
|
3713
3713
|
picomatch.parse = (pattern, options) => {
|
|
3714
3714
|
if (Array.isArray(pattern)) return pattern.map((p2) => picomatch.parse(p2, options));
|
|
3715
|
-
return
|
|
3715
|
+
return parse2(pattern, { ...options, fastpaths: false });
|
|
3716
3716
|
};
|
|
3717
3717
|
picomatch.scan = (input, options) => scan(input, options);
|
|
3718
3718
|
picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {
|
|
@@ -3738,10 +3738,10 @@ var require_picomatch = __commonJS({
|
|
|
3738
3738
|
}
|
|
3739
3739
|
let parsed = { negated: false, fastpaths: true };
|
|
3740
3740
|
if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
|
|
3741
|
-
parsed.output =
|
|
3741
|
+
parsed.output = parse2.fastpaths(input, options);
|
|
3742
3742
|
}
|
|
3743
3743
|
if (!parsed.output) {
|
|
3744
|
-
parsed =
|
|
3744
|
+
parsed = parse2(input, options);
|
|
3745
3745
|
}
|
|
3746
3746
|
return picomatch.compileRe(parsed, options, returnOutput, returnState);
|
|
3747
3747
|
};
|
|
@@ -7724,6 +7724,7 @@ import {
|
|
|
7724
7724
|
extname as extname2,
|
|
7725
7725
|
relative as relative2,
|
|
7726
7726
|
resolve as resolve2,
|
|
7727
|
+
parse,
|
|
7727
7728
|
isAbsolute as pathIsAbsolute
|
|
7728
7729
|
} from "node:path";
|
|
7729
7730
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
@@ -1946,7 +1946,7 @@ var require_parse = __commonJS({
|
|
|
1946
1946
|
CHAR_NO_BREAK_SPACE,
|
|
1947
1947
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
|
1948
1948
|
} = require_constants();
|
|
1949
|
-
var
|
|
1949
|
+
var parse2 = (input, options = {}) => {
|
|
1950
1950
|
if (typeof input !== "string") {
|
|
1951
1951
|
throw new TypeError("Expected a string");
|
|
1952
1952
|
}
|
|
@@ -2146,7 +2146,7 @@ var require_parse = __commonJS({
|
|
|
2146
2146
|
push({ type: "eos" });
|
|
2147
2147
|
return ast;
|
|
2148
2148
|
};
|
|
2149
|
-
module.exports =
|
|
2149
|
+
module.exports = parse2;
|
|
2150
2150
|
}
|
|
2151
2151
|
});
|
|
2152
2152
|
|
|
@@ -2158,7 +2158,7 @@ var require_braces = __commonJS({
|
|
|
2158
2158
|
var stringify2 = require_stringify();
|
|
2159
2159
|
var compile = require_compile();
|
|
2160
2160
|
var expand = require_expand();
|
|
2161
|
-
var
|
|
2161
|
+
var parse2 = require_parse();
|
|
2162
2162
|
var braces = (input, options = {}) => {
|
|
2163
2163
|
let output = [];
|
|
2164
2164
|
if (Array.isArray(input)) {
|
|
@@ -2178,7 +2178,7 @@ var require_braces = __commonJS({
|
|
|
2178
2178
|
}
|
|
2179
2179
|
return output;
|
|
2180
2180
|
};
|
|
2181
|
-
braces.parse = (input, options = {}) =>
|
|
2181
|
+
braces.parse = (input, options = {}) => parse2(input, options);
|
|
2182
2182
|
braces.stringify = (input, options = {}) => {
|
|
2183
2183
|
if (typeof input === "string") {
|
|
2184
2184
|
return stringify2(braces.parse(input, options), options);
|
|
@@ -2835,7 +2835,7 @@ var require_parse2 = __commonJS({
|
|
|
2835
2835
|
var syntaxError = (type, char) => {
|
|
2836
2836
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
2837
2837
|
};
|
|
2838
|
-
var
|
|
2838
|
+
var parse2 = (input, options) => {
|
|
2839
2839
|
if (typeof input !== "string") {
|
|
2840
2840
|
throw new TypeError("Expected a string");
|
|
2841
2841
|
}
|
|
@@ -2984,7 +2984,7 @@ var require_parse2 = __commonJS({
|
|
|
2984
2984
|
output = token.close = `)$))${extglobStar}`;
|
|
2985
2985
|
}
|
|
2986
2986
|
if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
|
|
2987
|
-
const expression =
|
|
2987
|
+
const expression = parse2(rest, { ...options, fastpaths: false }).output;
|
|
2988
2988
|
output = token.close = `)${expression})${extglobStar})`;
|
|
2989
2989
|
}
|
|
2990
2990
|
if (token.prev.type === "bos") {
|
|
@@ -3509,7 +3509,7 @@ var require_parse2 = __commonJS({
|
|
|
3509
3509
|
}
|
|
3510
3510
|
return state;
|
|
3511
3511
|
};
|
|
3512
|
-
|
|
3512
|
+
parse2.fastpaths = (input, options) => {
|
|
3513
3513
|
const opts = { ...options };
|
|
3514
3514
|
const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
3515
3515
|
const len = input.length;
|
|
@@ -3575,7 +3575,7 @@ var require_parse2 = __commonJS({
|
|
|
3575
3575
|
}
|
|
3576
3576
|
return source;
|
|
3577
3577
|
};
|
|
3578
|
-
module.exports =
|
|
3578
|
+
module.exports = parse2;
|
|
3579
3579
|
}
|
|
3580
3580
|
});
|
|
3581
3581
|
|
|
@@ -3586,7 +3586,7 @@ var require_picomatch = __commonJS({
|
|
|
3586
3586
|
init_utils();
|
|
3587
3587
|
var path = __require("path");
|
|
3588
3588
|
var scan = require_scan();
|
|
3589
|
-
var
|
|
3589
|
+
var parse2 = require_parse2();
|
|
3590
3590
|
var utils = require_utils2();
|
|
3591
3591
|
var constants2 = require_constants2();
|
|
3592
3592
|
var isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
|
|
@@ -3674,7 +3674,7 @@ var require_picomatch = __commonJS({
|
|
|
3674
3674
|
picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
|
|
3675
3675
|
picomatch.parse = (pattern, options) => {
|
|
3676
3676
|
if (Array.isArray(pattern)) return pattern.map((p2) => picomatch.parse(p2, options));
|
|
3677
|
-
return
|
|
3677
|
+
return parse2(pattern, { ...options, fastpaths: false });
|
|
3678
3678
|
};
|
|
3679
3679
|
picomatch.scan = (input, options) => scan(input, options);
|
|
3680
3680
|
picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {
|
|
@@ -3700,10 +3700,10 @@ var require_picomatch = __commonJS({
|
|
|
3700
3700
|
}
|
|
3701
3701
|
let parsed = { negated: false, fastpaths: true };
|
|
3702
3702
|
if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
|
|
3703
|
-
parsed.output =
|
|
3703
|
+
parsed.output = parse2.fastpaths(input, options);
|
|
3704
3704
|
}
|
|
3705
3705
|
if (!parsed.output) {
|
|
3706
|
-
parsed =
|
|
3706
|
+
parsed = parse2(input, options);
|
|
3707
3707
|
}
|
|
3708
3708
|
return picomatch.compileRe(parsed, options, returnOutput, returnState);
|
|
3709
3709
|
};
|
|
@@ -7686,6 +7686,7 @@ import {
|
|
|
7686
7686
|
extname as extname2,
|
|
7687
7687
|
relative as relative2,
|
|
7688
7688
|
resolve as resolve2,
|
|
7689
|
+
parse,
|
|
7689
7690
|
isAbsolute as pathIsAbsolute
|
|
7690
7691
|
} from "node:path";
|
|
7691
7692
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
@@ -7693,22 +7694,18 @@ function getDirnameFromUrl(importMetaUrl) {
|
|
|
7693
7694
|
return dirname2(fileURLToPath2(importMetaUrl));
|
|
7694
7695
|
}
|
|
7695
7696
|
function detectExecutionMode() {
|
|
7696
|
-
const currentDir = process.cwd();
|
|
7697
|
-
const toolingPath = joinPath(currentDir, PACKAGE_PATHS.TOOLING);
|
|
7698
|
-
if (pathExists(toolingPath)) {
|
|
7699
|
-
return "development";
|
|
7700
|
-
}
|
|
7701
7697
|
const fileUrlPath = new URL(import.meta.url).pathname;
|
|
7702
|
-
if (fileUrlPath.includes("node_modules
|
|
7703
|
-
return "
|
|
7698
|
+
if (!fileUrlPath.includes("node_modules")) {
|
|
7699
|
+
return "development";
|
|
7704
7700
|
}
|
|
7705
7701
|
return "published";
|
|
7706
7702
|
}
|
|
7707
7703
|
function getTemplatesRoot() {
|
|
7708
7704
|
const mode = detectExecutionMode();
|
|
7709
7705
|
if (mode === "development") {
|
|
7710
|
-
const
|
|
7711
|
-
|
|
7706
|
+
const fileUrlPath = new URL(import.meta.url).pathname;
|
|
7707
|
+
const frameworkRoot = normalizePath(dirname2(fileUrlPath), "../../../..");
|
|
7708
|
+
return normalizePath(frameworkRoot, PACKAGE_PATHS.CLI, "templates");
|
|
7712
7709
|
} else {
|
|
7713
7710
|
try {
|
|
7714
7711
|
const cliRoot2 = resolveFrameworkPackage("@donotdev/cli");
|
|
@@ -7730,10 +7727,43 @@ function getTemplatesRoot() {
|
|
|
7730
7727
|
}
|
|
7731
7728
|
} catch {
|
|
7732
7729
|
}
|
|
7730
|
+
try {
|
|
7731
|
+
const currentScriptDir = getDirnameFromUrl(import.meta.url);
|
|
7732
|
+
const packageRoot = findPackageRootUp(currentScriptDir, "@donotdev/cli");
|
|
7733
|
+
if (packageRoot) {
|
|
7734
|
+
const templatesPath = normalizePath(packageRoot, "templates");
|
|
7735
|
+
if (pathExists(templatesPath)) {
|
|
7736
|
+
return templatesPath;
|
|
7737
|
+
}
|
|
7738
|
+
}
|
|
7739
|
+
} catch {
|
|
7740
|
+
}
|
|
7733
7741
|
const cliRoot = getCliRootFromBundle();
|
|
7734
7742
|
return normalizePath(cliRoot, "templates");
|
|
7735
7743
|
}
|
|
7736
7744
|
}
|
|
7745
|
+
function findPackageRootUp(startDir, packageName) {
|
|
7746
|
+
let currentDir = normalizePath(startDir);
|
|
7747
|
+
const root = parse(currentDir).root;
|
|
7748
|
+
const fs2 = createRequire2(import.meta.url)("node:fs");
|
|
7749
|
+
while (currentDir !== root) {
|
|
7750
|
+
const packageJsonPath = joinPath(currentDir, "package.json");
|
|
7751
|
+
if (fs2.existsSync(packageJsonPath)) {
|
|
7752
|
+
try {
|
|
7753
|
+
const content = fs2.readFileSync(packageJsonPath, "utf8");
|
|
7754
|
+
const pkg = JSON.parse(content);
|
|
7755
|
+
if (pkg.name === packageName) {
|
|
7756
|
+
return currentDir;
|
|
7757
|
+
}
|
|
7758
|
+
} catch {
|
|
7759
|
+
}
|
|
7760
|
+
}
|
|
7761
|
+
const parentDir = getDirname(currentDir);
|
|
7762
|
+
if (parentDir === currentDir) break;
|
|
7763
|
+
currentDir = parentDir;
|
|
7764
|
+
}
|
|
7765
|
+
return null;
|
|
7766
|
+
}
|
|
7737
7767
|
function getCliRootFromBundle() {
|
|
7738
7768
|
const currentDir = getDirnameFromUrl(import.meta.url);
|
|
7739
7769
|
return normalizePath(currentDir, "..", "..", "..");
|
|
@@ -8061,11 +8091,15 @@ var SYNC_PATHS = [
|
|
|
8061
8091
|
"CLAUDE.md.example",
|
|
8062
8092
|
// MCP config
|
|
8063
8093
|
".cursor/mcp.json.example",
|
|
8064
|
-
".mcp.json.example"
|
|
8094
|
+
".mcp.json.example",
|
|
8095
|
+
// Project args (created if missing, preserved if customized)
|
|
8096
|
+
".dndev/args.json.example"
|
|
8065
8097
|
];
|
|
8066
8098
|
var PRESERVE_IF_EXISTS = [
|
|
8067
|
-
"CLAUDE.md"
|
|
8099
|
+
"CLAUDE.md",
|
|
8068
8100
|
// User may have customized
|
|
8101
|
+
"args.json"
|
|
8102
|
+
// User/agent may have customized features
|
|
8069
8103
|
];
|
|
8070
8104
|
function getSourceTemplatesPath() {
|
|
8071
8105
|
try {
|
|
@@ -8074,10 +8108,18 @@ function getSourceTemplatesPath() {
|
|
|
8074
8108
|
if (pathExists(rootConsumerPath)) {
|
|
8075
8109
|
return normalizePath(rootConsumerPath);
|
|
8076
8110
|
}
|
|
8077
|
-
|
|
8078
|
-
}
|
|
8079
|
-
|
|
8111
|
+
} catch {
|
|
8112
|
+
}
|
|
8113
|
+
const appRoot = getAppRoot();
|
|
8114
|
+
if (appRoot) {
|
|
8115
|
+
const directPath = joinPath(appRoot, "node_modules", "@donotdev", "cli", "templates", "root-consumer");
|
|
8116
|
+
if (pathExists(directPath)) {
|
|
8117
|
+
log.info("Found templates via node_modules lookup");
|
|
8118
|
+
return normalizePath(directPath);
|
|
8119
|
+
}
|
|
8080
8120
|
}
|
|
8121
|
+
log.warn("Could not find @donotdev/cli templates. Is @donotdev/cli installed?");
|
|
8122
|
+
return null;
|
|
8081
8123
|
}
|
|
8082
8124
|
async function syncFile(sourcePath, destPath, preserveIfExists, appRoot) {
|
|
8083
8125
|
const destPathWithoutExample = destPath.endsWith(".example") ? destPath.slice(0, -8) : destPath;
|
|
@@ -8194,7 +8236,7 @@ async function syncDocumentation(options = {}) {
|
|
|
8194
8236
|
}
|
|
8195
8237
|
const sourceRoot = getSourceTemplatesPath();
|
|
8196
8238
|
if (!sourceRoot) {
|
|
8197
|
-
log.
|
|
8239
|
+
log.error("Could not find framework templates. Documentation sync failed.");
|
|
8198
8240
|
log.info("");
|
|
8199
8241
|
log.info(" Templates are looked up the same way as create-project:");
|
|
8200
8242
|
log.info(" \u2022 Published mode: node_modules/@donotdev/cli/templates");
|
|
@@ -8203,7 +8245,7 @@ async function syncDocumentation(options = {}) {
|
|
|
8203
8245
|
log.info(" To enable docs sync:");
|
|
8204
8246
|
log.info(" \u2022 Install @donotdev/cli: bun add -D @donotdev/cli");
|
|
8205
8247
|
log.info(" \u2022 Or run from framework monorepo (dev mode)");
|
|
8206
|
-
return
|
|
8248
|
+
return 1;
|
|
8207
8249
|
}
|
|
8208
8250
|
log.info(`Source templates: ${sourceRoot}`);
|
|
8209
8251
|
log.info(`Destination: ${appRoot}`);
|
|
@@ -1596,7 +1596,7 @@ var require_parse = __commonJS({
|
|
|
1596
1596
|
CHAR_NO_BREAK_SPACE,
|
|
1597
1597
|
CHAR_ZERO_WIDTH_NOBREAK_SPACE
|
|
1598
1598
|
} = require_constants();
|
|
1599
|
-
var
|
|
1599
|
+
var parse2 = (input, options = {}) => {
|
|
1600
1600
|
if (typeof input !== "string") {
|
|
1601
1601
|
throw new TypeError("Expected a string");
|
|
1602
1602
|
}
|
|
@@ -1796,7 +1796,7 @@ var require_parse = __commonJS({
|
|
|
1796
1796
|
push({ type: "eos" });
|
|
1797
1797
|
return ast;
|
|
1798
1798
|
};
|
|
1799
|
-
module.exports =
|
|
1799
|
+
module.exports = parse2;
|
|
1800
1800
|
}
|
|
1801
1801
|
});
|
|
1802
1802
|
|
|
@@ -1808,7 +1808,7 @@ var require_braces = __commonJS({
|
|
|
1808
1808
|
var stringify2 = require_stringify();
|
|
1809
1809
|
var compile = require_compile();
|
|
1810
1810
|
var expand = require_expand();
|
|
1811
|
-
var
|
|
1811
|
+
var parse2 = require_parse();
|
|
1812
1812
|
var braces = (input, options = {}) => {
|
|
1813
1813
|
let output = [];
|
|
1814
1814
|
if (Array.isArray(input)) {
|
|
@@ -1828,7 +1828,7 @@ var require_braces = __commonJS({
|
|
|
1828
1828
|
}
|
|
1829
1829
|
return output;
|
|
1830
1830
|
};
|
|
1831
|
-
braces.parse = (input, options = {}) =>
|
|
1831
|
+
braces.parse = (input, options = {}) => parse2(input, options);
|
|
1832
1832
|
braces.stringify = (input, options = {}) => {
|
|
1833
1833
|
if (typeof input === "string") {
|
|
1834
1834
|
return stringify2(braces.parse(input, options), options);
|
|
@@ -2485,7 +2485,7 @@ var require_parse2 = __commonJS({
|
|
|
2485
2485
|
var syntaxError = (type, char) => {
|
|
2486
2486
|
return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
2487
2487
|
};
|
|
2488
|
-
var
|
|
2488
|
+
var parse2 = (input, options) => {
|
|
2489
2489
|
if (typeof input !== "string") {
|
|
2490
2490
|
throw new TypeError("Expected a string");
|
|
2491
2491
|
}
|
|
@@ -2634,7 +2634,7 @@ var require_parse2 = __commonJS({
|
|
|
2634
2634
|
output = token.close = `)$))${extglobStar}`;
|
|
2635
2635
|
}
|
|
2636
2636
|
if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
|
|
2637
|
-
const expression =
|
|
2637
|
+
const expression = parse2(rest, { ...options, fastpaths: false }).output;
|
|
2638
2638
|
output = token.close = `)${expression})${extglobStar})`;
|
|
2639
2639
|
}
|
|
2640
2640
|
if (token.prev.type === "bos") {
|
|
@@ -3159,7 +3159,7 @@ var require_parse2 = __commonJS({
|
|
|
3159
3159
|
}
|
|
3160
3160
|
return state;
|
|
3161
3161
|
};
|
|
3162
|
-
|
|
3162
|
+
parse2.fastpaths = (input, options) => {
|
|
3163
3163
|
const opts = { ...options };
|
|
3164
3164
|
const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
|
|
3165
3165
|
const len = input.length;
|
|
@@ -3225,7 +3225,7 @@ var require_parse2 = __commonJS({
|
|
|
3225
3225
|
}
|
|
3226
3226
|
return source;
|
|
3227
3227
|
};
|
|
3228
|
-
module.exports =
|
|
3228
|
+
module.exports = parse2;
|
|
3229
3229
|
}
|
|
3230
3230
|
});
|
|
3231
3231
|
|
|
@@ -3236,7 +3236,7 @@ var require_picomatch = __commonJS({
|
|
|
3236
3236
|
init_utils();
|
|
3237
3237
|
var path = __require("path");
|
|
3238
3238
|
var scan = require_scan();
|
|
3239
|
-
var
|
|
3239
|
+
var parse2 = require_parse2();
|
|
3240
3240
|
var utils = require_utils2();
|
|
3241
3241
|
var constants2 = require_constants2();
|
|
3242
3242
|
var isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
|
|
@@ -3324,7 +3324,7 @@ var require_picomatch = __commonJS({
|
|
|
3324
3324
|
picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
|
|
3325
3325
|
picomatch.parse = (pattern, options) => {
|
|
3326
3326
|
if (Array.isArray(pattern)) return pattern.map((p) => picomatch.parse(p, options));
|
|
3327
|
-
return
|
|
3327
|
+
return parse2(pattern, { ...options, fastpaths: false });
|
|
3328
3328
|
};
|
|
3329
3329
|
picomatch.scan = (input, options) => scan(input, options);
|
|
3330
3330
|
picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {
|
|
@@ -3350,10 +3350,10 @@ var require_picomatch = __commonJS({
|
|
|
3350
3350
|
}
|
|
3351
3351
|
let parsed = { negated: false, fastpaths: true };
|
|
3352
3352
|
if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) {
|
|
3353
|
-
parsed.output =
|
|
3353
|
+
parsed.output = parse2.fastpaths(input, options);
|
|
3354
3354
|
}
|
|
3355
3355
|
if (!parsed.output) {
|
|
3356
|
-
parsed =
|
|
3356
|
+
parsed = parse2(input, options);
|
|
3357
3357
|
}
|
|
3358
3358
|
return picomatch.compileRe(parsed, options, returnOutput, returnState);
|
|
3359
3359
|
};
|
|
@@ -7336,6 +7336,7 @@ import {
|
|
|
7336
7336
|
extname as extname2,
|
|
7337
7337
|
relative as relative2,
|
|
7338
7338
|
resolve as resolve2,
|
|
7339
|
+
parse,
|
|
7339
7340
|
isAbsolute as pathIsAbsolute
|
|
7340
7341
|
} from "node:path";
|
|
7341
7342
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|