@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.
Files changed (32) hide show
  1. package/dependencies-matrix.json +2 -2
  2. package/dist/bin/commands/agent-setup.d.ts +6 -0
  3. package/dist/bin/commands/agent-setup.d.ts.map +1 -0
  4. package/dist/bin/commands/agent-setup.js +623 -0
  5. package/dist/bin/commands/agent-setup.js.map +1 -0
  6. package/dist/bin/commands/build.js +13 -12
  7. package/dist/bin/commands/bump.js +70 -28
  8. package/dist/bin/commands/cacheout.js +13 -12
  9. package/dist/bin/commands/create-app.js +53 -151
  10. package/dist/bin/commands/create-project.js +72 -166
  11. package/dist/bin/commands/deploy.js +16 -15
  12. package/dist/bin/commands/dev.js +13 -12
  13. package/dist/bin/commands/emu.js +13 -12
  14. package/dist/bin/commands/format.js +13 -12
  15. package/dist/bin/commands/lint.js +13 -12
  16. package/dist/bin/commands/preview.js +13 -12
  17. package/dist/bin/commands/sync-secrets.js +13 -12
  18. package/dist/bin/commands/wai.js +7397 -11
  19. package/dist/index.js +74 -55
  20. package/package.json +1 -1
  21. package/templates/root-consumer/.claude/commands/brainstorm.md.example +1 -1
  22. package/templates/root-consumer/.claude/commands/build.md.example +1 -1
  23. package/templates/root-consumer/.claude/commands/design.md.example +1 -1
  24. package/templates/root-consumer/.claude/commands/polish.md.example +1 -1
  25. package/templates/root-consumer/.dndev/args.json.example +6 -0
  26. package/templates/root-consumer/.gemini/settings.json.example +2 -2
  27. package/templates/root-consumer/AI.md.example +25 -14
  28. package/templates/root-consumer/CLAUDE.md.example +10 -4
  29. package/templates/root-consumer/guides/dndev/AGENT_START_HERE.md.example +34 -0
  30. package/templates/root-consumer/guides/dndev/GOTCHAS.md.example +186 -0
  31. package/templates/root-consumer/guides/dndev/INDEX.md.example +1 -0
  32. 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 parse = (input, options = {}) => {
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 = parse;
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 parse = require_parse();
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 = {}) => 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 parse = (input, options) => {
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 = parse(rest, { ...options, fastpaths: false }).output;
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
- parse.fastpaths = (input, options) => {
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 = parse;
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 parse = require_parse2();
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 parse(pattern, { ...options, fastpaths: false });
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 = parse.fastpaths(input, options);
3741
+ parsed.output = parse2.fastpaths(input, options);
3742
3742
  }
3743
3743
  if (!parsed.output) {
3744
- parsed = parse(input, options);
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 parse = (input, options = {}) => {
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 = parse;
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 parse = require_parse();
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 = {}) => 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 parse = (input, options) => {
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 = parse(rest, { ...options, fastpaths: false }).output;
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
- parse.fastpaths = (input, options) => {
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 = parse;
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 parse = require_parse2();
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 parse(pattern, { ...options, fastpaths: false });
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 = parse.fastpaths(input, options);
3703
+ parsed.output = parse2.fastpaths(input, options);
3704
3704
  }
3705
3705
  if (!parsed.output) {
3706
- parsed = parse(input, options);
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/@donotdev/cli")) {
7703
- return "published";
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 repoRoot = getRepoRoot();
7711
- return normalizePath(repoRoot, PACKAGE_PATHS.CLI, "templates");
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
- return null;
8078
- } catch (error2) {
8079
- return null;
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.warn("Could not find framework templates. Documentation sync skipped.");
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 0;
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 parse = (input, options = {}) => {
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 = parse;
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 parse = require_parse();
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 = {}) => 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 parse = (input, options) => {
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 = parse(rest, { ...options, fastpaths: false }).output;
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
- parse.fastpaths = (input, options) => {
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 = parse;
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 parse = require_parse2();
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 parse(pattern, { ...options, fastpaths: false });
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 = parse.fastpaths(input, options);
3353
+ parsed.output = parse2.fastpaths(input, options);
3354
3354
  }
3355
3355
  if (!parsed.output) {
3356
- parsed = parse(input, options);
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";