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.
- package/dist/cjs/index.cjs +24 -13
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/commands/awk/awk.cjs +19 -9
- package/dist/cjs/src/commands/awk/awk.cjs.map +2 -2
- package/dist/cjs/src/commands/break-continue/break-continue.cjs +19 -9
- package/dist/cjs/src/commands/break-continue/break-continue.cjs.map +2 -2
- package/dist/cjs/src/commands/cat/cat.cjs +19 -9
- package/dist/cjs/src/commands/cat/cat.cjs.map +2 -2
- package/dist/cjs/src/commands/cd/cd.cjs +19 -9
- package/dist/cjs/src/commands/cd/cd.cjs.map +2 -2
- package/dist/cjs/src/commands/colon/colon.cjs +19 -9
- package/dist/cjs/src/commands/colon/colon.cjs.map +2 -2
- package/dist/cjs/src/commands/cp/cp.cjs +19 -9
- package/dist/cjs/src/commands/cp/cp.cjs.map +2 -2
- package/dist/cjs/src/commands/cut/cut.cjs +19 -9
- package/dist/cjs/src/commands/cut/cut.cjs.map +2 -2
- package/dist/cjs/src/commands/echo/echo.cjs +19 -9
- package/dist/cjs/src/commands/echo/echo.cjs.map +2 -2
- package/dist/cjs/src/commands/find/find.cjs +21 -66
- package/dist/cjs/src/commands/find/find.cjs.map +3 -3
- package/dist/cjs/src/commands/grep/grep.cjs +22 -26
- package/dist/cjs/src/commands/grep/grep.cjs.map +3 -3
- package/dist/cjs/src/commands/head/head.cjs +19 -9
- package/dist/cjs/src/commands/head/head.cjs.map +2 -2
- package/dist/cjs/src/commands/index.cjs +19 -9
- package/dist/cjs/src/commands/index.cjs.map +2 -2
- package/dist/cjs/src/commands/ls/ls.cjs +19 -9
- package/dist/cjs/src/commands/ls/ls.cjs.map +2 -2
- package/dist/cjs/src/commands/mkdir/mkdir.cjs +19 -9
- package/dist/cjs/src/commands/mkdir/mkdir.cjs.map +2 -2
- package/dist/cjs/src/commands/mv/mv.cjs +19 -9
- package/dist/cjs/src/commands/mv/mv.cjs.map +2 -2
- package/dist/cjs/src/commands/pwd/pwd.cjs +19 -9
- package/dist/cjs/src/commands/pwd/pwd.cjs.map +2 -2
- package/dist/cjs/src/commands/rm/rm.cjs +19 -9
- package/dist/cjs/src/commands/rm/rm.cjs.map +2 -2
- package/dist/cjs/src/commands/sed/sed.cjs +19 -9
- package/dist/cjs/src/commands/sed/sed.cjs.map +2 -2
- package/dist/cjs/src/commands/sort/sort.cjs +19 -9
- package/dist/cjs/src/commands/sort/sort.cjs.map +2 -2
- package/dist/cjs/src/commands/tail/tail.cjs +19 -9
- package/dist/cjs/src/commands/tail/tail.cjs.map +2 -2
- package/dist/cjs/src/commands/tee/tee.cjs +19 -9
- package/dist/cjs/src/commands/tee/tee.cjs.map +2 -2
- package/dist/cjs/src/commands/test/test.cjs +19 -9
- package/dist/cjs/src/commands/test/test.cjs.map +2 -2
- package/dist/cjs/src/commands/touch/touch.cjs +19 -9
- package/dist/cjs/src/commands/touch/touch.cjs.map +2 -2
- package/dist/cjs/src/commands/tr/tr.cjs +19 -9
- package/dist/cjs/src/commands/tr/tr.cjs.map +2 -2
- package/dist/cjs/src/commands/tree/tree.cjs +33 -12
- package/dist/cjs/src/commands/tree/tree.cjs.map +3 -3
- package/dist/cjs/src/commands/true-false/true-false.cjs +19 -9
- package/dist/cjs/src/commands/true-false/true-false.cjs.map +2 -2
- package/dist/cjs/src/commands/uniq/uniq.cjs +19 -9
- package/dist/cjs/src/commands/uniq/uniq.cjs.map +2 -2
- package/dist/cjs/src/commands/wc/wc.cjs +19 -9
- package/dist/cjs/src/commands/wc/wc.cjs.map +2 -2
- package/dist/cjs/src/errors.cjs +19 -9
- package/dist/cjs/src/errors.cjs.map +2 -2
- package/dist/cjs/src/fs/index.cjs +19 -9
- package/dist/cjs/src/fs/index.cjs.map +2 -2
- package/dist/cjs/src/fs/memfs-adapter.cjs +31 -10
- package/dist/cjs/src/fs/memfs-adapter.cjs.map +2 -2
- package/dist/cjs/src/fs/readonly-fs.cjs +19 -9
- package/dist/cjs/src/fs/readonly-fs.cjs.map +2 -2
- package/dist/cjs/src/fs/real-fs.cjs +31 -10
- package/dist/cjs/src/fs/real-fs.cjs.map +2 -2
- package/dist/cjs/src/index.cjs +19 -9
- package/dist/cjs/src/index.cjs.map +2 -2
- package/dist/cjs/src/interpreter/context.cjs +19 -9
- package/dist/cjs/src/interpreter/context.cjs.map +2 -2
- package/dist/cjs/src/interpreter/index.cjs +19 -9
- package/dist/cjs/src/interpreter/index.cjs.map +2 -2
- package/dist/cjs/src/interpreter/interpreter.cjs +19 -9
- package/dist/cjs/src/interpreter/interpreter.cjs.map +2 -2
- package/dist/cjs/src/io/index.cjs +19 -9
- package/dist/cjs/src/io/index.cjs.map +2 -2
- package/dist/cjs/src/io/stdin.cjs +19 -9
- package/dist/cjs/src/io/stdin.cjs.map +2 -2
- package/dist/cjs/src/io/stdout.cjs +19 -9
- package/dist/cjs/src/io/stdout.cjs.map +2 -2
- package/dist/cjs/src/lexer/index.cjs +19 -9
- package/dist/cjs/src/lexer/index.cjs.map +2 -2
- package/dist/cjs/src/lexer/lexer.cjs +19 -9
- package/dist/cjs/src/lexer/lexer.cjs.map +2 -2
- package/dist/cjs/src/lexer/tokens.cjs +19 -9
- package/dist/cjs/src/lexer/tokens.cjs.map +2 -2
- package/dist/cjs/src/parser/ast.cjs +19 -9
- package/dist/cjs/src/parser/ast.cjs.map +2 -2
- package/dist/cjs/src/parser/index.cjs +19 -9
- package/dist/cjs/src/parser/index.cjs.map +2 -2
- package/dist/cjs/src/parser/parser.cjs +19 -9
- package/dist/cjs/src/parser/parser.cjs.map +2 -2
- package/dist/cjs/src/shell-dsl.cjs +19 -9
- package/dist/cjs/src/shell-dsl.cjs.map +2 -2
- package/dist/cjs/src/shell-promise.cjs +19 -9
- package/dist/cjs/src/shell-promise.cjs.map +2 -2
- package/dist/cjs/src/types.cjs +19 -9
- package/dist/cjs/src/types.cjs.map +2 -2
- package/dist/cjs/src/utils/escape.cjs +19 -9
- package/dist/cjs/src/utils/escape.cjs.map +2 -2
- package/dist/cjs/src/utils/expand-escapes.cjs +19 -9
- package/dist/cjs/src/utils/expand-escapes.cjs.map +2 -2
- package/dist/cjs/src/utils/flag-parser.cjs +27 -9
- package/dist/cjs/src/utils/flag-parser.cjs.map +3 -3
- package/dist/cjs/src/utils/index.cjs +21 -9
- package/dist/cjs/src/utils/index.cjs.map +3 -3
- package/dist/cjs/src/utils/match-glob.cjs +102 -0
- package/dist/cjs/src/utils/match-glob.cjs.map +10 -0
- package/dist/mjs/package.json +1 -1
- package/dist/mjs/src/commands/find/find.mjs +2 -57
- package/dist/mjs/src/commands/find/find.mjs.map +3 -3
- package/dist/mjs/src/commands/grep/grep.mjs +4 -18
- package/dist/mjs/src/commands/grep/grep.mjs.map +3 -3
- package/dist/mjs/src/commands/tree/tree.mjs +15 -4
- package/dist/mjs/src/commands/tree/tree.mjs.map +3 -3
- package/dist/mjs/src/utils/flag-parser.mjs +9 -1
- package/dist/mjs/src/utils/flag-parser.mjs.map +3 -3
- package/dist/mjs/src/utils/index.mjs +3 -1
- package/dist/mjs/src/utils/index.mjs.map +3 -3
- package/dist/mjs/src/utils/match-glob.mjs +62 -0
- package/dist/mjs/src/utils/match-glob.mjs.map +10 -0
- package/dist/types/src/utils/index.d.ts +1 -0
- package/dist/types/src/utils/match-glob.d.ts +5 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\n\ninterface SedAddress {\n type: \"line\" | \"regex\" | \"last\";\n lineNumber?: number;\n pattern?: RegExp;\n}\n\ninterface SedCommand {\n type: \"s\" | \"d\" | \"p\" | \"h\" | \"H\" | \"g_hold\" | \"G\" | \"x\" | \"n\" | \"N\" | \"P\" | \"D\" | \"b\" | \"label\" | \"group\";\n address1?: SedAddress;\n address2?: SedAddress;\n negated?: boolean;\n pattern?: RegExp;\n replacement?: string;\n globalFlag: boolean;\n printFlag: boolean;\n label?: string;\n children?: SedCommand[];\n}\n\ninterface SedOptions {\n suppressOutput: boolean; // -n\n inPlace: boolean; // -i\n commands: SedCommand[];\n}\n\nfunction parseSubstitution(script: string): SedCommand | null {\n const match = script.match(/^s(.)(.+?)\\1(.*?)\\1([gi]*)$/);\n if (!match) return null;\n\n const [, , rawPattern, rawReplacement, flags] = match;\n const globalFlag = flags!.includes(\"g\");\n const caseInsensitive = flags!.includes(\"i\");\n\n const patternStr = rawPattern!.replace(/\\\\\\(/g, \"(\").replace(/\\\\\\)/g, \")\");\n const replacement = rawReplacement!\n .replace(/\\\\([0-9])/g, \"\\x00BACKREF$1\\x00\")\n .replace(/\\\\n/g, \"\\n\")\n .replace(/\\\\t/g, \"\\t\")\n .replace(/\\\\\\\\/g, \"\\x00BSLASH\\x00\")\n .replace(/\\$/g, \"$$$$\")\n .replace(/\\x00BACKREF([0-9])\\x00/g, \"$$$1\")\n .replace(/\\x00BSLASH\\x00/g, \"\\\\\");\n\n try {\n const regexFlags = caseInsensitive ? \"i\" : \"\";\n return {\n type: \"s\",\n pattern: new RegExp(patternStr, regexFlags),\n replacement,\n globalFlag,\n printFlag: false,\n };\n } catch {\n return null;\n }\n}\n\nfunction parseAddress(str: string): { address: SedAddress; remaining: string } | null {\n // Match $ (last line)\n if (str.startsWith(\"$\")) {\n return { address: { type: \"last\" }, remaining: str.slice(1) };\n }\n // Match line number\n const lineMatch = str.match(/^(\\d+)/);\n if (lineMatch) {\n return {\n address: { type: \"line\", lineNumber: parseInt(lineMatch[1]!, 10) },\n remaining: str.slice(lineMatch[0].length),\n };\n }\n // Match regex /pattern/\n // Handle escaped slashes in pattern\n let i = 1; // start after opening /\n if (!str.startsWith(\"/\")) return null;\n\n let pattern = \"\";\n while (i < str.length) {\n if (str[i] === \"\\\\\") {\n // Escape sequence\n if (i + 1 < str.length) {\n pattern += str[i]! + str[i + 1]!;\n i += 2;\n } else {\n break;\n }\n } else if (str[i] === \"/\") {\n // End of pattern\n try {\n return {\n address: { type: \"regex\", pattern: new RegExp(pattern) },\n remaining: str.slice(i + 1),\n };\n } catch {\n return null;\n }\n } else {\n pattern += str[i];\n i++;\n }\n }\n return null;\n}\n\nfunction parseAddressRange(script: string): { address1?: SedAddress; address2?: SedAddress; remaining: string; negated: boolean } {\n let trimmed = script.trim();\n\n // Try to parse first address\n const first = parseAddress(trimmed);\n if (!first) {\n return { remaining: trimmed, negated: false };\n }\n\n trimmed = first.remaining;\n const address1 = first.address;\n\n // Check for comma (range)\n if (trimmed.startsWith(\",\")) {\n const second = parseAddress(trimmed.slice(1));\n if (second) {\n let remaining = second.remaining;\n const negated = remaining.startsWith(\"!\");\n if (negated) remaining = remaining.slice(1);\n return { address1, address2: second.address, remaining: remaining.trim(), negated };\n }\n }\n\n // Check for negation\n const negated = trimmed.startsWith(\"!\");\n if (negated) trimmed = trimmed.slice(1);\n\n return { address1, remaining: trimmed.trim(), negated };\n}\n\nfunction parseCommand(script: string): SedCommand | null {\n const trimmed = script.trim();\n\n // Label command :name\n if (trimmed.startsWith(\":\")) {\n return {\n type: \"label\",\n label: trimmed.slice(1).trim(),\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // Simple single-char commands (no address)\n const simpleCommands: Record<string, SedCommand[\"type\"]> = {\n h: \"h\",\n H: \"H\",\n g: \"g_hold\",\n G: \"G\",\n x: \"x\",\n n: \"n\",\n N: \"N\",\n P: \"P\",\n D: \"D\",\n d: \"d\",\n p: \"p\",\n };\n\n // Branch command: b or b label (no address)\n if (trimmed === \"b\" || trimmed.startsWith(\"b \") || trimmed.startsWith(\"b\\t\")) {\n return {\n type: \"b\",\n label: trimmed.length > 1 ? trimmed.slice(1).trim() : undefined,\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // Group { ... } (no address)\n if (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) {\n const inner = trimmed.slice(1, -1).trim();\n const parts = splitScriptParts(inner);\n const children: SedCommand[] = [];\n for (const part of parts) {\n const cmd = parseCommand(part);\n if (cmd) children.push(cmd);\n }\n return {\n type: \"group\",\n children,\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // Simple command without address\n if (simpleCommands[trimmed]) {\n return {\n type: simpleCommands[trimmed]!,\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // Try to parse address(es) followed by command\n const { address1, address2, remaining, negated } = parseAddressRange(trimmed);\n\n if (address1) {\n const restTrimmed = remaining.trim();\n\n // Address alone — not valid, but handle gracefully\n if (!restTrimmed) return null;\n\n // [address][!]d or [address][!]p etc (simple commands)\n if (simpleCommands[restTrimmed]) {\n return {\n type: simpleCommands[restTrimmed]!,\n address1,\n address2,\n negated,\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // [address][!]b or [address][!]b label\n if (restTrimmed === \"b\" || restTrimmed.startsWith(\"b \")) {\n return {\n type: \"b\",\n address1,\n address2,\n negated,\n label: restTrimmed.length > 1 ? restTrimmed.slice(1).trim() : undefined,\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // [address][!]{ ... }\n if (restTrimmed.startsWith(\"{\") && restTrimmed.endsWith(\"}\")) {\n const inner = restTrimmed.slice(1, -1).trim();\n const parts = splitScriptParts(inner);\n const children: SedCommand[] = [];\n for (const part of parts) {\n const cmd = parseCommand(part);\n if (cmd) children.push(cmd);\n }\n return {\n type: \"group\",\n address1,\n address2,\n negated,\n children,\n globalFlag: false,\n printFlag: false,\n };\n }\n\n // [address][!]s/old/new/flags\n const subCmd = parseSubstitution(restTrimmed);\n if (subCmd) {\n subCmd.address1 = address1;\n subCmd.address2 = address2;\n subCmd.negated = negated;\n return subCmd;\n }\n }\n\n // Substitution command (no address)\n const subCmd = parseSubstitution(trimmed);\n if (subCmd) return subCmd;\n\n return null;\n}\n\nfunction splitScriptParts(script: string): string[] {\n const parts: string[] = [];\n let i = 0;\n let current = \"\";\n let braceDepth = 0;\n\n while (i < script.length) {\n if (script[i] === \"{\") {\n braceDepth++;\n current += script[i];\n i++;\n } else if (script[i] === \"}\") {\n braceDepth--;\n current += script[i];\n i++;\n } else if (script[i] === \"s\" && braceDepth === 0 && i + 1 < script.length && !/[a-zA-Z0-9]/.test(script[i + 1]!)) {\n // Detect substitution command — consume s/pattern/replacement/flags\n const delim = script[i + 1]!;\n let j = i + 2;\n let delimCount = 0;\n while (j < script.length && delimCount < 2) {\n if (script[j] === \"\\\\\") {\n j += 2;\n continue;\n }\n if (script[j] === delim) delimCount++;\n j++;\n }\n // Consume trailing flags\n while (j < script.length && /[gi]/.test(script[j]!)) j++;\n current += script.slice(i, j);\n i = j;\n } else if (script[i] === \";\" && braceDepth === 0) {\n const trimmed = current.trim();\n if (trimmed) parts.push(trimmed);\n current = \"\";\n i++;\n } else {\n current += script[i];\n i++;\n }\n }\n const trimmed = current.trim();\n if (trimmed) parts.push(trimmed);\n return parts;\n}\n\ninterface ParseArgsResult {\n options: SedOptions;\n files: string[];\n error?: { type: \"unrecognized_option\" | \"missing_value\"; option: string };\n}\n\nfunction parseArgs(args: string[]): ParseArgsResult {\n const options: SedOptions = {\n suppressOutput: false,\n inPlace: false,\n commands: [],\n };\n const files: string[] = [];\n\n let i = 0;\n while (i < args.length) {\n const arg = args[i]!;\n\n if (arg === \"--\") {\n i++;\n while (i < args.length) {\n const remaining = args[i]!;\n if (options.commands.length === 0) {\n const parts = splitScriptParts(remaining);\n for (const part of parts) {\n const cmd = parseCommand(part);\n if (cmd) options.commands.push(cmd);\n }\n } else {\n files.push(remaining);\n }\n i++;\n }\n break;\n }\n\n if (arg.startsWith(\"--\")) {\n return {\n options,\n files,\n error: { type: \"unrecognized_option\", option: arg },\n };\n }\n\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\n if (char === \"n\") {\n options.suppressOutput = true;\n } else if (char === \"i\") {\n options.inPlace = true;\n } else if (char === \"e\") {\n const restOfArg = flagChars.slice(j + 1);\n let script: string;\n\n if (restOfArg.length > 0) {\n script = restOfArg;\n } else if (i + 1 < args.length) {\n script = args[++i]!;\n } else {\n return {\n options,\n files,\n error: { type: \"missing_value\", option: \"-e\" },\n };\n }\n\n const parts = splitScriptParts(script);\n for (const part of parts) {\n const cmd = parseCommand(part);\n if (cmd) options.commands.push(cmd);\n }\n break;\n } else {\n return {\n options,\n files,\n error: { type: \"unrecognized_option\", option: `-${char}` },\n };\n }\n }\n i++;\n continue;\n }\n\n if (options.commands.length === 0) {\n const parts = splitScriptParts(arg);\n for (const part of parts) {\n const cmd = parseCommand(part);\n if (cmd) options.commands.push(cmd);\n }\n } else {\n files.push(arg);\n }\n i++;\n }\n\n return { options, files };\n}\n\nfunction formatError(error: NonNullable<ParseArgsResult[\"error\"]>): string {\n let message: string;\n if (error.type === \"unrecognized_option\") {\n if (error.option.startsWith(\"--\")) {\n message = `sed: unrecognized option '${error.option}'\\n`;\n } else {\n message = `sed: invalid option -- '${error.option.slice(1)}'\\n`;\n }\n } else {\n message = `sed: option '${error.option}' requires an argument\\n`;\n }\n return message + `usage: sed [-ni] [-e script] script [file ...]\\n`;\n}\n\nfunction applySubstitution(line: string, cmd: SedCommand): string {\n if (!cmd.pattern) return line;\n\n if (cmd.globalFlag) {\n return line.replace(new RegExp(cmd.pattern.source, cmd.pattern.flags + \"g\"), cmd.replacement!);\n } else {\n return line.replace(cmd.pattern, cmd.replacement!);\n }\n}\n\ninterface SedState {\n patternSpace: string;\n holdSpace: string;\n lineIndex: number;\n lines: string[];\n suppressOutput: boolean;\n output: string[];\n deleted: boolean;\n restart: boolean; // for D command\n rangeState: Map<SedCommand, boolean>; // tracks active ranges\n}\n\nfunction singleAddressMatches(address: SedAddress, state: SedState): boolean {\n const lineNum = state.lineIndex + 1; // 1-based line numbers\n switch (address.type) {\n case \"line\":\n return lineNum === address.lineNumber;\n case \"last\":\n return state.lineIndex === state.lines.length - 1;\n case \"regex\":\n return address.pattern!.test(state.patternSpace);\n default:\n return false;\n }\n}\n\nfunction addressMatches(cmd: SedCommand, state: SedState): boolean {\n // No address - matches all\n if (!cmd.address1) {\n return cmd.negated ? false : true;\n }\n\n // Range address (addr1,addr2)\n if (cmd.address2) {\n const isInRange = state.rangeState.get(cmd) ?? false;\n\n if (!isInRange) {\n // Not in range yet - check if we should start\n if (singleAddressMatches(cmd.address1, state)) {\n state.rangeState.set(cmd, true);\n const matches = true;\n return cmd.negated ? !matches : matches;\n }\n return cmd.negated ? true : false;\n } else {\n // In range - check if we should end\n if (singleAddressMatches(cmd.address2, state)) {\n state.rangeState.set(cmd, false);\n }\n const matches = true;\n return cmd.negated ? !matches : matches;\n }\n }\n\n // Single address\n const matches = singleAddressMatches(cmd.address1, state);\n return cmd.negated ? !matches : matches;\n}\n\nfunction findLabel(commands: SedCommand[], label: string): number {\n for (let i = 0; i < commands.length; i++) {\n if (commands[i]!.type === \"label\" && commands[i]!.label === label) {\n return i;\n }\n }\n return -1;\n}\n\ninterface ExecResult {\n branchToEnd: boolean;\n branchLabel?: string;\n nextLine: boolean; // n command: output and advance\n deleted: boolean;\n restart: boolean; // D command\n}\n\nfunction executeCommands(\n commands: SedCommand[],\n state: SedState,\n topLevel: boolean\n): ExecResult {\n let pc = 0;\n while (pc < commands.length) {\n const cmd = commands[pc]!;\n\n // Labels are no-ops\n if (cmd.type === \"label\") {\n pc++;\n continue;\n }\n\n // Check address\n if (!addressMatches(cmd, state)) {\n pc++;\n continue;\n }\n\n switch (cmd.type) {\n case \"s\":\n state.patternSpace = applySubstitution(state.patternSpace, cmd);\n break;\n case \"d\":\n state.deleted = true;\n return { branchToEnd: false, deleted: true, nextLine: false, restart: false };\n case \"p\":\n state.output.push(state.patternSpace);\n break;\n case \"h\":\n state.holdSpace = state.patternSpace;\n break;\n case \"H\":\n state.holdSpace = state.holdSpace + \"\\n\" + state.patternSpace;\n break;\n case \"g_hold\":\n state.patternSpace = state.holdSpace;\n break;\n case \"G\":\n state.patternSpace = state.patternSpace + \"\\n\" + state.holdSpace;\n break;\n case \"x\": {\n const tmp = state.patternSpace;\n state.patternSpace = state.holdSpace;\n state.holdSpace = tmp;\n break;\n }\n case \"n\":\n // Output current pattern space, then read next line\n if (!state.suppressOutput) {\n state.output.push(state.patternSpace);\n }\n state.lineIndex++;\n if (state.lineIndex < state.lines.length) {\n state.patternSpace = state.lines[state.lineIndex]!;\n } else {\n // No more lines\n state.deleted = true;\n return { branchToEnd: false, deleted: true, nextLine: false, restart: false };\n }\n break;\n case \"N\":\n // Append next line to pattern space\n state.lineIndex++;\n if (state.lineIndex < state.lines.length) {\n state.patternSpace = state.patternSpace + \"\\n\" + state.lines[state.lineIndex]!;\n } else {\n // No more lines: output pattern space and exit (POSIX behavior)\n if (!state.suppressOutput) {\n state.output.push(state.patternSpace);\n }\n state.deleted = true;\n return { branchToEnd: false, deleted: true, nextLine: false, restart: false };\n }\n break;\n case \"P\": {\n // Print up to first \\n\n const nlIdx = state.patternSpace.indexOf(\"\\n\");\n if (nlIdx >= 0) {\n state.output.push(state.patternSpace.slice(0, nlIdx));\n } else {\n state.output.push(state.patternSpace);\n }\n break;\n }\n case \"D\": {\n // Delete up to first \\n, restart; if no \\n, delete all\n const nlIdx2 = state.patternSpace.indexOf(\"\\n\");\n if (nlIdx2 >= 0) {\n state.patternSpace = state.patternSpace.slice(nlIdx2 + 1);\n state.restart = true;\n return { branchToEnd: false, deleted: false, nextLine: false, restart: true };\n } else {\n state.deleted = true;\n return { branchToEnd: false, deleted: true, nextLine: false, restart: false };\n }\n }\n case \"b\":\n if (cmd.label) {\n // Branch to label — only works at top level\n if (topLevel) {\n const idx = findLabel(commands, cmd.label);\n if (idx >= 0) {\n pc = idx;\n continue;\n }\n }\n // Label not found or not top-level: branch to end\n return { branchToEnd: true, branchLabel: cmd.label, deleted: false, nextLine: false, restart: false };\n }\n // No label: branch to end of script\n return { branchToEnd: true, deleted: false, nextLine: false, restart: false };\n case \"group\":\n if (cmd.children) {\n const result = executeCommands(cmd.children, state, false);\n if (result.deleted || result.branchToEnd || result.restart) {\n // Propagate branch labels up for top-level resolution\n if (result.branchLabel && topLevel) {\n const idx = findLabel(commands, result.branchLabel);\n if (idx >= 0) {\n pc = idx;\n continue;\n }\n }\n return result;\n }\n }\n break;\n }\n pc++;\n }\n return { branchToEnd: false, deleted: false, nextLine: false, restart: false };\n}\n\nexport const sed: Command = async (ctx) => {\n const { options, files, error } = parseArgs(ctx.args);\n\n if (error) {\n await ctx.stderr.writeText(formatError(error));\n return 1;\n }\n\n if (options.commands.length === 0) {\n await ctx.stderr.writeText(\"sed: missing script\\n\");\n return 1;\n }\n\n const processContent = async (content: string): Promise<string[]> => {\n const lines = content.split(\"\\n\");\n if (lines.length > 0 && lines[lines.length - 1] === \"\") {\n lines.pop();\n }\n\n const allOutput: string[] = [];\n const state: SedState = {\n patternSpace: \"\",\n holdSpace: \"\",\n lineIndex: 0,\n lines,\n suppressOutput: options.suppressOutput,\n output: [],\n deleted: false,\n restart: false,\n rangeState: new Map(),\n };\n\n while (state.lineIndex < lines.length) {\n state.patternSpace = lines[state.lineIndex]!;\n state.deleted = false;\n state.output = [];\n\n // Execute commands, possibly restarting on D\n let restarting = true;\n while (restarting) {\n restarting = false;\n state.restart = false;\n const result = executeCommands(options.commands, state, true);\n\n if (result.restart) {\n restarting = true;\n // output collected so far in this cycle goes out\n allOutput.push(...state.output);\n state.output = [];\n continue;\n }\n\n if (result.deleted) {\n allOutput.push(...state.output);\n state.lineIndex++;\n break;\n }\n\n // Normal end: collect printed lines, then auto-print\n allOutput.push(...state.output);\n if (!options.suppressOutput) {\n allOutput.push(state.patternSpace);\n }\n state.lineIndex++;\n }\n }\n\n return allOutput;\n };\n\n if (files.length === 0) {\n const content = await ctx.stdin.text();\n const outputLines = await processContent(content);\n for (const line of outputLines) {\n await ctx.stdout.writeText(line + \"\\n\");\n }\n } else if (options.inPlace) {\n for (const file of files) {\n try {\n const path = ctx.fs.resolve(ctx.cwd, file);\n const content = await ctx.fs.readFile(path);\n const outputLines = await processContent(content.toString());\n const result = outputLines.length > 0 ? outputLines.join(\"\\n\") + \"\\n\" : \"\";\n await ctx.fs.writeFile(path, result);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n await ctx.stderr.writeText(`sed: ${file}: ${message}\\n`);\n return 1;\n }\n }\n } else {\n for (const file of files) {\n try {\n const path = ctx.fs.resolve(ctx.cwd, file);\n const content = await ctx.fs.readFile(path);\n const outputLines = await processContent(content.toString());\n for (const line of outputLines) {\n await ctx.stdout.writeText(line + \"\\n\");\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n await ctx.stderr.writeText(`sed: ${file}: ${message}\\n`);\n return 1;\n }\n }\n }\n\n return 0;\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "310CF798610B6B7364756E2164756E21",
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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: (
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
26
36
|
});
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -105,4 +115,4 @@ var sort = async (ctx) => {
|
|
|
105
115
|
return 0;
|
|
106
116
|
};
|
|
107
117
|
|
|
108
|
-
//# debugId=
|
|
118
|
+
//# debugId=867BEACE9114F5E964756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\nimport { createFlagParser, type FlagDefinition } from \"../../utils/flag-parser.cjs\";\n\ninterface SortFlags {\n reverse: boolean;\n numeric: boolean;\n unique: boolean;\n}\n\nconst spec = {\n name: \"sort\",\n flags: [\n { short: \"r\", long: \"reverse\" },\n { short: \"n\", long: \"numeric-sort\" },\n { short: \"u\", long: \"unique\" },\n ] as FlagDefinition[],\n usage: \"sort [-rnu] [file ...]\",\n};\n\nconst defaults: SortFlags = { reverse: false, numeric: false, unique: false };\n\nconst handler = (flags: SortFlags, flag: FlagDefinition) => {\n if (flag.short === \"r\") flags.reverse = true;\n if (flag.short === \"n\") flags.numeric = true;\n if (flag.short === \"u\") flags.unique = true;\n};\n\nconst parser = createFlagParser(spec, defaults, handler);\n\nexport const sort: Command = async (ctx) => {\n const result = parser.parse(ctx.args);\n\n if (result.error) {\n await parser.writeError(result.error, ctx.stderr);\n return 1;\n }\n\n const { reverse, numeric, unique } = result.flags;\n const files = result.args;\n\n let allLines: string[] = [];\n\n if (files.length === 0) {\n // Read from stdin\n for await (const line of ctx.stdin.lines()) {\n allLines.push(line);\n }\n } else {\n for (const file of files) {\n try {\n const path = ctx.fs.resolve(ctx.cwd, file);\n const content = (await ctx.fs.readFile(path)).toString();\n const lines = content.split(\"\\n\");\n if (lines[lines.length - 1] === \"\") {\n lines.pop();\n }\n allLines.push(...lines);\n } catch (err) {\n await ctx.stderr.writeText(`sort: ${file}: No such file or directory\\n`);\n return 1;\n }\n }\n }\n\n // Sort\n if (numeric) {\n allLines.sort((a, b) => {\n const numA = parseFloat(a) || 0;\n const numB = parseFloat(b) || 0;\n return numA - numB;\n });\n } else {\n allLines.sort();\n }\n\n if (reverse) {\n allLines.reverse();\n }\n\n if (unique) {\n allLines = [...new Set(allLines)];\n }\n\n for (const line of allLines) {\n await ctx.stdout.writeText(line + \"\\n\");\n }\n\n return 0;\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACsD,IAAtD;AAQA,IAAM,OAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,IACL,EAAE,OAAO,KAAK,MAAM,UAAU;AAAA,IAC9B,EAAE,OAAO,KAAK,MAAM,eAAe;AAAA,IACnC,EAAE,OAAO,KAAK,MAAM,SAAS;AAAA,EAC/B;AAAA,EACA,OAAO;AACT;AAEA,IAAM,WAAsB,EAAE,SAAS,OAAO,SAAS,OAAO,QAAQ,MAAM;AAE5E,IAAM,UAAU,CAAC,OAAkB,SAAyB;AAAA,EAC1D,IAAI,KAAK,UAAU;AAAA,IAAK,MAAM,UAAU;AAAA,EACxC,IAAI,KAAK,UAAU;AAAA,IAAK,MAAM,UAAU;AAAA,EACxC,IAAI,KAAK,UAAU;AAAA,IAAK,MAAM,SAAS;AAAA;AAGzC,IAAM,SAAS,oCAAiB,MAAM,UAAU,OAAO;AAEhD,IAAM,OAAgB,OAAO,QAAQ;AAAA,EAC1C,MAAM,SAAS,OAAO,MAAM,IAAI,IAAI;AAAA,EAEpC,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM,OAAO,WAAW,OAAO,OAAO,IAAI,MAAM;AAAA,IAChD,OAAO;AAAA,EACT;AAAA,EAEA,QAAQ,SAAS,SAAS,WAAW,OAAO;AAAA,EAC5C,MAAM,QAAQ,OAAO;AAAA,EAErB,IAAI,WAAqB,CAAC;AAAA,EAE1B,IAAI,MAAM,WAAW,GAAG;AAAA,IAEtB,iBAAiB,QAAQ,IAAI,MAAM,MAAM,GAAG;AAAA,MAC1C,SAAS,KAAK,IAAI;AAAA,IACpB;AAAA,EACF,EAAO;AAAA,IACL,WAAW,QAAQ,OAAO;AAAA,MACxB,IAAI;AAAA,QACF,MAAM,OAAO,IAAI,GAAG,QAAQ,IAAI,KAAK,IAAI;AAAA,QACzC,MAAM,WAAW,MAAM,IAAI,GAAG,SAAS,IAAI,GAAG,SAAS;AAAA,QACvD,MAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI;AAAA,QAChC,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI;AAAA,UAClC,MAAM,IAAI;AAAA,QACZ;AAAA,QACA,SAAS,KAAK,GAAG,KAAK;AAAA,QACtB,OAAO,KAAK;AAAA,QACZ,MAAM,IAAI,OAAO,UAAU,SAAS;AAAA,CAAmC;AAAA,QACvE,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,EAIF,IAAI,SAAS;AAAA,IACX,SAAS,KAAK,CAAC,GAAG,MAAM;AAAA,MACtB,MAAM,OAAO,WAAW,CAAC,KAAK;AAAA,MAC9B,MAAM,OAAO,WAAW,CAAC,KAAK;AAAA,MAC9B,OAAO,OAAO;AAAA,KACf;AAAA,EACH,EAAO;AAAA,IACL,SAAS,KAAK;AAAA;AAAA,EAGhB,IAAI,SAAS;AAAA,IACX,SAAS,QAAQ;AAAA,EACnB;AAAA,EAEA,IAAI,QAAQ;AAAA,IACV,WAAW,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC;AAAA,EAClC;AAAA,EAEA,WAAW,QAAQ,UAAU;AAAA,IAC3B,MAAM,IAAI,OAAO,UAAU,OAAO;AAAA,CAAI;AAAA,EACxC;AAAA,EAEA,OAAO;AAAA;",
|
|
8
|
+
"debugId": "867BEACE9114F5E964756E2164756E21",
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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: (
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
26
36
|
});
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -107,4 +117,4 @@ var tail = async (ctx) => {
|
|
|
107
117
|
return 0;
|
|
108
118
|
};
|
|
109
119
|
|
|
110
|
-
//# debugId=
|
|
120
|
+
//# debugId=B6713ACEB46F636364756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\nimport { createFlagParser, type FlagDefinition } from \"../../utils/flag-parser.cjs\";\n\ninterface TailFlags {\n lines: number;\n}\n\nconst spec = {\n name: \"tail\",\n flags: [\n { short: \"n\", long: \"lines\", takesValue: true },\n ] as FlagDefinition[],\n usage: \"tail [-n lines] [file ...]\",\n};\n\nconst defaults: TailFlags = { lines: 10 };\n\nconst handler = (flags: TailFlags, flag: FlagDefinition, value?: string) => {\n if (flag.short === \"n\" && value) {\n flags.lines = parseInt(value, 10);\n }\n};\n\nconst parser = createFlagParser(spec, defaults, handler);\n\nexport const tail: Command = async (ctx) => {\n // Pre-process args to handle legacy -N format (e.g., -5 means -n 5)\n const processedArgs: string[] = [];\n for (const arg of ctx.args) {\n if (arg.startsWith(\"-\") && /^-\\d+$/.test(arg)) {\n processedArgs.push(\"-n\", arg.slice(1));\n } else {\n processedArgs.push(arg);\n }\n }\n\n const result = parser.parse(processedArgs);\n\n if (result.error) {\n await parser.writeError(result.error, ctx.stderr);\n return 1;\n }\n\n const numLines = result.flags.lines;\n const files = result.args;\n\n if (isNaN(numLines) || numLines < 0) {\n await ctx.stderr.writeText(\"tail: invalid number of lines\\n\");\n return 1;\n }\n\n const outputLines = async (content: string) => {\n const lines = content.split(\"\\n\");\n // Remove trailing empty line if present\n if (lines[lines.length - 1] === \"\") {\n lines.pop();\n }\n const toOutput = lines.slice(-numLines);\n for (const line of toOutput) {\n await ctx.stdout.writeText(line + \"\\n\");\n }\n };\n\n if (files.length === 0) {\n // Read from stdin\n const content = await ctx.stdin.text();\n await outputLines(content);\n } else {\n for (let i = 0; i < files.length; i++) {\n const file = files[i]!;\n try {\n if (files.length > 1) {\n if (i > 0) await ctx.stdout.writeText(\"\\n\");\n await ctx.stdout.writeText(`==> ${file} <==\\n`);\n }\n const path = ctx.fs.resolve(ctx.cwd, file);\n const content = (await ctx.fs.readFile(path)).toString();\n await outputLines(content);\n } catch (err) {\n await ctx.stderr.writeText(`tail: ${file}: No such file or directory\\n`);\n return 1;\n }\n }\n }\n\n return 0;\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACsD,IAAtD;AAMA,IAAM,OAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,IACL,EAAE,OAAO,KAAK,MAAM,SAAS,YAAY,KAAK;AAAA,EAChD;AAAA,EACA,OAAO;AACT;AAEA,IAAM,WAAsB,EAAE,OAAO,GAAG;AAExC,IAAM,UAAU,CAAC,OAAkB,MAAsB,UAAmB;AAAA,EAC1E,IAAI,KAAK,UAAU,OAAO,OAAO;AAAA,IAC/B,MAAM,QAAQ,SAAS,OAAO,EAAE;AAAA,EAClC;AAAA;AAGF,IAAM,SAAS,oCAAiB,MAAM,UAAU,OAAO;AAEhD,IAAM,OAAgB,OAAO,QAAQ;AAAA,EAE1C,MAAM,gBAA0B,CAAC;AAAA,EACjC,WAAW,OAAO,IAAI,MAAM;AAAA,IAC1B,IAAI,IAAI,WAAW,GAAG,KAAK,SAAS,KAAK,GAAG,GAAG;AAAA,MAC7C,cAAc,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC;AAAA,IACvC,EAAO;AAAA,MACL,cAAc,KAAK,GAAG;AAAA;AAAA,EAE1B;AAAA,EAEA,MAAM,SAAS,OAAO,MAAM,aAAa;AAAA,EAEzC,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM,OAAO,WAAW,OAAO,OAAO,IAAI,MAAM;AAAA,IAChD,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,WAAW,OAAO,MAAM;AAAA,EAC9B,MAAM,QAAQ,OAAO;AAAA,EAErB,IAAI,MAAM,QAAQ,KAAK,WAAW,GAAG;AAAA,IACnC,MAAM,IAAI,OAAO,UAAU;AAAA,CAAiC;AAAA,IAC5D,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,cAAc,OAAO,YAAoB;AAAA,IAC7C,MAAM,QAAQ,QAAQ,MAAM;AAAA,CAAI;AAAA,IAEhC,IAAI,MAAM,MAAM,SAAS,OAAO,IAAI;AAAA,MAClC,MAAM,IAAI;AAAA,IACZ;AAAA,IACA,MAAM,WAAW,MAAM,MAAM,CAAC,QAAQ;AAAA,IACtC,WAAW,QAAQ,UAAU;AAAA,MAC3B,MAAM,IAAI,OAAO,UAAU,OAAO;AAAA,CAAI;AAAA,IACxC;AAAA;AAAA,EAGF,IAAI,MAAM,WAAW,GAAG;AAAA,IAEtB,MAAM,UAAU,MAAM,IAAI,MAAM,KAAK;AAAA,IACrC,MAAM,YAAY,OAAO;AAAA,EAC3B,EAAO;AAAA,IACL,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACrC,MAAM,OAAO,MAAM;AAAA,MACnB,IAAI;AAAA,QACF,IAAI,MAAM,SAAS,GAAG;AAAA,UACpB,IAAI,IAAI;AAAA,YAAG,MAAM,IAAI,OAAO,UAAU;AAAA,CAAI;AAAA,UAC1C,MAAM,IAAI,OAAO,UAAU,OAAO;AAAA,CAAY;AAAA,QAChD;AAAA,QACA,MAAM,OAAO,IAAI,GAAG,QAAQ,IAAI,KAAK,IAAI;AAAA,QACzC,MAAM,WAAW,MAAM,IAAI,GAAG,SAAS,IAAI,GAAG,SAAS;AAAA,QACvD,MAAM,YAAY,OAAO;AAAA,QACzB,OAAO,KAAK;AAAA,QACZ,MAAM,IAAI,OAAO,UAAU,SAAS;AAAA,CAAmC;AAAA,QACvE,OAAO;AAAA;AAAA,IAEX;AAAA;AAAA,EAGF,OAAO;AAAA;",
|
|
8
|
+
"debugId": "B6713ACEB46F636364756E2164756E21",
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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: (
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
26
36
|
});
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -73,4 +83,4 @@ var tee = async (ctx) => {
|
|
|
73
83
|
return 0;
|
|
74
84
|
};
|
|
75
85
|
|
|
76
|
-
//# debugId=
|
|
86
|
+
//# debugId=BBFC2FCECC25DFBE64756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\nimport { createFlagParser, type FlagDefinition } from \"../../utils/flag-parser.cjs\";\n\ninterface TeeFlags {\n append: boolean;\n}\n\nconst spec = {\n name: \"tee\",\n flags: [\n { short: \"a\", long: \"append\" },\n ] as FlagDefinition[],\n usage: \"tee [-a] [file ...]\",\n};\n\nconst defaults: TeeFlags = { append: false };\n\nconst handler = (flags: TeeFlags, flag: FlagDefinition) => {\n if (flag.short === \"a\") flags.append = true;\n};\n\nconst parser = createFlagParser(spec, defaults, handler);\n\nexport const tee: Command = async (ctx) => {\n const result = parser.parse(ctx.args);\n\n if (result.error) {\n await parser.writeError(result.error, ctx.stderr);\n return 1;\n }\n\n const files = result.args;\n\n // Read all stdin content\n const content = await ctx.stdin.buffer();\n\n // Write to stdout\n await ctx.stdout.write(new Uint8Array(content));\n\n // Write to each file\n for (const file of files) {\n const path = ctx.fs.resolve(ctx.cwd, file);\n try {\n if (result.flags.append) {\n await ctx.fs.appendFile(path, content);\n } else {\n await ctx.fs.writeFile(path, content);\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n await ctx.stderr.writeText(`tee: ${file}: ${message}\\n`);\n return 1;\n }\n }\n\n return 0;\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACsD,IAAtD;AAMA,IAAM,OAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,IACL,EAAE,OAAO,KAAK,MAAM,SAAS;AAAA,EAC/B;AAAA,EACA,OAAO;AACT;AAEA,IAAM,WAAqB,EAAE,QAAQ,MAAM;AAE3C,IAAM,UAAU,CAAC,OAAiB,SAAyB;AAAA,EACzD,IAAI,KAAK,UAAU;AAAA,IAAK,MAAM,SAAS;AAAA;AAGzC,IAAM,SAAS,oCAAiB,MAAM,UAAU,OAAO;AAEhD,IAAM,MAAe,OAAO,QAAQ;AAAA,EACzC,MAAM,SAAS,OAAO,MAAM,IAAI,IAAI;AAAA,EAEpC,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM,OAAO,WAAW,OAAO,OAAO,IAAI,MAAM;AAAA,IAChD,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ,OAAO;AAAA,EAGrB,MAAM,UAAU,MAAM,IAAI,MAAM,OAAO;AAAA,EAGvC,MAAM,IAAI,OAAO,MAAM,IAAI,WAAW,OAAO,CAAC;AAAA,EAG9C,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,OAAO,IAAI,GAAG,QAAQ,IAAI,KAAK,IAAI;AAAA,IACzC,IAAI;AAAA,MACF,IAAI,OAAO,MAAM,QAAQ;AAAA,QACvB,MAAM,IAAI,GAAG,WAAW,MAAM,OAAO;AAAA,MACvC,EAAO;AAAA,QACL,MAAM,IAAI,GAAG,UAAU,MAAM,OAAO;AAAA;AAAA,MAEtC,OAAO,KAAK;AAAA,MACZ,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MAC/D,MAAM,IAAI,OAAO,UAAU,QAAQ,SAAS;AAAA,CAAW;AAAA,MACvD,OAAO;AAAA;AAAA,EAEX;AAAA,EAEA,OAAO;AAAA;",
|
|
8
|
+
"debugId": "BBFC2FCECC25DFBE64756E2164756E21",
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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: (
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
26
36
|
});
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -145,4 +155,4 @@ var test = async (ctx) => {
|
|
|
145
155
|
};
|
|
146
156
|
var bracket = test;
|
|
147
157
|
|
|
148
|
-
//# debugId=
|
|
158
|
+
//# debugId=4EA539996973755A64756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\n\nexport const test: Command = async (ctx) => {\n const args = [...ctx.args];\n\n // Handle [ ... ] syntax - remove trailing ]\n if (args[args.length - 1] === \"]\") {\n args.pop();\n }\n\n if (args.length === 0) {\n return 1; // Empty test is false\n }\n\n // Single argument: true if non-empty string\n if (args.length === 1) {\n return args[0]!.length > 0 ? 0 : 1;\n }\n\n // Two arguments: unary operators\n if (args.length === 2) {\n const [op, operand] = args;\n\n switch (op) {\n case \"-n\": // Non-zero length\n return operand!.length > 0 ? 0 : 1;\n case \"-z\": // Zero length\n return operand!.length === 0 ? 0 : 1;\n case \"-f\": // Is regular file\n try {\n const path = ctx.fs.resolve(ctx.cwd, operand!);\n const stat = await ctx.fs.stat(path);\n return stat.isFile() ? 0 : 1;\n } catch {\n return 1;\n }\n case \"-d\": // Is directory\n try {\n const path = ctx.fs.resolve(ctx.cwd, operand!);\n const stat = await ctx.fs.stat(path);\n return stat.isDirectory() ? 0 : 1;\n } catch {\n return 1;\n }\n case \"-e\": // Exists\n try {\n const path = ctx.fs.resolve(ctx.cwd, operand!);\n return (await ctx.fs.exists(path)) ? 0 : 1;\n } catch {\n return 1;\n }\n case \"-s\": // Has size > 0\n try {\n const path = ctx.fs.resolve(ctx.cwd, operand!);\n const stat = await ctx.fs.stat(path);\n return stat.size > 0 ? 0 : 1;\n } catch {\n return 1;\n }\n case \"-r\": // Readable (always true in virtual fs)\n case \"-w\": // Writable (always true in virtual fs)\n case \"-x\": // Executable (always true in virtual fs)\n try {\n const path = ctx.fs.resolve(ctx.cwd, operand!);\n return (await ctx.fs.exists(path)) ? 0 : 1;\n } catch {\n return 1;\n }\n case \"!\": // Negation\n return operand!.length > 0 ? 1 : 0;\n default:\n await ctx.stderr.writeText(`test: unknown operator: ${op}\\n`);\n return 2;\n }\n }\n\n // Three arguments: binary operators\n if (args.length === 3) {\n const [left, op, right] = args;\n\n // Handle negation with two-arg expression\n if (left === \"!\") {\n const innerResult = await test({\n ...ctx,\n args: [op!, right!],\n });\n return innerResult === 0 ? 1 : 0;\n }\n\n switch (op) {\n case \"=\":\n case \"==\":\n return left === right ? 0 : 1;\n case \"!=\":\n return left !== right ? 0 : 1;\n case \"-eq\":\n return parseInt(left!, 10) === parseInt(right!, 10) ? 0 : 1;\n case \"-ne\":\n return parseInt(left!, 10) !== parseInt(right!, 10) ? 0 : 1;\n case \"-lt\":\n return parseInt(left!, 10) < parseInt(right!, 10) ? 0 : 1;\n case \"-le\":\n return parseInt(left!, 10) <= parseInt(right!, 10) ? 0 : 1;\n case \"-gt\":\n return parseInt(left!, 10) > parseInt(right!, 10) ? 0 : 1;\n case \"-ge\":\n return parseInt(left!, 10) >= parseInt(right!, 10) ? 0 : 1;\n default:\n await ctx.stderr.writeText(`test: unknown operator: ${op}\\n`);\n return 2;\n }\n }\n\n // Four arguments: handle negation with three-arg expression\n if (args.length === 4 && args[0] === \"!\") {\n const innerResult = await test({\n ...ctx,\n args: args.slice(1),\n });\n return innerResult === 0 ? 1 : 0;\n }\n\n await ctx.stderr.writeText(\"test: too many arguments\\n\");\n return 2;\n};\n\n// Alias for [ command\nexport const bracket: Command = test;\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "4EA539996973755A64756E2164756E21",
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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: (
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
26
36
|
});
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -78,4 +88,4 @@ var touch = async (ctx) => {
|
|
|
78
88
|
return 0;
|
|
79
89
|
};
|
|
80
90
|
|
|
81
|
-
//# debugId=
|
|
91
|
+
//# debugId=C657F1B4D793856F64756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\nimport { createFlagParser, type FlagDefinition } from \"../../utils/flag-parser.cjs\";\n\ninterface TouchFlags {\n noCreate: boolean;\n}\n\nconst spec = {\n name: \"touch\",\n flags: [\n { short: \"c\", long: \"no-create\" },\n ] as FlagDefinition[],\n usage: \"touch [-c] file ...\",\n};\n\nconst defaults: TouchFlags = { noCreate: false };\n\nconst handler = (flags: TouchFlags, flag: FlagDefinition) => {\n if (flag.short === \"c\") flags.noCreate = true;\n};\n\nconst parser = createFlagParser(spec, defaults, handler);\n\nexport const touch: Command = async (ctx) => {\n const result = parser.parse(ctx.args);\n\n if (result.error) {\n await parser.writeError(result.error, ctx.stderr);\n return 1;\n }\n\n const files = result.args;\n\n if (files.length === 0) {\n await ctx.stderr.writeText(\"touch: missing file operand\\n\");\n return 1;\n }\n\n for (const file of files) {\n const path = ctx.fs.resolve(ctx.cwd, file);\n try {\n const exists = await ctx.fs.exists(path);\n if (exists) {\n // Update mtime by reading and writing back\n const content = await ctx.fs.readFile(path);\n await ctx.fs.writeFile(path, content);\n } else if (!result.flags.noCreate) {\n // Create empty file\n await ctx.fs.writeFile(path, \"\");\n }\n // If noCreate and doesn't exist, skip silently\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n await ctx.stderr.writeText(`touch: cannot touch '${file}': ${message}\\n`);\n return 1;\n }\n }\n\n return 0;\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACsD,IAAtD;AAMA,IAAM,OAAO;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,IACL,EAAE,OAAO,KAAK,MAAM,YAAY;AAAA,EAClC;AAAA,EACA,OAAO;AACT;AAEA,IAAM,WAAuB,EAAE,UAAU,MAAM;AAE/C,IAAM,UAAU,CAAC,OAAmB,SAAyB;AAAA,EAC3D,IAAI,KAAK,UAAU;AAAA,IAAK,MAAM,WAAW;AAAA;AAG3C,IAAM,SAAS,oCAAiB,MAAM,UAAU,OAAO;AAEhD,IAAM,QAAiB,OAAO,QAAQ;AAAA,EAC3C,MAAM,SAAS,OAAO,MAAM,IAAI,IAAI;AAAA,EAEpC,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM,OAAO,WAAW,OAAO,OAAO,IAAI,MAAM;AAAA,IAChD,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ,OAAO;AAAA,EAErB,IAAI,MAAM,WAAW,GAAG;AAAA,IACtB,MAAM,IAAI,OAAO,UAAU;AAAA,CAA+B;AAAA,IAC1D,OAAO;AAAA,EACT;AAAA,EAEA,WAAW,QAAQ,OAAO;AAAA,IACxB,MAAM,OAAO,IAAI,GAAG,QAAQ,IAAI,KAAK,IAAI;AAAA,IACzC,IAAI;AAAA,MACF,MAAM,SAAS,MAAM,IAAI,GAAG,OAAO,IAAI;AAAA,MACvC,IAAI,QAAQ;AAAA,QAEV,MAAM,UAAU,MAAM,IAAI,GAAG,SAAS,IAAI;AAAA,QAC1C,MAAM,IAAI,GAAG,UAAU,MAAM,OAAO;AAAA,MACtC,EAAO,SAAI,CAAC,OAAO,MAAM,UAAU;AAAA,QAEjC,MAAM,IAAI,GAAG,UAAU,MAAM,EAAE;AAAA,MACjC;AAAA,MAEA,OAAO,KAAK;AAAA,MACZ,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MAC/D,MAAM,IAAI,OAAO,UAAU,wBAAwB,UAAU;AAAA,CAAW;AAAA,MACxE,OAAO;AAAA;AAAA,EAEX;AAAA,EAEA,OAAO;AAAA;",
|
|
8
|
+
"debugId": "C657F1B4D793856F64756E2164756E21",
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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: (
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
26
36
|
});
|
|
27
37
|
};
|
|
28
38
|
|
|
@@ -180,4 +190,4 @@ var tr = async (ctx) => {
|
|
|
180
190
|
return 0;
|
|
181
191
|
};
|
|
182
192
|
|
|
183
|
-
//# debugId=
|
|
193
|
+
//# debugId=26BBC8DC239649FA64756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { Command } from \"../../types.cjs\";\nimport { createFlagParser, type FlagDefinition } from \"../../utils/flag-parser.cjs\";\nimport { expandEscapes } from \"../../utils/expand-escapes.cjs\";\n\ninterface TrFlags {\n delete: boolean;\n squeeze: boolean;\n complement: boolean;\n}\n\nconst spec = {\n name: \"tr\",\n flags: [\n { short: \"d\", long: \"delete\" },\n { short: \"s\", long: \"squeeze-repeats\" },\n { short: \"c\", long: \"complement\" },\n { short: \"C\", long: \"complement-values\" },\n ] as FlagDefinition[],\n usage: \"tr [-cCds] SET1 [SET2]\",\n};\n\nconst defaults: TrFlags = { delete: false, squeeze: false, complement: false };\n\nconst handler = (flags: TrFlags, flag: FlagDefinition) => {\n if (flag.short === \"d\") flags.delete = true;\n if (flag.short === \"s\") flags.squeeze = true;\n if (flag.short === \"c\" || flag.short === \"C\") flags.complement = true;\n};\n\nconst parser = createFlagParser(spec, defaults, handler);\n\n\nfunction expandCharClass(name: string): string {\n switch (name) {\n case \"alpha\": return expandRange(\"a-zA-Z\");\n case \"digit\": return \"0123456789\";\n case \"alnum\": return expandRange(\"a-zA-Z\") + \"0123456789\";\n case \"lower\": return expandRange(\"a-z\");\n case \"upper\": return expandRange(\"A-Z\");\n case \"space\": return \" \\t\\n\\r\\f\\v\";\n case \"blank\": return \" \\t\";\n case \"print\": return expandRange(\" -~\");\n case \"graph\": return expandRange(\"!-~\");\n case \"punct\": return \"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~\";\n case \"cntrl\": return Array.from({ length: 32 }, (_, i) => String.fromCharCode(i)).join(\"\") + String.fromCharCode(127);\n case \"xdigit\": return \"0123456789abcdefABCDEF\";\n default: return \"\";\n }\n}\n\nfunction expandRange(s: string): string {\n let result = \"\";\n for (let i = 0; i < s.length; i++) {\n if (i + 2 < s.length && s[i + 1] === \"-\") {\n const start = s.charCodeAt(i);\n const end = s.charCodeAt(i + 2);\n for (let c = start; c <= end; c++) {\n result += String.fromCharCode(c);\n }\n i += 2;\n } else {\n result += s[i];\n }\n }\n return result;\n}\n\nfunction expandSet(s: string): string {\n // First expand escape sequences\n s = expandEscapes(s);\n // Expand character classes [:name:]\n s = s.replace(/\\[:(\\w+):\\]/g, (_, name) => expandCharClass(name));\n // Expand ranges\n return expandRange(s);\n}\n\nexport const tr: Command = async (ctx) => {\n const result = parser.parse(ctx.args);\n\n if (result.error) {\n await parser.writeError(result.error, ctx.stderr);\n return 1;\n }\n\n const { delete: deleteMode, squeeze, complement } = result.flags;\n const args = result.args;\n\n if (args.length < 1) {\n await ctx.stderr.writeText(\"tr: missing operand\\n\");\n return 1;\n }\n\n let set1 = expandSet(args[0]!);\n const set2 = args.length > 1 ? expandSet(args[1]!) : \"\";\n\n if (complement) {\n // Build complement: all chars 0-127 not in set1\n const set1Chars = new Set(set1);\n let comp = \"\";\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i);\n if (!set1Chars.has(ch)) comp += ch;\n }\n set1 = comp;\n }\n\n const input = await ctx.stdin.text();\n let output = \"\";\n\n if (deleteMode && squeeze) {\n // -ds: delete chars in SET1, then squeeze chars in SET2\n const deleteSet = new Set(set1);\n const squeezeSet = new Set(set2);\n let lastChar = \"\";\n for (const ch of input) {\n if (deleteSet.has(ch)) continue;\n if (squeezeSet.has(ch) && ch === lastChar) continue;\n output += ch;\n lastChar = ch;\n }\n } else if (deleteMode) {\n const deleteSet = new Set(set1);\n for (const ch of input) {\n if (!deleteSet.has(ch)) output += ch;\n }\n } else if (squeeze && set2 === \"\") {\n // -s with only SET1: squeeze chars in SET1\n const squeezeSet = new Set(set1);\n let lastChar = \"\";\n for (const ch of input) {\n if (squeezeSet.has(ch) && ch === lastChar) continue;\n output += ch;\n lastChar = ch;\n }\n } else {\n // Translation mode (possibly with -s)\n const map = new Map<string, string>();\n for (let i = 0; i < set1.length; i++) {\n const replacement = i < set2.length ? set2[i]! : set2[set2.length - 1] ?? \"\";\n map.set(set1[i]!, replacement);\n }\n\n const squeezeSet = squeeze ? new Set(set2) : null;\n let lastChar = \"\";\n\n for (const ch of input) {\n const mapped = map.has(ch) ? map.get(ch)! : ch;\n if (squeezeSet && squeezeSet.has(mapped) && mapped === lastChar) continue;\n output += mapped;\n lastChar = mapped;\n }\n }\n\n await ctx.stdout.writeText(output);\n return 0;\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "26BBC8DC239649FA64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|