shell-dsl 0.0.26 → 0.0.28

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 (127) hide show
  1. package/dist/cjs/index.cjs +24 -13
  2. package/dist/cjs/index.cjs.map +2 -2
  3. package/dist/cjs/package.json +1 -1
  4. package/dist/cjs/src/commands/awk/awk.cjs +19 -9
  5. package/dist/cjs/src/commands/awk/awk.cjs.map +2 -2
  6. package/dist/cjs/src/commands/break-continue/break-continue.cjs +19 -9
  7. package/dist/cjs/src/commands/break-continue/break-continue.cjs.map +2 -2
  8. package/dist/cjs/src/commands/cat/cat.cjs +19 -9
  9. package/dist/cjs/src/commands/cat/cat.cjs.map +2 -2
  10. package/dist/cjs/src/commands/cd/cd.cjs +19 -9
  11. package/dist/cjs/src/commands/cd/cd.cjs.map +2 -2
  12. package/dist/cjs/src/commands/colon/colon.cjs +19 -9
  13. package/dist/cjs/src/commands/colon/colon.cjs.map +2 -2
  14. package/dist/cjs/src/commands/cp/cp.cjs +19 -9
  15. package/dist/cjs/src/commands/cp/cp.cjs.map +2 -2
  16. package/dist/cjs/src/commands/cut/cut.cjs +19 -9
  17. package/dist/cjs/src/commands/cut/cut.cjs.map +2 -2
  18. package/dist/cjs/src/commands/echo/echo.cjs +19 -9
  19. package/dist/cjs/src/commands/echo/echo.cjs.map +2 -2
  20. package/dist/cjs/src/commands/find/find.cjs +21 -66
  21. package/dist/cjs/src/commands/find/find.cjs.map +3 -3
  22. package/dist/cjs/src/commands/grep/grep.cjs +22 -26
  23. package/dist/cjs/src/commands/grep/grep.cjs.map +3 -3
  24. package/dist/cjs/src/commands/head/head.cjs +19 -9
  25. package/dist/cjs/src/commands/head/head.cjs.map +2 -2
  26. package/dist/cjs/src/commands/index.cjs +19 -9
  27. package/dist/cjs/src/commands/index.cjs.map +2 -2
  28. package/dist/cjs/src/commands/ls/ls.cjs +19 -9
  29. package/dist/cjs/src/commands/ls/ls.cjs.map +2 -2
  30. package/dist/cjs/src/commands/mkdir/mkdir.cjs +19 -9
  31. package/dist/cjs/src/commands/mkdir/mkdir.cjs.map +2 -2
  32. package/dist/cjs/src/commands/mv/mv.cjs +19 -9
  33. package/dist/cjs/src/commands/mv/mv.cjs.map +2 -2
  34. package/dist/cjs/src/commands/pwd/pwd.cjs +19 -9
  35. package/dist/cjs/src/commands/pwd/pwd.cjs.map +2 -2
  36. package/dist/cjs/src/commands/rm/rm.cjs +19 -9
  37. package/dist/cjs/src/commands/rm/rm.cjs.map +2 -2
  38. package/dist/cjs/src/commands/sed/sed.cjs +19 -9
  39. package/dist/cjs/src/commands/sed/sed.cjs.map +2 -2
  40. package/dist/cjs/src/commands/sort/sort.cjs +19 -9
  41. package/dist/cjs/src/commands/sort/sort.cjs.map +2 -2
  42. package/dist/cjs/src/commands/tail/tail.cjs +19 -9
  43. package/dist/cjs/src/commands/tail/tail.cjs.map +2 -2
  44. package/dist/cjs/src/commands/tee/tee.cjs +19 -9
  45. package/dist/cjs/src/commands/tee/tee.cjs.map +2 -2
  46. package/dist/cjs/src/commands/test/test.cjs +19 -9
  47. package/dist/cjs/src/commands/test/test.cjs.map +2 -2
  48. package/dist/cjs/src/commands/touch/touch.cjs +19 -9
  49. package/dist/cjs/src/commands/touch/touch.cjs.map +2 -2
  50. package/dist/cjs/src/commands/tr/tr.cjs +19 -9
  51. package/dist/cjs/src/commands/tr/tr.cjs.map +2 -2
  52. package/dist/cjs/src/commands/tree/tree.cjs +33 -12
  53. package/dist/cjs/src/commands/tree/tree.cjs.map +3 -3
  54. package/dist/cjs/src/commands/true-false/true-false.cjs +19 -9
  55. package/dist/cjs/src/commands/true-false/true-false.cjs.map +2 -2
  56. package/dist/cjs/src/commands/uniq/uniq.cjs +19 -9
  57. package/dist/cjs/src/commands/uniq/uniq.cjs.map +2 -2
  58. package/dist/cjs/src/commands/wc/wc.cjs +19 -9
  59. package/dist/cjs/src/commands/wc/wc.cjs.map +2 -2
  60. package/dist/cjs/src/errors.cjs +19 -9
  61. package/dist/cjs/src/errors.cjs.map +2 -2
  62. package/dist/cjs/src/fs/index.cjs +19 -9
  63. package/dist/cjs/src/fs/index.cjs.map +2 -2
  64. package/dist/cjs/src/fs/memfs-adapter.cjs +31 -10
  65. package/dist/cjs/src/fs/memfs-adapter.cjs.map +2 -2
  66. package/dist/cjs/src/fs/readonly-fs.cjs +19 -9
  67. package/dist/cjs/src/fs/readonly-fs.cjs.map +2 -2
  68. package/dist/cjs/src/fs/real-fs.cjs +31 -10
  69. package/dist/cjs/src/fs/real-fs.cjs.map +2 -2
  70. package/dist/cjs/src/index.cjs +19 -9
  71. package/dist/cjs/src/index.cjs.map +2 -2
  72. package/dist/cjs/src/interpreter/context.cjs +19 -9
  73. package/dist/cjs/src/interpreter/context.cjs.map +2 -2
  74. package/dist/cjs/src/interpreter/index.cjs +19 -9
  75. package/dist/cjs/src/interpreter/index.cjs.map +2 -2
  76. package/dist/cjs/src/interpreter/interpreter.cjs +19 -9
  77. package/dist/cjs/src/interpreter/interpreter.cjs.map +2 -2
  78. package/dist/cjs/src/io/index.cjs +19 -9
  79. package/dist/cjs/src/io/index.cjs.map +2 -2
  80. package/dist/cjs/src/io/stdin.cjs +19 -9
  81. package/dist/cjs/src/io/stdin.cjs.map +2 -2
  82. package/dist/cjs/src/io/stdout.cjs +19 -9
  83. package/dist/cjs/src/io/stdout.cjs.map +2 -2
  84. package/dist/cjs/src/lexer/index.cjs +19 -9
  85. package/dist/cjs/src/lexer/index.cjs.map +2 -2
  86. package/dist/cjs/src/lexer/lexer.cjs +19 -9
  87. package/dist/cjs/src/lexer/lexer.cjs.map +2 -2
  88. package/dist/cjs/src/lexer/tokens.cjs +19 -9
  89. package/dist/cjs/src/lexer/tokens.cjs.map +2 -2
  90. package/dist/cjs/src/parser/ast.cjs +19 -9
  91. package/dist/cjs/src/parser/ast.cjs.map +2 -2
  92. package/dist/cjs/src/parser/index.cjs +19 -9
  93. package/dist/cjs/src/parser/index.cjs.map +2 -2
  94. package/dist/cjs/src/parser/parser.cjs +19 -9
  95. package/dist/cjs/src/parser/parser.cjs.map +2 -2
  96. package/dist/cjs/src/shell-dsl.cjs +19 -9
  97. package/dist/cjs/src/shell-dsl.cjs.map +2 -2
  98. package/dist/cjs/src/shell-promise.cjs +19 -9
  99. package/dist/cjs/src/shell-promise.cjs.map +2 -2
  100. package/dist/cjs/src/types.cjs +19 -9
  101. package/dist/cjs/src/types.cjs.map +2 -2
  102. package/dist/cjs/src/utils/escape.cjs +19 -9
  103. package/dist/cjs/src/utils/escape.cjs.map +2 -2
  104. package/dist/cjs/src/utils/expand-escapes.cjs +19 -9
  105. package/dist/cjs/src/utils/expand-escapes.cjs.map +2 -2
  106. package/dist/cjs/src/utils/flag-parser.cjs +27 -9
  107. package/dist/cjs/src/utils/flag-parser.cjs.map +3 -3
  108. package/dist/cjs/src/utils/index.cjs +21 -9
  109. package/dist/cjs/src/utils/index.cjs.map +3 -3
  110. package/dist/cjs/src/utils/match-glob.cjs +102 -0
  111. package/dist/cjs/src/utils/match-glob.cjs.map +10 -0
  112. package/dist/mjs/package.json +1 -1
  113. package/dist/mjs/src/commands/find/find.mjs +2 -57
  114. package/dist/mjs/src/commands/find/find.mjs.map +3 -3
  115. package/dist/mjs/src/commands/grep/grep.mjs +4 -18
  116. package/dist/mjs/src/commands/grep/grep.mjs.map +3 -3
  117. package/dist/mjs/src/commands/tree/tree.mjs +15 -4
  118. package/dist/mjs/src/commands/tree/tree.mjs.map +3 -3
  119. package/dist/mjs/src/utils/flag-parser.mjs +9 -1
  120. package/dist/mjs/src/utils/flag-parser.mjs.map +3 -3
  121. package/dist/mjs/src/utils/index.mjs +3 -1
  122. package/dist/mjs/src/utils/index.mjs.map +3 -3
  123. package/dist/mjs/src/utils/match-glob.mjs +62 -0
  124. package/dist/mjs/src/utils/match-glob.mjs.map +10 -0
  125. package/dist/types/src/utils/index.d.ts +1 -0
  126. package/dist/types/src/utils/match-glob.d.ts +5 -0
  127. package/package.json +1 -1
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -156,4 +166,4 @@ class ShellPromise {
156
166
  }
157
167
  }
158
168
 
159
- //# debugId=EB0C45A42A4FCC6464756E2164756E21
169
+ //# debugId=3425E56DF2B7E24B64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { ExecResult } from \"./types.cjs\";\nimport { ShellError } from \"./errors.cjs\";\n\nexport interface ExecuteOverrides {\n cwd?: string;\n env?: Record<string, string>;\n}\n\nexport interface ShellPromiseOptions {\n execute: (overrides: ExecuteOverrides) => Promise<ExecResult>;\n cwdOverride?: string;\n envOverride?: Record<string, string>;\n shouldThrow?: boolean;\n quiet?: boolean;\n}\n\nexport class ShellPromise implements PromiseLike<ExecResult> {\n private executor: (overrides: ExecuteOverrides) => Promise<ExecResult>;\n private cwdOverride?: string;\n private envOverride?: Record<string, string>;\n private shouldThrow: boolean;\n private isQuiet: boolean;\n private cachedResult?: Promise<ExecResult>;\n\n constructor(options: ShellPromiseOptions) {\n this.executor = options.execute;\n this.cwdOverride = options.cwdOverride;\n this.envOverride = options.envOverride;\n this.shouldThrow = options.shouldThrow ?? true;\n this.isQuiet = options.quiet ?? false;\n }\n\n private async run(): Promise<ExecResult> {\n if (!this.cachedResult) {\n this.cachedResult = this.executor({\n cwd: this.cwdOverride,\n env: this.envOverride,\n });\n }\n\n const result = await this.cachedResult;\n\n if (this.shouldThrow && result.exitCode !== 0) {\n throw new ShellError(\n `Command failed with exit code ${result.exitCode}`,\n result.stdout,\n result.stderr,\n result.exitCode\n );\n }\n\n return result;\n }\n\n then<TResult1 = ExecResult, TResult2 = never>(\n onfulfilled?: ((value: ExecResult) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<TResult1 | TResult2> {\n return this.run().then(onfulfilled, onrejected);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null\n ): Promise<ExecResult | TResult> {\n return this.run().catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | null): Promise<ExecResult> {\n return this.run().finally(onfinally);\n }\n\n // Output formats\n async text(): Promise<string> {\n const result = await this.run();\n return result.stdout.toString(\"utf-8\");\n }\n\n async json<T = unknown>(): Promise<T> {\n const text = await this.text();\n return JSON.parse(text);\n }\n\n async *lines(): AsyncIterable<string> {\n const text = await this.text();\n const lines = text.split(\"\\n\");\n // Remove trailing empty line if present\n if (lines[lines.length - 1] === \"\") {\n lines.pop();\n }\n for (const line of lines) {\n yield line;\n }\n }\n\n async blob(): Promise<Blob> {\n const result = await this.run();\n return new Blob([result.stdout]);\n }\n\n async buffer(): Promise<Buffer> {\n const result = await this.run();\n return result.stdout;\n }\n\n // Behavior modifiers - return new ShellPromise with modified options\n quiet(): ShellPromise {\n return new ShellPromise({\n execute: this.executor,\n cwdOverride: this.cwdOverride,\n envOverride: this.envOverride,\n shouldThrow: this.shouldThrow,\n quiet: true,\n });\n }\n\n nothrow(): ShellPromise {\n return new ShellPromise({\n execute: this.executor,\n cwdOverride: this.cwdOverride,\n envOverride: this.envOverride,\n shouldThrow: false,\n quiet: this.isQuiet,\n });\n }\n\n throws(enable: boolean): ShellPromise {\n return new ShellPromise({\n execute: this.executor,\n cwdOverride: this.cwdOverride,\n envOverride: this.envOverride,\n shouldThrow: enable,\n quiet: this.isQuiet,\n });\n }\n\n // Context overrides - these need to be handled by the shell\n cwd(path: string): ShellPromise {\n return new ShellPromise({\n execute: this.executor,\n cwdOverride: path,\n envOverride: this.envOverride,\n shouldThrow: this.shouldThrow,\n quiet: this.isQuiet,\n });\n }\n\n env(vars: Record<string, string>): ShellPromise {\n return new ShellPromise({\n execute: this.executor,\n cwdOverride: this.cwdOverride,\n envOverride: { ...this.envOverride, ...vars },\n shouldThrow: this.shouldThrow,\n quiet: this.isQuiet,\n });\n }\n\n // Getters for internal state (used by ShellDSL)\n getCwdOverride(): string | undefined {\n return this.cwdOverride;\n }\n\n getEnvOverride(): Record<string, string> | undefined {\n return this.envOverride;\n }\n\n getShouldThrow(): boolean {\n return this.shouldThrow;\n }\n\n getIsQuiet(): boolean {\n return this.isQuiet;\n }\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "EB0C45A42A4FCC6464756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "3425E56DF2B7E24B64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -40,4 +50,4 @@ function isRedirectObject(value) {
40
50
  return Buffer.isBuffer(value) || value instanceof Blob || value instanceof Response || typeof value === "string";
41
51
  }
42
52
 
43
- //# debugId=A099C0F37A42BA3264756E2164756E21
53
+ //# debugId=324A9AF65A2908F664756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "// Virtual Filesystem Interface\nexport interface VirtualFS {\n readFile(path: string): Promise<Buffer>;\n readFile(path: string, encoding: BufferEncoding): Promise<string>;\n readdir(path: string): Promise<string[]>;\n stat(path: string): Promise<FileStat>;\n exists(path: string): Promise<boolean>;\n\n writeFile(path: string, data: Buffer | string): Promise<void>;\n appendFile(path: string, data: Buffer | string): Promise<void>;\n mkdir(path: string, opts?: { recursive?: boolean }): Promise<void>;\n\n rm(path: string, opts?: { recursive?: boolean; force?: boolean }): Promise<void>;\n\n resolve(...paths: string[]): string;\n dirname(path: string): string;\n basename(path: string): string;\n glob(pattern: string, opts?: { cwd?: string }): Promise<string[]>;\n}\n\nexport interface FileStat {\n isFile(): boolean;\n isDirectory(): boolean;\n size: number;\n mtime: Date;\n}\n\n// Command Interfaces\nexport type Command = (ctx: CommandContext) => Promise<number>;\n\nexport interface CommandContext {\n args: string[];\n stdin: Stdin;\n stdout: Stdout;\n stderr: Stderr;\n fs: VirtualFS;\n cwd: string;\n env: Record<string, string>;\n setCwd: (path: string) => void;\n exec?: (name: string, args: string[]) => Promise<ExecResult>;\n}\n\nexport interface Stdin {\n stream(): AsyncIterable<Uint8Array>;\n buffer(): Promise<Buffer>;\n text(): Promise<string>;\n lines(): AsyncIterable<string>;\n}\n\nexport interface Stdout {\n write(chunk: Uint8Array): Promise<void>;\n writeText(str: string): Promise<void>;\n isTTY: boolean;\n}\n\nexport interface Stderr {\n write(chunk: Uint8Array): Promise<void>;\n writeText(str: string): Promise<void>;\n isTTY: boolean;\n}\n\nexport interface OutputCollector extends Stdout {\n close(): void;\n collect(): Promise<Buffer>;\n getReadableStream(): AsyncIterable<Uint8Array>;\n}\n\n// Execution Result\nexport interface ExecResult {\n stdout: Buffer;\n stderr: Buffer;\n exitCode: number;\n}\n\n// Shell Configuration\nexport interface ShellConfig {\n fs: VirtualFS;\n cwd: string;\n env: Record<string, string>;\n commands: Record<string, Command>;\n isTTY?: boolean;\n}\n\n// Raw escape hatch type\nexport interface RawValue {\n raw: string;\n}\n\nexport function isRawValue(value: unknown): value is RawValue {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"raw\" in value &&\n typeof (value as RawValue).raw === \"string\"\n );\n}\n\n// JS Object Redirection types\nexport type RedirectObject = Buffer | Blob | Response | string;\n\nexport interface RedirectObjectMap {\n [marker: string]: RedirectObject;\n}\n\nexport function isRedirectObject(value: unknown): value is RedirectObject {\n return (\n Buffer.isBuffer(value) ||\n value instanceof Blob ||\n value instanceof Response ||\n typeof value === \"string\"\n );\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFO,SAAS,UAAU,CAAC,OAAmC;AAAA,EAC5D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,SAAS,SACT,OAAQ,MAAmB,QAAQ;AAAA;AAWhC,SAAS,gBAAgB,CAAC,OAAyC;AAAA,EACxE,OACE,OAAO,SAAS,KAAK,KACrB,iBAAiB,QACjB,iBAAiB,YACjB,OAAO,UAAU;AAAA;",
8
- "debugId": "A099C0F37A42BA3264756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFO,SAAS,UAAU,CAAC,OAAmC;AAAA,EAC5D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,SAAS,SACT,OAAQ,MAAmB,QAAQ;AAAA;AAWhC,SAAS,gBAAgB,CAAC,OAAyC;AAAA,EACxE,OACE,OAAO,SAAS,KAAK,KACrB,iBAAiB,QACjB,iBAAiB,YACjB,OAAO,UAAU;AAAA;",
8
+ "debugId": "324A9AF65A2908F664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -50,4 +60,4 @@ function escapeForInterpolation(value) {
50
60
  return str.replace(/([|&;<>()$`\\\"' \t\n*?[\]#~=%])/g, "\\$1");
51
61
  }
52
62
 
53
- //# debugId=5EB64E92B679686C64756E2164756E21
63
+ //# debugId=AD065BD7055AEC0964756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "const SHELL_SPECIAL_CHARS = /[|&;<>()$`\\\\\\\"' \\t\\n*?[\\]#~=%]/;\n\nexport function escape(str: string): string {\n if (str === \"\") return \"''\";\n\n if (!SHELL_SPECIAL_CHARS.test(str)) {\n return str;\n }\n\n // Escape using single quotes, handling embedded single quotes\n return \"'\" + str.replace(/'/g, \"'\\\\''\") + \"'\";\n}\n\nexport function escapeForInterpolation(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n\n const str = String(value);\n\n // Escape shell special characters\n return str.replace(/([|&;<>()$`\\\\\\\"' \\t\\n*?[\\]#~=%])/g, \"\\\\$1\");\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,sBAAsB;AAErB,SAAS,MAAM,CAAC,KAAqB;AAAA,EAC1C,IAAI,QAAQ;AAAA,IAAI,OAAO;AAAA,EAEvB,IAAI,CAAC,oBAAoB,KAAK,GAAG,GAAG;AAAA,IAClC,OAAO;AAAA,EACT;AAAA,EAGA,OAAO,MAAM,IAAI,QAAQ,MAAM,OAAO,IAAI;AAAA;AAGrC,SAAS,sBAAsB,CAAC,OAAwB;AAAA,EAC7D,IAAI,UAAU,QAAQ,UAAU,WAAW;AAAA,IACzC,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,OAAO,KAAK;AAAA,EAGxB,OAAO,IAAI,QAAQ,qCAAqC,MAAM;AAAA;",
8
- "debugId": "5EB64E92B679686C64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,sBAAsB;AAErB,SAAS,MAAM,CAAC,KAAqB;AAAA,EAC1C,IAAI,QAAQ;AAAA,IAAI,OAAO;AAAA,EAEvB,IAAI,CAAC,oBAAoB,KAAK,GAAG,GAAG;AAAA,IAClC,OAAO;AAAA,EACT;AAAA,EAGA,OAAO,MAAM,IAAI,QAAQ,MAAM,OAAO,IAAI;AAAA;AAGrC,SAAS,sBAAsB,CAAC,OAAwB;AAAA,EAC7D,IAAI,UAAU,QAAQ,UAAU,WAAW;AAAA,IACzC,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,OAAO,KAAK;AAAA,EAGxB,OAAO,IAAI,QAAQ,qCAAqC,MAAM;AAAA;",
8
+ "debugId": "AD065BD7055AEC0964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -74,4 +84,4 @@ function expandEscapes(s) {
74
84
  return result;
75
85
  }
76
86
 
77
- //# debugId=052B13ABAB7AAA6164756E2164756E21
87
+ //# debugId=BD85B914C33CFF8164756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "export function expandEscapes(s: string): string {\n let result = \"\";\n for (let i = 0; i < s.length; i++) {\n if (s[i] === \"\\\\\" && i + 1 < s.length) {\n i++;\n switch (s[i]) {\n case \"n\": result += \"\\n\"; break;\n case \"t\": result += \"\\t\"; break;\n case \"\\\\\": result += \"\\\\\"; break;\n case \"a\": result += \"\\x07\"; break;\n case \"b\": result += \"\\b\"; break;\n case \"f\": result += \"\\f\"; break;\n case \"r\": result += \"\\r\"; break;\n case \"v\": result += \"\\v\"; break;\n default: result += s[i]; break;\n }\n } else {\n result += s[i];\n }\n }\n return result;\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAAS,aAAa,CAAC,GAAmB;AAAA,EAC/C,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,EAAE,QAAQ,KAAK;AAAA,IACjC,IAAI,EAAE,OAAO,QAAQ,IAAI,IAAI,EAAE,QAAQ;AAAA,MACrC;AAAA,MACA,QAAQ,EAAE;AAAA,aACH;AAAA,UAAK,UAAU;AAAA;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAM,UAAU;AAAA,UAAM;AAAA,aACtB;AAAA,UAAK,UAAU;AAAA,UAAQ;AAAA,aACvB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA;AAAA,UACjB,UAAU,EAAE;AAAA,UAAI;AAAA;AAAA,IAE7B,EAAO;AAAA,MACL,UAAU,EAAE;AAAA;AAAA,EAEhB;AAAA,EACA,OAAO;AAAA;",
8
- "debugId": "052B13ABAB7AAA6164756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAAS,aAAa,CAAC,GAAmB;AAAA,EAC/C,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,EAAE,QAAQ,KAAK;AAAA,IACjC,IAAI,EAAE,OAAO,QAAQ,IAAI,IAAI,EAAE,QAAQ;AAAA,MACrC;AAAA,MACA,QAAQ,EAAE;AAAA,aACH;AAAA,UAAK,UAAU;AAAA;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAM,UAAU;AAAA,UAAM;AAAA,aACtB;AAAA,UAAK,UAAU;AAAA,UAAQ;AAAA,aACvB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA,aACrB;AAAA,UAAK,UAAU;AAAA,UAAM;AAAA;AAAA,UACjB,UAAU,EAAE;AAAA,UAAI;AAAA;AAAA,IAE7B,EAAO;AAAA,MACL,UAAU,EAAE;AAAA;AAAA,EAEhB;AAAA,EACA,OAAO;AAAA;",
8
+ "debugId": "BD85B914C33CFF8164756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,27 +2,37 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
@@ -52,6 +62,14 @@ function createFlagParser(spec, defaults, handler) {
52
62
  remainingArgs.push(...args.slice(i + 1));
53
63
  break;
54
64
  }
65
+ if (/^--+$/.test(arg)) {
66
+ remainingArgs.push(arg);
67
+ if (spec.stopAfterFirstPositional) {
68
+ parsingFlags = false;
69
+ }
70
+ i++;
71
+ continue;
72
+ }
55
73
  if (!parsingFlags) {
56
74
  remainingArgs.push(arg);
57
75
  i++;
@@ -159,4 +177,4 @@ function createFlagParser(spec, defaults, handler) {
159
177
  return { parse, formatError, writeError };
160
178
  }
161
179
 
162
- //# debugId=D28190EF174BA7EC64756E2164756E21
180
+ //# debugId=F20A6A861AD5163564756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/utils/flag-parser.ts"],
4
4
  "sourcesContent": [
5
- "import type { Stderr } from \"../types.cjs\";\n\nexport interface FlagDefinition {\n short?: string; // e.g., \"a\" for -a\n long?: string; // e.g., \"all\" for --all\n takesValue?: boolean; // true if flag requires a value\n}\n\nexport interface CommandSpec {\n name: string;\n flags: FlagDefinition[];\n usage: string;\n /** If true, stop parsing flags after the first positional argument (like echo) */\n stopAfterFirstPositional?: boolean;\n}\n\nexport interface FlagError {\n type: \"unrecognized_option\" | \"missing_value\";\n option: string;\n}\n\nexport interface ParseResult<T> {\n flags: T;\n args: string[];\n error?: FlagError;\n}\n\nexport interface FlagParser<T> {\n parse: (args: string[]) => ParseResult<T>;\n formatError: (error: FlagError) => string;\n writeError: (error: FlagError, stderr: Stderr) => Promise<void>;\n}\n\n/**\n * Creates a flag parser for a command with consistent error handling.\n *\n * @param spec - Command specification with name, valid flags, and usage string\n * @param defaults - Default values for the flags object\n * @param handler - Function to handle setting a flag value\n * @returns Parser object with parse, formatError, and writeError methods\n */\nexport function createFlagParser<T>(\n spec: CommandSpec,\n defaults: T,\n handler: (flags: T, flag: FlagDefinition, value?: string) => void\n): FlagParser<T> {\n // Build lookup maps for efficient flag matching\n const shortMap = new Map<string, FlagDefinition>();\n const longMap = new Map<string, FlagDefinition>();\n\n for (const flag of spec.flags) {\n if (flag.short) shortMap.set(flag.short, flag);\n if (flag.long) longMap.set(flag.long, flag);\n }\n\n function parse(args: string[]): ParseResult<T> {\n const flags = { ...defaults };\n const remainingArgs: string[] = [];\n let i = 0;\n let parsingFlags = true;\n\n while (i < args.length) {\n const arg = args[i]!;\n\n // Handle -- to stop flag parsing\n if (arg === \"--\") {\n remainingArgs.push(...args.slice(i + 1));\n break;\n }\n\n // If we've stopped parsing flags, just collect remaining args\n if (!parsingFlags) {\n remainingArgs.push(arg);\n i++;\n continue;\n }\n\n // Handle long flags --flag or --flag=value\n if (arg.startsWith(\"--\")) {\n const eqIndex = arg.indexOf(\"=\");\n let flagName: string;\n let flagValue: string | undefined;\n\n if (eqIndex !== -1) {\n flagName = arg.slice(2, eqIndex);\n flagValue = arg.slice(eqIndex + 1);\n } else {\n flagName = arg.slice(2);\n }\n\n const flagDef = longMap.get(flagName);\n if (!flagDef) {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"unrecognized_option\", option: arg },\n };\n }\n\n if (flagDef.takesValue) {\n if (flagValue === undefined) {\n // Value should be next argument\n if (i + 1 >= args.length) {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"missing_value\", option: arg },\n };\n }\n flagValue = args[++i];\n }\n handler(flags, flagDef, flagValue);\n } else {\n handler(flags, flagDef);\n }\n\n i++;\n continue;\n }\n\n // Handle short flags -a or -abc (combined) or -n10 (value attached)\n if (arg.startsWith(\"-\") && arg.length > 1) {\n const flagChars = arg.slice(1);\n\n for (let j = 0; j < flagChars.length; j++) {\n const char = flagChars[j]!;\n const flagDef = shortMap.get(char);\n\n if (!flagDef) {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"unrecognized_option\", option: `-${char}` },\n };\n }\n\n if (flagDef.takesValue) {\n // Rest of string is the value, or next arg\n const restOfArg = flagChars.slice(j + 1);\n let flagValue: string;\n\n if (restOfArg.length > 0) {\n flagValue = restOfArg;\n } else if (i + 1 < args.length) {\n flagValue = args[++i]!;\n } else {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"missing_value\", option: `-${char}` },\n };\n }\n\n handler(flags, flagDef, flagValue);\n break; // Value consumed rest of this arg\n } else {\n handler(flags, flagDef);\n }\n }\n\n i++;\n continue;\n }\n\n // Not a flag, add to remaining args\n remainingArgs.push(arg);\n if (spec.stopAfterFirstPositional) {\n parsingFlags = false;\n }\n i++;\n }\n\n return { flags, args: remainingArgs };\n }\n\n function formatError(error: FlagError): string {\n let message: string;\n if (error.type === \"unrecognized_option\") {\n if (error.option.startsWith(\"--\")) {\n message = `${spec.name}: unrecognized option '${error.option}'\\n`;\n } else {\n message = `${spec.name}: invalid option -- '${error.option.slice(1)}'\\n`;\n }\n } else {\n message = `${spec.name}: option '${error.option}' requires an argument\\n`;\n }\n return message + `usage: ${spec.usage}\\n`;\n }\n\n async function writeError(error: FlagError, stderr: Stderr): Promise<void> {\n await stderr.writeText(formatError(error));\n }\n\n return { parse, formatError, writeError };\n}\n"
5
+ "import type { Stderr } from \"../types.cjs\";\n\nexport interface FlagDefinition {\n short?: string; // e.g., \"a\" for -a\n long?: string; // e.g., \"all\" for --all\n takesValue?: boolean; // true if flag requires a value\n}\n\nexport interface CommandSpec {\n name: string;\n flags: FlagDefinition[];\n usage: string;\n /** If true, stop parsing flags after the first positional argument (like echo) */\n stopAfterFirstPositional?: boolean;\n}\n\nexport interface FlagError {\n type: \"unrecognized_option\" | \"missing_value\";\n option: string;\n}\n\nexport interface ParseResult<T> {\n flags: T;\n args: string[];\n error?: FlagError;\n}\n\nexport interface FlagParser<T> {\n parse: (args: string[]) => ParseResult<T>;\n formatError: (error: FlagError) => string;\n writeError: (error: FlagError, stderr: Stderr) => Promise<void>;\n}\n\n/**\n * Creates a flag parser for a command with consistent error handling.\n *\n * @param spec - Command specification with name, valid flags, and usage string\n * @param defaults - Default values for the flags object\n * @param handler - Function to handle setting a flag value\n * @returns Parser object with parse, formatError, and writeError methods\n */\nexport function createFlagParser<T>(\n spec: CommandSpec,\n defaults: T,\n handler: (flags: T, flag: FlagDefinition, value?: string) => void\n): FlagParser<T> {\n // Build lookup maps for efficient flag matching\n const shortMap = new Map<string, FlagDefinition>();\n const longMap = new Map<string, FlagDefinition>();\n\n for (const flag of spec.flags) {\n if (flag.short) shortMap.set(flag.short, flag);\n if (flag.long) longMap.set(flag.long, flag);\n }\n\n function parse(args: string[]): ParseResult<T> {\n const flags = { ...defaults };\n const remainingArgs: string[] = [];\n let i = 0;\n let parsingFlags = true;\n\n while (i < args.length) {\n const arg = args[i]!;\n\n // Handle -- to stop flag parsing\n if (arg === \"--\") {\n remainingArgs.push(...args.slice(i + 1));\n break;\n }\n\n // Treat all-hyphen tokens (e.g., ---) as positional arguments.\n // This avoids misparsing delimiters as long/short options.\n if (/^--+$/.test(arg)) {\n remainingArgs.push(arg);\n if (spec.stopAfterFirstPositional) {\n parsingFlags = false;\n }\n i++;\n continue;\n }\n\n // If we've stopped parsing flags, just collect remaining args\n if (!parsingFlags) {\n remainingArgs.push(arg);\n i++;\n continue;\n }\n\n // Handle long flags --flag or --flag=value\n if (arg.startsWith(\"--\")) {\n const eqIndex = arg.indexOf(\"=\");\n let flagName: string;\n let flagValue: string | undefined;\n\n if (eqIndex !== -1) {\n flagName = arg.slice(2, eqIndex);\n flagValue = arg.slice(eqIndex + 1);\n } else {\n flagName = arg.slice(2);\n }\n\n const flagDef = longMap.get(flagName);\n if (!flagDef) {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"unrecognized_option\", option: arg },\n };\n }\n\n if (flagDef.takesValue) {\n if (flagValue === undefined) {\n // Value should be next argument\n if (i + 1 >= args.length) {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"missing_value\", option: arg },\n };\n }\n flagValue = args[++i];\n }\n handler(flags, flagDef, flagValue);\n } else {\n handler(flags, flagDef);\n }\n\n i++;\n continue;\n }\n\n // Handle short flags -a or -abc (combined) or -n10 (value attached)\n if (arg.startsWith(\"-\") && arg.length > 1) {\n const flagChars = arg.slice(1);\n\n for (let j = 0; j < flagChars.length; j++) {\n const char = flagChars[j]!;\n const flagDef = shortMap.get(char);\n\n if (!flagDef) {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"unrecognized_option\", option: `-${char}` },\n };\n }\n\n if (flagDef.takesValue) {\n // Rest of string is the value, or next arg\n const restOfArg = flagChars.slice(j + 1);\n let flagValue: string;\n\n if (restOfArg.length > 0) {\n flagValue = restOfArg;\n } else if (i + 1 < args.length) {\n flagValue = args[++i]!;\n } else {\n return {\n flags,\n args: remainingArgs,\n error: { type: \"missing_value\", option: `-${char}` },\n };\n }\n\n handler(flags, flagDef, flagValue);\n break; // Value consumed rest of this arg\n } else {\n handler(flags, flagDef);\n }\n }\n\n i++;\n continue;\n }\n\n // Not a flag, add to remaining args\n remainingArgs.push(arg);\n if (spec.stopAfterFirstPositional) {\n parsingFlags = false;\n }\n i++;\n }\n\n return { flags, args: remainingArgs };\n }\n\n function formatError(error: FlagError): string {\n let message: string;\n if (error.type === \"unrecognized_option\") {\n if (error.option.startsWith(\"--\")) {\n message = `${spec.name}: unrecognized option '${error.option}'\\n`;\n } else {\n message = `${spec.name}: invalid option -- '${error.option.slice(1)}'\\n`;\n }\n } else {\n message = `${spec.name}: option '${error.option}' requires an argument\\n`;\n }\n return message + `usage: ${spec.usage}\\n`;\n }\n\n async function writeError(error: FlagError, stderr: Stderr): Promise<void> {\n await stderr.writeText(formatError(error));\n }\n\n return { parse, formatError, writeError };\n}\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "D28190EF174BA7EC64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "F20A6A861AD5163564756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -2,33 +2,44 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropNames = Object.getOwnPropertyNames;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __moduleCache = /* @__PURE__ */ new WeakMap;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
6
8
  var __toCommonJS = (from) => {
7
- var entry = __moduleCache.get(from), desc;
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
8
10
  if (entry)
9
11
  return entry;
10
12
  entry = __defProp({}, "__esModule", { value: true });
11
- if (from && typeof from === "object" || typeof from === "function")
12
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
- get: () => from[key],
14
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
- }));
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
16
21
  __moduleCache.set(from, entry);
17
22
  return entry;
18
23
  };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
19
29
  var __export = (target, all) => {
20
30
  for (var name in all)
21
31
  __defProp(target, name, {
22
32
  get: all[name],
23
33
  enumerable: true,
24
34
  configurable: true,
25
- set: (newValue) => all[name] = () => newValue
35
+ set: __exportSetter.bind(all, name)
26
36
  });
27
37
  };
28
38
 
29
39
  // src/utils/index.ts
30
40
  var exports_utils = {};
31
41
  __export(exports_utils, {
42
+ matchGlob: () => import_match_glob.matchGlob,
32
43
  expandEscapes: () => import_expand_escapes.expandEscapes,
33
44
  escapeForInterpolation: () => import_escape.escapeForInterpolation,
34
45
  escape: () => import_escape.escape,
@@ -38,5 +49,6 @@ module.exports = __toCommonJS(exports_utils);
38
49
  var import_escape = require("./escape.cjs");
39
50
  var import_expand_escapes = require("./expand-escapes.cjs");
40
51
  var import_flag_parser = require("./flag-parser.cjs");
52
+ var import_match_glob = require("./match-glob.cjs");
41
53
 
42
- //# debugId=D23A6A45BB39618E64756E2164756E21
54
+ //# debugId=F04305B8F64F71E264756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/utils/index.ts"],
4
4
  "sourcesContent": [
5
- "export { escape, escapeForInterpolation } from \"./escape.cjs\";\nexport { expandEscapes } from \"./expand-escapes.cjs\";\nexport {\n createFlagParser,\n type FlagDefinition,\n type CommandSpec,\n type FlagError,\n type ParseResult,\n type FlagParser,\n} from \"./flag-parser.cjs\";\n"
5
+ "export { escape, escapeForInterpolation } from \"./escape.cjs\";\nexport { expandEscapes } from \"./expand-escapes.cjs\";\nexport {\n createFlagParser,\n type FlagDefinition,\n type CommandSpec,\n type FlagError,\n type ParseResult,\n type FlagParser,\n} from \"./flag-parser.cjs\";\nexport { matchGlob } from \"./match-glob.cjs\";\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA+C,IAA/C;AAC8B,IAA9B;AAQO,IAPP;",
8
- "debugId": "D23A6A45BB39618E64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA+C,IAA/C;AAC8B,IAA9B;AAQO,IAPP;AAQ0B,IAA1B;",
8
+ "debugId": "F04305B8F64F71E264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -0,0 +1,102 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
8
+ var __toCommonJS = (from) => {
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
10
+ if (entry)
11
+ return entry;
12
+ entry = __defProp({}, "__esModule", { value: true });
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ __moduleCache.set(from, entry);
22
+ return entry;
23
+ };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
29
+ var __export = (target, all) => {
30
+ for (var name in all)
31
+ __defProp(target, name, {
32
+ get: all[name],
33
+ enumerable: true,
34
+ configurable: true,
35
+ set: __exportSetter.bind(all, name)
36
+ });
37
+ };
38
+
39
+ // src/utils/match-glob.ts
40
+ var exports_match_glob = {};
41
+ __export(exports_match_glob, {
42
+ matchGlob: () => matchGlob
43
+ });
44
+ module.exports = __toCommonJS(exports_match_glob);
45
+ function matchGlob(pattern, str, caseInsensitive = false) {
46
+ if (caseInsensitive) {
47
+ pattern = pattern.toLowerCase();
48
+ str = str.toLowerCase();
49
+ }
50
+ let regex = "^";
51
+ for (let i = 0;i < pattern.length; i++) {
52
+ const c = pattern[i];
53
+ switch (c) {
54
+ case "*":
55
+ regex += ".*";
56
+ break;
57
+ case "?":
58
+ regex += ".";
59
+ break;
60
+ case "[": {
61
+ let j = i + 1;
62
+ if (pattern[j] === "!" || pattern[j] === "^")
63
+ j++;
64
+ if (pattern[j] === "]")
65
+ j++;
66
+ while (j < pattern.length && pattern[j] !== "]")
67
+ j++;
68
+ if (j >= pattern.length) {
69
+ regex += "\\[";
70
+ } else {
71
+ let charClass = pattern.slice(i, j + 1);
72
+ charClass = charClass.replace(/^\[!/, "[^");
73
+ regex += charClass;
74
+ i = j;
75
+ }
76
+ break;
77
+ }
78
+ case ".":
79
+ case "^":
80
+ case "$":
81
+ case "+":
82
+ case "{":
83
+ case "}":
84
+ case "(":
85
+ case ")":
86
+ case "|":
87
+ case "\\":
88
+ regex += "\\" + c;
89
+ break;
90
+ default:
91
+ regex += c;
92
+ }
93
+ }
94
+ regex += "$";
95
+ try {
96
+ return new RegExp(regex).test(str);
97
+ } catch {
98
+ return false;
99
+ }
100
+ }
101
+
102
+ //# debugId=F0BE71C75755CCA364756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/utils/match-glob.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Simple glob pattern matching (fnmatch-style)\n * Supports: * (any chars), ? (single char), [...] (character class)\n */\nexport function matchGlob(pattern: string, str: string, caseInsensitive = false): boolean {\n if (caseInsensitive) {\n pattern = pattern.toLowerCase();\n str = str.toLowerCase();\n }\n\n // Convert glob to regex\n let regex = \"^\";\n for (let i = 0; i < pattern.length; i++) {\n const c = pattern[i]!;\n switch (c) {\n case \"*\":\n regex += \".*\";\n break;\n case \"?\":\n regex += \".\";\n break;\n case \"[\": {\n // Find closing bracket\n let j = i + 1;\n // Handle negation\n if (pattern[j] === \"!\" || pattern[j] === \"^\") j++;\n // Handle ] as first char in class\n if (pattern[j] === \"]\") j++;\n while (j < pattern.length && pattern[j] !== \"]\") j++;\n if (j >= pattern.length) {\n // No closing bracket, treat [ as literal\n regex += \"\\\\[\";\n } else {\n let charClass = pattern.slice(i, j + 1);\n // Convert ! to ^ for negation in regex\n charClass = charClass.replace(/^\\[!/, \"[^\");\n regex += charClass;\n i = j;\n }\n break;\n }\n case \".\":\n case \"^\":\n case \"$\":\n case \"+\":\n case \"{\":\n case \"}\":\n case \"(\":\n case \")\":\n case \"|\":\n case \"\\\\\":\n regex += \"\\\\\" + c;\n break;\n default:\n regex += c;\n }\n }\n regex += \"$\";\n\n try {\n return new RegExp(regex).test(str);\n } catch {\n return false;\n }\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,SAAS,CAAC,SAAiB,KAAa,kBAAkB,OAAgB;AAAA,EACxF,IAAI,iBAAiB;AAAA,IACnB,UAAU,QAAQ,YAAY;AAAA,IAC9B,MAAM,IAAI,YAAY;AAAA,EACxB;AAAA,EAGA,IAAI,QAAQ;AAAA,EACZ,SAAS,IAAI,EAAG,IAAI,QAAQ,QAAQ,KAAK;AAAA,IACvC,MAAM,IAAI,QAAQ;AAAA,IAClB,QAAQ;AAAA,WACD;AAAA,QACH,SAAS;AAAA,QACT;AAAA,WACG;AAAA,QACH,SAAS;AAAA,QACT;AAAA,WACG,KAAK;AAAA,QAER,IAAI,IAAI,IAAI;AAAA,QAEZ,IAAI,QAAQ,OAAO,OAAO,QAAQ,OAAO;AAAA,UAAK;AAAA,QAE9C,IAAI,QAAQ,OAAO;AAAA,UAAK;AAAA,QACxB,OAAO,IAAI,QAAQ,UAAU,QAAQ,OAAO;AAAA,UAAK;AAAA,QACjD,IAAI,KAAK,QAAQ,QAAQ;AAAA,UAEvB,SAAS;AAAA,QACX,EAAO;AAAA,UACL,IAAI,YAAY,QAAQ,MAAM,GAAG,IAAI,CAAC;AAAA,UAEtC,YAAY,UAAU,QAAQ,QAAQ,IAAI;AAAA,UAC1C,SAAS;AAAA,UACT,IAAI;AAAA;AAAA,QAEN;AAAA,MACF;AAAA,WACK;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,WACA;AAAA,QACH,SAAS,OAAO;AAAA,QAChB;AAAA;AAAA,QAEA,SAAS;AAAA;AAAA,EAEf;AAAA,EACA,SAAS;AAAA,EAET,IAAI;AAAA,IACF,OAAO,IAAI,OAAO,KAAK,EAAE,KAAK,GAAG;AAAA,IACjC,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;",
8
+ "debugId": "F0BE71C75755CCA364756E2164756E21",
9
+ "names": []
10
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "shell-dsl",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "type": "module"
5
5
  }