@poe-platform/safe-bash 0.1.539 → 0.1.541

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 (138) hide show
  1. package/dist/safe-bash/chunks/bz2-B2RXT4EX.js +4836 -0
  2. package/dist/safe-bash/chunks/bz2-B2RXT4EX.js.map +7 -0
  3. package/dist/safe-bash/chunks/{chunk-4NMFAR4Z.js → chunk-2KL6W6NB.js} +3 -629
  4. package/dist/safe-bash/chunks/{chunk-4NMFAR4Z.js.map → chunk-2KL6W6NB.js.map} +4 -4
  5. package/dist/safe-bash/chunks/chunk-5VBLSPNM.js +641 -0
  6. package/dist/safe-bash/chunks/chunk-5VBLSPNM.js.map +7 -0
  7. package/dist/safe-bash/chunks/{chunk-LUIEXTN5.js → chunk-66VSWIUC.js} +6 -4
  8. package/dist/safe-bash/chunks/{chunk-LUIEXTN5.js.map → chunk-66VSWIUC.js.map} +1 -1
  9. package/dist/safe-bash/chunks/{chunk-5X2TAR25.js → chunk-6PSMEBVP.js} +6 -4
  10. package/dist/safe-bash/chunks/{chunk-5X2TAR25.js.map → chunk-6PSMEBVP.js.map} +1 -1
  11. package/dist/safe-bash/chunks/{chunk-RDIJ6M2D.js → chunk-AZNI263O.js} +6 -4
  12. package/dist/safe-bash/chunks/{chunk-RDIJ6M2D.js.map → chunk-AZNI263O.js.map} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-CI42NIWL.js → chunk-DPJWEGIX.js} +2 -2
  14. package/dist/safe-bash/chunks/{chunk-GV76QENF.js → chunk-EZLQA6ON.js} +6 -4
  15. package/dist/safe-bash/chunks/{chunk-GV76QENF.js.map → chunk-EZLQA6ON.js.map} +1 -1
  16. package/dist/safe-bash/chunks/{chunk-F4UILGOA.js → chunk-HFEU5SBQ.js} +8 -6
  17. package/dist/safe-bash/chunks/{chunk-F4UILGOA.js.map → chunk-HFEU5SBQ.js.map} +1 -1
  18. package/dist/safe-bash/chunks/{chunk-UL4TNDNV.js → chunk-PZMJ4EC3.js} +5 -3
  19. package/dist/safe-bash/chunks/{chunk-UL4TNDNV.js.map → chunk-PZMJ4EC3.js.map} +1 -1
  20. package/dist/safe-bash/chunks/chunk-R3QJL5HH.js +698 -0
  21. package/dist/safe-bash/chunks/chunk-R3QJL5HH.js.map +7 -0
  22. package/dist/safe-bash/chunks/{chunk-R5ZK7V4W.js → chunk-T5BV7HPD.js} +7 -5
  23. package/dist/safe-bash/chunks/{chunk-R5ZK7V4W.js.map → chunk-T5BV7HPD.js.map} +1 -1
  24. package/dist/safe-bash/chunks/{chunk-RVGX5DQT.js → chunk-TPD45VUZ.js} +15 -11
  25. package/dist/safe-bash/chunks/chunk-TPD45VUZ.js.map +7 -0
  26. package/dist/safe-bash/chunks/{chunk-GZH6ILJC.js → chunk-VNDFKT6F.js} +7 -5
  27. package/dist/safe-bash/chunks/{chunk-GZH6ILJC.js.map → chunk-VNDFKT6F.js.map} +1 -1
  28. package/dist/safe-bash/chunks/{chunk-ELK3CQTQ.js → chunk-WF4P7XKI.js} +7 -5
  29. package/dist/safe-bash/chunks/{chunk-ELK3CQTQ.js.map → chunk-WF4P7XKI.js.map} +1 -1
  30. package/dist/safe-bash/chunks/{chunk-67TENRTW.js → chunk-WODV2DVM.js} +7 -5
  31. package/dist/safe-bash/chunks/{chunk-67TENRTW.js.map → chunk-WODV2DVM.js.map} +1 -1
  32. package/dist/safe-bash/chunks/{chunk-QWCD4HKE.js → chunk-YEJBZLE5.js} +9 -7
  33. package/dist/safe-bash/chunks/{chunk-QWCD4HKE.js.map → chunk-YEJBZLE5.js.map} +1 -1
  34. package/dist/safe-bash/chunks/xz-AVXFDXW4.js +6042 -0
  35. package/dist/safe-bash/chunks/xz-AVXFDXW4.js.map +7 -0
  36. package/dist/safe-bash/chunks/zstd-R6RPHJYO.js +27110 -0
  37. package/dist/safe-bash/chunks/zstd-R6RPHJYO.js.map +7 -0
  38. package/dist/safe-bash/commands/bytes/compression/bounded-codec.d.ts +20 -0
  39. package/dist/safe-bash/commands/bytes/compression/bounded-codec.d.ts.map +1 -0
  40. package/dist/safe-bash/commands/bytes/compression/bounded-codec.js +111 -0
  41. package/dist/safe-bash/commands/bytes/compression/bounded-codec.js.map +1 -0
  42. package/dist/safe-bash/commands/bytes/compression/codec-loader.d.ts +5 -0
  43. package/dist/safe-bash/commands/bytes/compression/codec-loader.d.ts.map +1 -0
  44. package/dist/safe-bash/commands/bytes/compression/codec-loader.js +89 -0
  45. package/dist/safe-bash/commands/bytes/compression/codec-loader.js.map +1 -0
  46. package/dist/safe-bash/commands/bytes/compression/file-operation.d.ts +16 -0
  47. package/dist/safe-bash/commands/bytes/compression/file-operation.d.ts.map +1 -0
  48. package/dist/safe-bash/commands/bytes/compression/file-operation.js +134 -0
  49. package/dist/safe-bash/commands/bytes/compression/file-operation.js.map +1 -0
  50. package/dist/safe-bash/commands/bytes/compression/files.d.ts +1 -1
  51. package/dist/safe-bash/commands/bytes/compression/files.d.ts.map +1 -1
  52. package/dist/safe-bash/commands/bytes/compression/files.js +141 -67
  53. package/dist/safe-bash/commands/bytes/compression/files.js.map +1 -1
  54. package/dist/safe-bash/commands/bytes/compression/index.js +3 -3
  55. package/dist/safe-bash/commands/bytes/compression/index.js.map +1 -1
  56. package/dist/safe-bash/commands/bytes/compression/native/LICENSES.txt +777 -0
  57. package/dist/safe-bash/commands/bytes/compression/native/generated/bz2.d.mts +3 -0
  58. package/dist/safe-bash/commands/bytes/compression/native/generated/bz2.mjs +2 -0
  59. package/dist/safe-bash/commands/bytes/compression/native/generated/xz.d.mts +3 -0
  60. package/dist/safe-bash/commands/bytes/compression/native/generated/xz.mjs +2 -0
  61. package/dist/safe-bash/commands/bytes/compression/native/generated/zstd.d.mts +3 -0
  62. package/dist/safe-bash/commands/bytes/compression/native/generated/zstd.mjs +2 -0
  63. package/dist/safe-bash/commands/bytes/compression/native/sources.json +246 -0
  64. package/dist/safe-bash/commands/bytes/compression/native/types.d.ts +17 -0
  65. package/dist/safe-bash/commands/bytes/compression/native/types.d.ts.map +1 -0
  66. package/dist/safe-bash/commands/bytes/compression/native/types.js +2 -0
  67. package/dist/safe-bash/commands/bytes/compression/native/types.js.map +1 -0
  68. package/dist/safe-bash/commands/bytes/compression/options.d.ts +27 -0
  69. package/dist/safe-bash/commands/bytes/compression/options.d.ts.map +1 -1
  70. package/dist/safe-bash/commands/bytes/compression/options.js +16 -3
  71. package/dist/safe-bash/commands/bytes/compression/options.js.map +1 -1
  72. package/dist/safe-bash/commands/bytes/compression/stream.d.ts.map +1 -1
  73. package/dist/safe-bash/commands/bytes/compression/stream.js +9 -5
  74. package/dist/safe-bash/commands/bytes/compression/stream.js.map +1 -1
  75. package/dist/safe-bash/commands/csplit/index.browser.js +6 -5
  76. package/dist/safe-bash/commands/factor/index.browser.js +4 -3
  77. package/dist/safe-bash/commands/getopt/index.browser.js +4 -3
  78. package/dist/safe-bash/commands/hexdump/command.d.ts +5 -0
  79. package/dist/safe-bash/commands/hexdump/command.d.ts.map +1 -0
  80. package/dist/safe-bash/commands/hexdump/command.js +174 -0
  81. package/dist/safe-bash/commands/hexdump/command.js.map +1 -0
  82. package/dist/safe-bash/commands/hexdump/format.d.ts +2 -0
  83. package/dist/safe-bash/commands/hexdump/format.d.ts.map +1 -0
  84. package/dist/safe-bash/commands/hexdump/format.js +25 -0
  85. package/dist/safe-bash/commands/hexdump/format.js.map +1 -0
  86. package/dist/safe-bash/commands/hexdump/index.browser.js +17 -0
  87. package/dist/safe-bash/commands/hexdump/index.browser.js.map +7 -0
  88. package/dist/safe-bash/commands/hexdump/index.d.ts +7 -0
  89. package/dist/safe-bash/commands/hexdump/index.d.ts.map +1 -0
  90. package/dist/safe-bash/commands/hexdump/index.js +17 -0
  91. package/dist/safe-bash/commands/hexdump/index.js.map +1 -0
  92. package/dist/safe-bash/commands/hexdump/internal.d.ts +52 -0
  93. package/dist/safe-bash/commands/hexdump/internal.d.ts.map +1 -0
  94. package/dist/safe-bash/commands/hexdump/internal.js +150 -0
  95. package/dist/safe-bash/commands/hexdump/internal.js.map +1 -0
  96. package/dist/safe-bash/commands/hexdump/io.d.ts +41 -0
  97. package/dist/safe-bash/commands/hexdump/io.d.ts.map +1 -0
  98. package/dist/safe-bash/commands/hexdump/io.js +288 -0
  99. package/dist/safe-bash/commands/hexdump/io.js.map +1 -0
  100. package/dist/safe-bash/commands/hexdump/options.d.ts +10 -0
  101. package/dist/safe-bash/commands/hexdump/options.d.ts.map +1 -0
  102. package/dist/safe-bash/commands/hexdump/options.js +80 -0
  103. package/dist/safe-bash/commands/hexdump/options.js.map +1 -0
  104. package/dist/safe-bash/commands/network/curl.js +1 -1
  105. package/dist/safe-bash/commands/network/curl.js.map +1 -1
  106. package/dist/safe-bash/commands/network/index.browser.js +7 -6
  107. package/dist/safe-bash/commands/network/output.d.ts.map +1 -1
  108. package/dist/safe-bash/commands/network/output.js +2 -2
  109. package/dist/safe-bash/commands/network/output.js.map +1 -1
  110. package/dist/safe-bash/commands/network/types.d.ts +4 -0
  111. package/dist/safe-bash/commands/network/types.d.ts.map +1 -1
  112. package/dist/safe-bash/commands/network/types.js.map +1 -1
  113. package/dist/safe-bash/commands/pr/index.browser.js +5 -4
  114. package/dist/safe-bash/commands/truncate.d.ts.map +1 -1
  115. package/dist/safe-bash/commands/truncate.js +14 -1
  116. package/dist/safe-bash/commands/truncate.js.map +1 -1
  117. package/dist/safe-bash/commands/tsort/index.browser.js +5 -4
  118. package/dist/safe-bash/commands/xml/index.browser.js +6 -5
  119. package/dist/safe-bash/commands/yq/index.browser.js +7 -6
  120. package/dist/safe-bash/contracts/filesystem.d.ts +1 -1
  121. package/dist/safe-bash/contracts/filesystem.d.ts.map +1 -1
  122. package/dist/safe-bash/contracts/yield.d.ts +1 -0
  123. package/dist/safe-bash/contracts/yield.d.ts.map +1 -1
  124. package/dist/safe-bash/contracts/yield.js +5 -0
  125. package/dist/safe-bash/contracts/yield.js.map +1 -1
  126. package/dist/safe-bash/core.browser.js +597 -163
  127. package/dist/safe-bash/core.browser.js.map +4 -4
  128. package/dist/safe-bash/core.d.ts +1 -0
  129. package/dist/safe-bash/core.d.ts.map +1 -1
  130. package/dist/safe-bash/core.js +1 -0
  131. package/dist/safe-bash/core.js.map +1 -1
  132. package/dist/safe-bash/plugins/composition.d.ts +2 -0
  133. package/dist/safe-bash/plugins/composition.d.ts.map +1 -1
  134. package/dist/safe-bash/plugins/composition.js +3 -1
  135. package/dist/safe-bash/plugins/composition.js.map +1 -1
  136. package/package.json +8 -2
  137. package/dist/safe-bash/chunks/chunk-RVGX5DQT.js.map +0 -7
  138. /package/dist/safe-bash/chunks/{chunk-CI42NIWL.js.map → chunk-DPJWEGIX.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/hexdump/index.ts", "../../src/commands/hexdump/command.ts", "../../src/commands/hexdump/internal.ts", "../../src/commands/hexdump/io.ts", "../../src/commands/hexdump/options.ts", "../../src/commands/hexdump/format.ts"],
4
+ "sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createHexdumpCommand, createHdCommand } from \"./command.js\";\nimport type { HexdumpCommandsOptions } from \"./internal.js\";\n\nexport { createHexdumpCommand, createHdCommand } from \"./command.js\";\nexport type { HexdumpCommandsOptions, HexdumpLimits } from \"./internal.js\";\n\nexport function createHexdumpCommands(options: HexdumpCommandsOptions = {}): readonly CommandDefinition[] {\n return [createHexdumpCommand(options), createHdCommand(options)];\n}\n\nexport function hexdumpCommands(options: HexdumpCommandsOptions = {}): VirtualShellPlugin {\n const commands = createHexdumpCommands(options);\n return { name: \"hexdump-commands\", setup(host) {\n if (!options.replace) for (const command of commands) if (host.commands.has(command.name)) throw new Error(`Command already registered: ${command.name}`);\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import { FsError, type CommandContext, type CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { outputFailure, type ByteSink } from \"../../contracts/io.js\";\nimport { Budget, HexdumpError, settings, type HexdumpCommandsOptions, type HexdumpLimits } from \"./internal.js\";\nimport { Lifecycle, Reader, fsDetail } from \"./io.js\";\nimport { parse, type Parsed } from \"./options.js\";\nimport { formatBlock } from \"./format.js\";\n\nasync function dump(options: Parsed, lifecycle: Lifecycle, name: string): Promise<number> {\n if (options.count === 0) return 0;\n const { budget } = lifecycle;\n budget.retain(32);\n const block = new Uint8Array(16), previous = new Uint8Array(16);\n let address = 0, used = 0, skip = options.skip, count = options.count;\n let hasPrevious = false, squeezed = false, exitCode = 0;\n const emit = async (): Promise<void> => {\n let same = hasPrevious;\n for (let index = 0; same && index < used; index++) if (block[index] !== previous[index]) same = false;\n budget.charge(used);\n if (!options.verbose && same) {\n if (!squeezed) await lifecycle.write(\"*\\n\");\n squeezed = true;\n } else {\n for (let index = 0; index < Math.max(1, options.canonical); index++) {\n budget.charge(16);\n await budget.checkpointWork();\n await lifecycle.write(formatBlock(block, used, address, options.canonical > 0));\n }\n previous.set(block);\n hasPrevious = true;\n squeezed = false;\n }\n address += used;\n used = 0;\n };\n for (const file of options.files.length ? options.files : [undefined]) {\n if (count === 0) break;\n const reader = new Reader(file, lifecycle);\n let opened = true;\n try {\n await reader.open();\n } catch (error) {\n budget.signal.throwIfAborted();\n if (!(error instanceof FsError)) throw error;\n opened = false;\n if (error.code !== \"EISDIR\") exitCode = 1;\n await lifecycle.write(`${name}: ${file ?? \"stdin\"}: ${fsDetail(error)}\\n`, true);\n }\n if (opened) {\n while (count > 0) {\n let byte: number;\n try { byte = await reader.get(); }\n catch (error) {\n budget.signal.throwIfAborted();\n if (!(error instanceof FsError)) throw error;\n await lifecycle.write(`${name}: ${file ?? \"stdin\"}: ${fsDetail(error)}\\n`, true);\n break;\n }\n if (byte < 0) break;\n if (skip > 0) { skip--; address++; continue; }\n block[used++] = byte;\n count--;\n if (used === 16) await emit();\n }\n }\n await lifecycle.operation(() => reader.close());\n }\n if (used) await emit();\n if (address > 0) await lifecycle.write(address.toString(16).padStart(options.canonical ? 8 : 7, \"0\") + \"\\n\");\n return exitCode;\n}\n\nasync function execute(context: CommandContext, name: string, limits: HexdumpLimits): Promise<{ exitCode: number }> {\n let lifecycle: Lifecycle | undefined;\n const caller = context.signal;\n caller.throwIfAborted();\n const stdout = context.stdout;\n caller.throwIfAborted();\n const capability = stdout.ownedOutput;\n caller.throwIfAborted();\n const consumer = capability?.consumerClosed;\n caller.throwIfAborted();\n consumer?.throwIfAborted();\n const failureHandler = stdout[outputFailure];\n caller.throwIfAborted();\n consumer?.throwIfAborted();\n const registerCleanup = context.registerCleanup;\n caller.throwIfAborted();\n consumer?.throwIfAborted();\n const destination = capability ?? stdout;\n const write = async (value: Uint8Array): Promise<void> => {\n lifecycle!.assertOpen();\n const method = destination.write;\n lifecycle!.assertOpen();\n await Reflect.apply(method, destination, [value]);\n };\n const captured: ByteSink = {\n write,\n ...(capability ? { ownedOutput: { consumerClosed: consumer!, write } } : {}),\n ...(failureHandler ? { [outputFailure]: failureHandler } : {}),\n };\n const admission = { closed: false };\n const output = createOutputOperation({ signal: caller, ...(registerCleanup ? { registerCleanup(cleanup) {\n caller.throwIfAborted();\n Reflect.apply(registerCleanup, context, [() => { admission.closed = true; return cleanup(); }]);\n } } : {}) }, captured);\n const budget = new Budget(context, limits, output.signal, caller, admission);\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n lifecycle = new Lifecycle(budget, output, captured, caller);\n exitCode = await dump(parse(budget, name), lifecycle, name);\n } catch (error) {\n primary = { reason: error };\n if (error instanceof HexdumpError && !output.signal.aborted && lifecycle) {\n exitCode = 1;\n try { await lifecycle.write(`${error.bare ? \"\" : name + \": \"}${error.message}\\n`, true); }\n catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"hexdump failure reporting failed\") }; }\n } else failure = { reason: error };\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"hexdump execution and cleanup failed\") : cleanup };\n }\n caller.throwIfAborted();\n output.signal.throwIfAborted();\n if (lifecycle?.diagnosticCancellation) throw lifecycle.diagnosticCancellation.reason;\n if (failure) throw failure.reason;\n return { exitCode };\n}\n\nexport function createHexdumpCommand(options: HexdumpCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"hexdump\", description: \"Display bytes as hexadecimal words or canonical hex and ASCII\",\n execute: context => execute(context, \"hexdump\", limits),\n };\n}\n\nexport function createHdCommand(options: HexdumpCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"hd\", description: \"Display canonical hexadecimal and ASCII bytes\",\n execute: context => execute(context, \"hd\", limits),\n };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface HexdumpLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxInputBytes: number;\n readonly maxBufferedBytes: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxFormats: number;\n readonly maxWork: number;\n readonly maxEmptyChunks: number;\n}\n\nexport interface HexdumpCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<HexdumpLimits>;\n}\n\nexport function settings(options: HexdumpCommandsOptions): HexdumpLimits {\n const limits: HexdumpLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxInputBytes: 33_554_432,\n maxBufferedBytes: 8_388_608, maxOutputBytes: 134_217_728,\n maxDiagnosticBytes: 65_536, maxFormats: 64, maxWork: 536_870_912,\n maxEmptyChunks: 4096, ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid hexdump limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport class HexdumpError extends PublicDiagnostic {\n constructor(message: string, readonly bare = false) { super(message); }\n}\n\nexport function raw(value: Uint8Array): string {\n let result = \"\";\n for (let offset = 0; offset < value.length; offset += 4096) result += String.fromCharCode(...value.subarray(offset, offset + 4096));\n return result;\n}\n\nexport function bytes(value: string): Uint8Array {\n return Uint8Array.from(value, character => character.charCodeAt(0));\n}\n\nexport function pathText(value: string): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes(value)); }\n catch { throw new HexdumpError(\"filesystem paths must be valid UTF-8\"); }\n}\n\nexport class Budget {\n private work = 0;\n private checkpoint = 0;\n private retained = 0;\n private input = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: HexdumpLimits, readonly signal: AbortSignal, private readonly callerSignal: AbortSignal, readonly admission: { readonly closed: boolean }) {}\n assertOpen(): void {\n this.signal.throwIfAborted();\n if (this.admission.closed) throw new HexdumpError(\"command is closed\");\n }\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new HexdumpError(`${label} limit exceeded`);\n }\n charge(amount = 1): void {\n this.assertOpen();\n this.check(this.work + amount, this.limits.maxWork, \"work\");\n this.work += amount;\n }\n async checkpointWork(): Promise<void> {\n this.assertOpen();\n if (this.work - this.checkpoint >= 4096) {\n this.checkpoint = this.work;\n await yieldTurn(this.callerSignal);\n this.assertOpen();\n }\n }\n retain(amount: number): void {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n inputBytes(amount: number): void {\n this.check(this.input + amount, this.limits.maxInputBytes, \"input bytes\");\n this.input += amount;\n }\n emitted(amount: number, diagnostic: boolean): void {\n if (diagnostic) {\n this.check(this.diagnostics + amount, this.limits.maxDiagnosticBytes, \"diagnostic bytes\");\n this.diagnostics += amount;\n } else {\n this.check(this.output + amount, this.limits.maxOutputBytes, \"output bytes\");\n this.charge(amount);\n this.output += amount;\n }\n }\n arguments(): string[] {\n this.assertOpen();\n const args = this.context.args;\n this.assertOpen();\n const count = args.length;\n this.assertOpen();\n this.check(count, this.limits.maxArguments, \"argument count\");\n const argumentValues = this.context.argumentValues;\n this.assertOpen();\n const carrier = argumentValues === undefined ? undefined : getCommandArguments({ args, argumentValues });\n this.assertOpen();\n this.retain(count * 64 + 128);\n const snapshot: string[] = [];\n let units = 0, total = 0;\n for (let index = 0; index < count; index++) {\n const argument = args[index]!;\n this.assertOpen();\n if (typeof argument !== \"string\") throw new HexdumpError(\"arguments must be strings\");\n units += argument.length;\n this.check(units, this.limits.maxArgumentBytes, \"argument bytes\");\n this.charge(argument.length + 1);\n for (let offset = 0; offset < argument.length; offset++) {\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new HexdumpError(\"arguments must contain well-formed Unicode\");\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new HexdumpError(\"arguments must contain well-formed Unicode\");\n }\n const size = shellValueByteLength(carrier ? carrier.values[index]! : argument);\n total += size;\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n this.charge(size);\n this.retain(size * 8);\n snapshot.push(argument);\n }\n return (carrier ?? getCommandArguments({ args: snapshot })).values.map(argument => {\n this.charge(shellValueByteLength(argument));\n const value = shellValueBytes(argument);\n if (value.includes(0)) throw new HexdumpError(\"NUL is not supported in arguments\");\n return raw(value);\n });\n }\n}\n", "import { FsError, resolvePath, type ByteSink, type ByteSource } from \"../../contracts/index.js\";\nimport type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, HexdumpError, bytes, pathText } from \"./internal.js\";\n\nconst typedArrayPrototype = Object.getPrototypeOf(Uint8Array.prototype) as object;\nconst viewBuffer = Object.getOwnPropertyDescriptor(typedArrayPrototype, \"buffer\")!.get!;\nconst viewOffset = Object.getOwnPropertyDescriptor(typedArrayPrototype, \"byteOffset\")!.get!;\nconst viewLength = Object.getOwnPropertyDescriptor(typedArrayPrototype, \"byteLength\")!.get!;\n\nexport class Lifecycle {\n private readonly pending = new Set<Promise<unknown>>();\n private readonly cleanups = new Set<() => Promise<void>>();\n private closing: Promise<void> | undefined;\n private diagnostic: { destination: ByteSink; consumer: AbortSignal | undefined } | undefined;\n diagnosticCancellation: { reason: unknown } | undefined;\n constructor(readonly budget: Budget, output: OutputOperation, private readonly stdout: ByteSink, private readonly caller: AbortSignal) { output.registerCleanup(() => this.close()); }\n cleanup(action: () => Promise<void>): void { this.assertOpen(); this.cleanups.add(action); }\n forget(action: () => Promise<void>): void { this.cleanups.delete(action); }\n assertOpen(): void {\n this.budget.assertOpen();\n if (this.closing) throw new HexdumpError(\"command is closed\");\n }\n private assertDiagnosticOpen(): void {\n this.caller.throwIfAborted();\n const consumer = this.diagnostic?.consumer;\n if (consumer?.aborted) {\n this.diagnosticCancellation = { reason: consumer.reason };\n consumer.throwIfAborted();\n }\n }\n async operation<Value>(action: () => Value | Promise<Value>, diagnostic = false): Promise<Value> {\n if (diagnostic) this.assertDiagnosticOpen();\n else this.assertOpen();\n if (this.closing || this.budget.admission.closed) throw new HexdumpError(\"command is closed\");\n if (!diagnostic) this.budget.charge();\n const pending = Promise.resolve().then(() => {\n if (diagnostic) this.assertDiagnosticOpen();\n else this.assertOpen();\n return action();\n });\n this.pending.add(pending);\n try {\n const value = await pending;\n if (diagnostic) this.assertDiagnosticOpen();\n else this.assertOpen();\n return value;\n }\n finally { this.pending.delete(pending); }\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n const failures: unknown[] = [];\n for (const cleanup of this.cleanups) {\n try { await cleanup(); } catch (error) { failures.push(error); }\n }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"hexdump cleanup failed\");\n });\n }\n async write(value: string, diagnostic = false): Promise<void> {\n this.budget.emitted(value.length, diagnostic);\n await this.operation(async () => {\n if (!diagnostic) this.budget.retain(value.length * 3);\n try {\n let destination: ByteSink;\n if (diagnostic) {\n if (!this.diagnostic) {\n const sink = this.budget.context.stderr;\n this.assertDiagnosticOpen();\n const capability = sink.ownedOutput;\n this.assertDiagnosticOpen();\n const consumer = capability?.consumerClosed;\n this.diagnostic = { destination: capability ?? sink, consumer };\n }\n this.assertDiagnosticOpen();\n destination = this.diagnostic.destination;\n } else {\n destination = this.stdout;\n this.assertOpen();\n }\n const write = destination.write;\n if (diagnostic) this.assertDiagnosticOpen();\n else this.assertOpen();\n await Reflect.apply(write, destination, [bytes(value)]);\n } finally { if (!diagnostic) this.budget.retain(-value.length * 3); }\n }, diagnostic);\n }\n}\n\nexport class Reader {\n private iterator: AsyncIterator<Uint8Array> | undefined;\n private chunk: Uint8Array = new Uint8Array();\n private offset = 0;\n private ended = false;\n private empties = 0;\n private snapshotBytes = 0;\n private closed: Promise<void> | undefined;\n constructor(readonly name: string | undefined, readonly lifecycle: Lifecycle) {\n lifecycle.budget.retain(256);\n lifecycle.cleanup(this.close);\n }\n readonly close = (): Promise<void> => this.closed ??= Promise.resolve().then(async () => {\n try { if (!this.ended) await this.iterator?.return?.(); }\n finally {\n this.iterator = undefined;\n this.releaseSnapshot();\n this.lifecycle.budget.retain(-this.chunk.length - 256);\n this.chunk = new Uint8Array();\n this.lifecycle.forget(this.close);\n }\n });\n private readonly releaseSnapshot = (): void => {\n this.lifecycle.budget.retain(-this.snapshotBytes);\n this.snapshotBytes = 0;\n };\n async open(): Promise<void> {\n const { budget } = this.lifecycle;\n await this.lifecycle.operation(async () => {\n let source: ByteSource;\n let needsAcquisitionCleanup = false;\n if (this.name === undefined) source = budget.context.stdin;\n else {\n if (this.name === \"\") throw new FsError(\"ENOENT\", { path: this.name });\n const cwd = budget.context.cwd;\n this.lifecycle.assertOpen();\n const path = resolvePath(cwd, pathText(this.name));\n const fs = budget.context.fs;\n this.lifecycle.assertOpen();\n const statMethod = fs.stat;\n this.lifecycle.assertOpen();\n const stat = await Reflect.apply(statMethod, fs, [path, { signal: budget.signal }]);\n this.lifecycle.assertOpen();\n const type = stat.type;\n this.lifecycle.assertOpen();\n if (this.name.endsWith(\"/\") && type !== \"directory\") throw new FsError(\"ENOTDIR\", { path });\n if (type === \"directory\") throw new FsError(\"EISDIR\", { path });\n if (type !== \"file\" && type !== \"character\") throw new FsError(\"ENOTSUP\", { path });\n const capabilitiesFor = fs.capabilitiesFor;\n this.lifecycle.assertOpen();\n const selected = capabilitiesFor ? await Reflect.apply(capabilitiesFor, fs, [path, { signal: budget.signal }]) : undefined;\n this.lifecycle.assertOpen();\n const capabilities = selected ?? fs.capabilities;\n this.lifecycle.assertOpen();\n const readStream = fs.readStream;\n this.lifecycle.assertOpen();\n const streamingRead = readStream && capabilities.streamingRead !== false;\n this.lifecycle.assertOpen();\n if (readStream && streamingRead) {\n source = Reflect.apply(readStream, fs, [path, { signal: budget.signal, chunkSize: 16_384 }]);\n needsAcquisitionCleanup = budget.signal.aborted || budget.admission.closed;\n } else {\n const maximum = Math.min(budget.limits.maxInputBytes, Math.floor(budget.limits.maxBufferedBytes / 2));\n const size = stat.size;\n this.lifecycle.assertOpen();\n budget.check(size, maximum, \"buffered input bytes\");\n budget.retain(maximum);\n this.snapshotBytes = maximum;\n const readFile = fs.readFile;\n this.lifecycle.assertOpen();\n const content = await Reflect.apply(readFile, fs, [path, { signal: budget.signal, maxBytes: maximum }]);\n this.lifecycle.assertOpen();\n if (!(content instanceof Uint8Array)) throw new TypeError(\"hexdump input requires bytes\");\n const length = viewLength.call(content) as number;\n budget.check(length, maximum, \"buffered input bytes\");\n budget.retain(length - maximum);\n this.snapshotBytes = length;\n const { releaseSnapshot } = this;\n source = { async *[Symbol.asyncIterator]() { try { yield content; } finally { releaseSnapshot(); } } };\n }\n }\n if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();\n const factory = source[Symbol.asyncIterator];\n if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();\n this.iterator = Reflect.apply(factory, source, []);\n });\n }\n async get(): Promise<number> {\n const { budget } = this.lifecycle;\n budget.charge();\n await budget.checkpointWork();\n while (this.offset === this.chunk.length) {\n if (this.ended) return -1;\n await budget.checkpointWork();\n const next = await this.lifecycle.operation(() => {\n const iterator = this.iterator!;\n const advance = iterator.next;\n this.lifecycle.assertOpen();\n return Reflect.apply(advance, iterator, []);\n });\n budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n this.offset = 0;\n const done = next.done;\n this.lifecycle.assertOpen();\n if (done) { this.ended = true; this.iterator = undefined; return -1; }\n const value = next.value;\n this.lifecycle.assertOpen();\n if (!(value instanceof Uint8Array)) throw new TypeError(\"hexdump input requires bytes\");\n const buffer = viewBuffer.call(value) as ArrayBuffer;\n const offset = viewOffset.call(value) as number;\n const length = viewLength.call(value) as number;\n this.lifecycle.assertOpen();\n budget.inputBytes(length);\n budget.charge(length);\n budget.retain(length);\n try {\n if (viewOffset.call(value) !== offset || viewLength.call(value) < length) throw new TypeError(\"hexdump input extent changed during admission\");\n this.chunk = new Uint8Array(new Uint8Array(buffer, offset, length));\n } catch (error) { budget.retain(-length); throw error; }\n if (!this.chunk.length) budget.check(++this.empties, budget.limits.maxEmptyChunks, \"empty input chunks\");\n }\n return this.chunk[this.offset++]!;\n }\n}\n\nexport function fsDetail(error: FsError): string {\n const details: Partial<Record<FsError[\"code\"], string>> = {\n EACCES: \"Permission denied\", EPERM: \"Operation not permitted\", ENOENT: \"No such file or directory\",\n EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", EIO: \"Input/output error\", ELOOP: \"Too many levels of symbolic links\",\n ENAMETOOLONG: \"File name too long\", ENOTSUP: \"Operation not supported\",\n };\n return details[error.code] ?? error.message;\n}\n", "import { Budget, HexdumpError } from \"./internal.js\";\n\nconst usage = \"usage: hexdump [-bcCdovx] [-e fmt] [-f fmt_file] [-n length]\\n [-s skip] [file ...]\\n hd [-bcdovx] [-e fmt] [-f fmt_file] [-n length]\\n [-s skip] [file ...]\";\n\nexport interface Parsed {\n readonly files: readonly string[];\n readonly canonical: number;\n readonly verbose: boolean;\n readonly skip: number;\n readonly count: number;\n}\n\nfunction number(text: string, skip: boolean): number {\n let offset = 0;\n while (offset < text.length && \" \\t\\n\\r\\v\\f\".includes(text[offset]!)) offset++;\n const negative = text[offset] === \"-\";\n if (negative || text[offset] === \"+\") offset++;\n let base = 10;\n if (skip && text[offset] === \"0\") {\n base = 8;\n if ((text[offset + 1] === \"x\" || text[offset + 1] === \"X\") && \"0123456789abcdef\".includes((text[offset + 2] ?? \"!\").toLowerCase())) { base = 16; offset += 2; }\n }\n let value = 0;\n for (; offset < text.length; offset++) {\n const digit = \"0123456789abcdef\".indexOf(text[offset]!.toLowerCase());\n if (digit < 0 || digit >= base) break;\n value = value * base + digit;\n if (!Number.isSafeInteger(value)) throw new HexdumpError(`${text}: numeric value exceeds safe integer range`);\n }\n if (negative && value !== 0) throw new HexdumpError(`${text}: bad ${skip ? \"skip\" : \"length\"} value`);\n if (skip) value *= ({ b: 512, k: 1024, m: 1_048_576 } as Record<string, number>)[text[offset] ?? \"\"] ?? 1;\n if (!Number.isSafeInteger(value)) throw new HexdumpError(`${text}: numeric value exceeds safe integer range`);\n return value;\n}\n\nexport function parse(budget: Budget, name: string): Parsed {\n const args = budget.arguments();\n const files: string[] = [];\n let canonical = name === \"hd\" ? 1 : 0;\n let verbose = false, ended = false, skip = 0, count = Infinity;\n for (let index = 0; index < args.length; index++) {\n const argument = args[index]!;\n if (!ended && argument === \"--\") { ended = true; continue; }\n if (ended || argument === \"-\" || !argument.startsWith(\"-\")) {\n files.push(argument);\n if (budget.context.env.POSIXLY_CORRECT !== undefined) ended = true;\n continue;\n }\n for (let offset = 1; offset < argument.length; offset++) {\n budget.charge();\n const flag = argument[offset]!;\n if (flag === \"v\") verbose = true;\n else if (flag === \"C\") {\n if (name === \"hd\") throw new HexdumpError(usage, true);\n budget.check(++canonical, budget.limits.maxFormats, \"format count\");\n } else if (flag === \"n\" || flag === \"s\") {\n const parameter = argument.slice(offset + 1) || args[++index];\n if (parameter === undefined) throw new HexdumpError(`${name}: option requires an argument -- '${flag}'\\n${usage}`, true);\n if (flag === \"n\") count = number(parameter, false);\n else skip = number(parameter, true);\n break;\n } else if (flag === \"e\" || flag === \"f\") throw new HexdumpError(`-${flag}: custom formats are not supported`);\n else throw new HexdumpError(`unsupported option -- '${flag}'`);\n }\n }\n return { files, canonical, verbose, skip, count };\n}\n", "export function formatBlock(block: Uint8Array, used: number, address: number, canonical: boolean): string {\n let result = address.toString(16).padStart(canonical ? 8 : 7, \"0\") + (canonical ? \" \" : \" \");\n if (canonical) {\n for (let index = 0; index < 16; index++) {\n if (index === 8) result += \" \";\n result += index < used ? block[index]!.toString(16).padStart(2, \"0\") : \" \";\n if (index !== 15) result += \" \";\n }\n result += \" |\";\n for (let index = 0; index < used; index++) {\n const byte = block[index]!;\n result += byte >= 32 && byte <= 126 ? String.fromCharCode(byte) : \".\";\n }\n return result + \"|\\n\";\n }\n for (let index = 0; index < 16; index += 2) {\n result += index < used ? (block[index]! + (index + 1 < used ? block[index + 1]! * 256 : 0)).toString(16).padStart(4, \"0\") : \" \";\n if (index !== 14) result += \" \";\n }\n return result + \"\\n\";\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,18 +1,20 @@
1
1
  import {
2
2
  isAbsolutePath,
3
3
  validatePath
4
- } from "./chunk-CI42NIWL.js";
4
+ } from "./chunk-DPJWEGIX.js";
5
5
  import {
6
6
  FsError,
7
7
  PublicDiagnostic,
8
- import_buffer,
9
- init_platform,
10
8
  publicDiagnosticMessage,
11
9
  readBytes,
12
10
  toByteSource,
13
11
  writeBytes,
14
12
  yieldTurn
15
- } from "./chunk-4NMFAR4Z.js";
13
+ } from "./chunk-5VBLSPNM.js";
14
+ import {
15
+ import_buffer,
16
+ init_platform
17
+ } from "./chunk-2KL6W6NB.js";
16
18
 
17
19
  // packages/safe-bash/src/contracts/command-requirements.ts
18
20
  init_platform();
@@ -518,4 +520,4 @@ export {
518
520
  replaceArgument,
519
521
  escapeBytes
520
522
  };
521
- //# sourceMappingURL=chunk-R5ZK7V4W.js.map
523
+ //# sourceMappingURL=chunk-T5BV7HPD.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/contracts/command-requirements.ts", "../../src/escaping.ts", "../../src/commands/internal.ts", "../../src/commands/portable-requirements.ts", "../../src/commands/record-buffer.ts"],
4
4
  "sourcesContent": ["import type { CommandContext, CommandDefinition } from \"./command.js\";\nimport type { FileSystemCapabilities } from \"./filesystem.js\";\nimport { FsError } from \"./errors.js\";\n\nexport interface CommandFileSystemRequirement {\n readonly id: string;\n readonly description: string;\n readonly capabilities: readonly string[];\n readonly anyOf?: readonly (readonly string[])[];\n readonly mutates?: boolean;\n}\n\nexport interface CommandModeSupport extends CommandFileSystemRequirement {\n readonly status: \"supported\" | \"unsupported\" | \"unknown\";\n readonly missing: readonly string[];\n readonly unknown: readonly string[];\n}\n\nexport interface CommandSupport {\n readonly status: \"supported\" | \"partial\" | \"unsupported\";\n readonly declared: boolean;\n readonly modes: readonly CommandModeSupport[];\n}\n\nfunction evaluateMode(requirement: CommandFileSystemRequirement, capabilities: FileSystemCapabilities): CommandModeSupport {\n const missing = requirement.capabilities.filter(name => capabilities[name] === false);\n const unknown = requirement.capabilities.filter(name => capabilities[name] === undefined);\n if (requirement.mutates && capabilities.readOnly === true) missing.push(\"readOnly\");\n const alternatives = requirement.anyOf;\n if (alternatives && !alternatives.some(group => group.every(name => capabilities[name] === true))) {\n if (alternatives.every(group => group.some(name => capabilities[name] === false))) {\n missing.push(...alternatives.flatMap(group => group.filter(name => capabilities[name] === false)));\n } else {\n unknown.push(...alternatives.filter(group => !group.some(name => capabilities[name] === false))\n .flatMap(group => group.filter(name => capabilities[name] === undefined)));\n }\n }\n return {\n ...requirement,\n status: missing.length ? \"unsupported\" : unknown.length ? \"unknown\" : \"supported\",\n missing: [...new Set(missing)], unknown: [...new Set(unknown)],\n };\n}\n\nexport function evaluateCommandSupport(\n command: Pick<CommandDefinition, \"filesystemRequirements\"> | CommandDefinition,\n capabilities: FileSystemCapabilities,\n): CommandSupport {\n const modes = (command.filesystemRequirements ?? []).map(requirement => evaluateMode(requirement, capabilities));\n return {\n declared: command.filesystemRequirements !== undefined,\n status: command.filesystemRequirements !== undefined && modes.every(mode => mode.status === \"supported\") ? \"supported\"\n : modes.length && modes.every(mode => mode.status === \"unsupported\") ? \"unsupported\" : \"partial\",\n modes,\n };\n}\n\nexport function assertCommandRequirements(\n context: Pick<CommandContext, \"fs\" | \"command\" | \"signal\">,\n requirements: readonly CommandFileSystemRequirement[],\n selected: readonly string[],\n capabilities: FileSystemCapabilities = context.fs.capabilities,\n): void {\n context.signal.throwIfAborted();\n for (const id of new Set(selected)) {\n const requirement = requirements.find(mode => mode.id === id);\n if (!requirement) throw new TypeError(`Unknown filesystem requirement mode: ${id}`);\n const support = evaluateMode(requirement, capabilities);\n if (support.status === \"unsupported\") {\n throw new FsError(support.missing.includes(\"readOnly\") ? \"EROFS\" : \"ENOTSUP\", {\n syscall: context.command,\n message: `${requirement.description} requires unavailable filesystem capabilities: ${support.missing.join(\", \")}`,\n });\n }\n }\n}\n", "import { writeBytes, type ByteSink } from \"./contracts/index.js\";\nimport { yieldTurn } from \"./contracts/yield.js\";\n\nconst controls: Readonly<Record<number, string>> = { 8: \"\\\\b\", 9: \"\\\\t\", 10: \"\\\\n\", 11: \"\\\\v\", 12: \"\\\\f\", 13: \"\\\\r\", 92: \"\\\\\\\\\" };\nconst encoder = new TextEncoder();\n\nfunction* parts(value: string, mode: \"display\" | \"diagnostic\"): Generator<string> {\n for (const character of value) {\n const point = character.codePointAt(0)!;\n if (mode === \"diagnostic\" && (point === 9 || point === 10 || point >= 32 && (point < 127 || point > 159))) {\n yield character;\n } else {\n for (const byte of encoder.encode(character)) {\n yield controls[byte] ?? (byte >= 32 && byte < 127 ? String.fromCharCode(byte) : `\\\\${byte.toString(8).padStart(3, \"0\")}`);\n }\n }\n }\n}\n\nexport function escapeText(value: string, mode: \"display\" | \"diagnostic\", checkOutput?: (bytes: number) => void): string {\n let result = \"\", bytes = 0;\n for (const part of parts(value, mode)) {\n bytes += Buffer.byteLength(part);\n checkOutput?.(bytes);\n result += part;\n }\n return result;\n}\n\nexport async function writeDiagnostic(sink: ByteSink, value: string, signal?: AbortSignal): Promise<void> {\n signal?.throwIfAborted();\n let chunk = \"\", bytes = 0, work = 0;\n for (const part of parts(value, \"diagnostic\")) {\n signal?.throwIfAborted();\n const size = Buffer.byteLength(part);\n if (bytes + size > 16_384) {\n await writeBytes(sink, encoder.encode(chunk), signal);\n chunk = \"\"; bytes = 0;\n }\n chunk += part; bytes += size;\n if (++work % 1024 === 0) await yieldTurn(signal);\n }\n if (bytes) await writeBytes(sink, encoder.encode(chunk), signal);\n signal?.throwIfAborted();\n}\n", "import { PublicDiagnostic, publicDiagnosticMessage } from \"../diagnostics.js\";\nimport { assertCommandRequirements } from \"../contracts/command-requirements.js\";\nimport { writeDiagnostic } from \"../escaping.js\";\nimport { inputRequirements } from \"./portable-requirements.js\";\nimport { RecordBuffer } from \"./record-buffer.js\";\nimport {\n FsError, isAbsolutePath, readBytes, toByteSource, validatePath, writeBytes,\n type ByteSource, type CommandContext, type CommandDefinition, type CommandHandler,\n} from \"../contracts/index.js\";\n\nexport const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nexport const bufferLimit = 32 * 1024 * 1024;\n\nexport class UsageError extends PublicDiagnostic {}\n\nexport interface ParsedOptions {\n readonly flags: Set<string>;\n readonly values: Map<string, string[]>;\n readonly operands: string[];\n}\n\nexport function options(\n args: readonly string[], short: string, long: Readonly<Record<string, string>> = {},\n stopAtOperand = false, onOperand?: (index: number) => void,\n onValue?: (key: string, index: number, offset: number) => void,\n): ParsedOptions {\n const flags = new Set<string>();\n const values = new Map<string, string[]>();\n const operands: string[] = [];\n const specifications = new Map<string, boolean>();\n for (let index = 0; index < short.length; index++) {\n const key = short[index]!;\n specifications.set(key, short[index + 1] === \":\");\n if (short[index + 1] === \":\") index++;\n }\n let ended = false;\n for (let index = 0; index < args.length; index++) {\n const argument = args[index]!;\n if (ended || argument === \"-\" || !argument.startsWith(\"-\")) {\n operands.push(argument);\n onOperand?.(index);\n if (stopAtOperand) ended = true;\n continue;\n }\n if (argument === \"--\") { ended = true; continue; }\n if (argument.startsWith(\"--\")) {\n const equals = argument.indexOf(\"=\");\n const name = argument.slice(2, equals < 0 ? undefined : equals);\n const key = long[name];\n if (!key || !specifications.has(key)) throw new UsageError(`unrecognized option '${argument}'`);\n if (specifications.get(key)) {\n const value = equals >= 0 ? argument.slice(equals + 1) : args[++index];\n if (value === undefined) throw new UsageError(`option '--${name}' requires an argument`);\n onValue?.(key, index, equals >= 0 ? equals + 1 : 0);\n values.set(key, [...values.get(key) ?? [], value]);\n } else if (equals >= 0) throw new UsageError(`option '--${name}' does not take an argument`);\n flags.add(key);\n continue;\n }\n for (let offset = 1; offset < argument.length; offset++) {\n const key = argument[offset]!;\n if (!specifications.has(key)) throw new UsageError(`invalid option -- '${key}'`);\n if (specifications.get(key)) {\n const value = argument.slice(offset + 1) || args[++index];\n if (value === undefined) throw new UsageError(`option requires an argument -- '${key}'`);\n onValue?.(key, index, offset + 1 < argument.length ? offset + 1 : 0);\n values.set(key, [...values.get(key) ?? [], value]);\n offset = argument.length;\n }\n flags.add(key);\n }\n }\n return { flags, values, operands };\n}\n\nexport function value(parsed: ParsedOptions, key: string): string | undefined {\n return parsed.values.get(key)?.at(-1);\n}\n\nexport function integer(text: string, minimum = 0): number {\n if (!/^[+]?[0-9]+$/u.test(text)) throw new UsageError(`invalid number '${text}'`);\n const number = Number(text);\n if (!Number.isSafeInteger(number) || number < minimum) throw new UsageError(`invalid number '${text}'`);\n return number;\n}\n\nexport function requireOperands(operands: readonly string[], minimum = 1, maximum = Infinity): void {\n if (operands.length < minimum) throw new UsageError(\"missing operand\");\n if (operands.length > maximum) throw new UsageError(`extra operand '${operands[maximum]}'`);\n}\n\nexport function pathOf(context: Pick<CommandContext, \"cwd\">, path: string): string {\n if (!path) throw new FsError(\"ENOENT\", { path });\n validatePath(path);\n validatePath(context.cwd);\n if (!isAbsolutePath(context.cwd)) throw new FsError(\"EINVAL\", { path: context.cwd, message: \"cwd must be absolute\" });\n return isAbsolutePath(path) ? path : `${context.cwd.replace(/\\/$/u, \"\")}/${path}`;\n}\n\nexport function codeOf(error: unknown): string | undefined {\n return error instanceof Error && \"code\" in error ? String(error.code) : undefined;\n}\n\nexport async function output(context: CommandContext, text: string | Uint8Array): Promise<void> {\n context.signal.throwIfAborted();\n await writeBytes(context.stdout, typeof text === \"string\" ? encoder.encode(text) : text, context.signal);\n}\n\nexport async function diagnostic(context: CommandContext, error: unknown): Promise<void> {\n context.signal.throwIfAborted();\n await writeDiagnostic(context.stderr, `${context.command}: ${publicDiagnosticMessage(error, context.onInternalError)}\\n`, context.signal);\n}\n\nexport function define(name: string, handler: CommandHandler, failureCode = 1): CommandDefinition {\n return {\n name,\n async execute(context) {\n context.signal.throwIfAborted();\n try { return await handler(context); }\n catch (error) {\n context.signal.throwIfAborted();\n await diagnostic(context, error);\n return { exitCode: error instanceof UsageError ? 2 : failureCode };\n }\n },\n };\n}\n\nexport async function eachOperand(\n context: CommandContext, operands: readonly string[], operation: (operand: string) => Promise<void>,\n): Promise<{ exitCode: number }> {\n let exitCode = 0;\n for (const operand of operands) {\n context.signal.throwIfAborted();\n try { await operation(operand); }\n catch (error) { await diagnostic(context, error); exitCode = 1; }\n }\n return { exitCode };\n}\n\nexport async function* input(context: CommandContext, name = \"-\"): ByteSource {\n context.signal.throwIfAborted();\n if (name === \"-\") {\n yield* readBytes(context.stdin, context.signal);\n } else {\n await assertInputRequirements(context, [name]);\n const path = pathOf(context, name);\n const capabilities = await context.fs.capabilitiesFor?.(path, { signal: context.signal }) ?? context.fs.capabilities;\n if (context.fs.readStream && capabilities.streamingRead !== false) {\n let emitted = false;\n let reading = true;\n try {\n for await (const chunk of readBytes(context.fs.readStream(path, { signal: context.signal }), context.signal)) {\n reading = false;\n if (chunk.byteLength) emitted = true;\n yield chunk;\n reading = true;\n }\n return;\n } catch (error) {\n context.signal.throwIfAborted();\n if (!reading || emitted || !(error instanceof FsError) || error.code !== \"ENOTSUP\") throw error;\n }\n }\n if (capabilities.read === false) throw new FsError(\"ENOTSUP\", { syscall: \"readFile\", path });\n yield* readBytes({\n async *[Symbol.asyncIterator]() {\n const bytes = await context.fs.readFile(path, { signal: context.signal, maxBytes: bufferLimit });\n context.signal.throwIfAborted();\n if (bytes.byteLength > bufferLimit) throw new FsError(\"EFBIG\", { syscall: \"readFile\", path });\n yield bytes;\n },\n }, context.signal);\n }\n}\n\nexport async function assertInputRequirements(context: CommandContext, names: readonly string[]): Promise<void> {\n const files = names.filter(name => name !== \"-\");\n assertCommandRequirements(context, inputRequirements, [files.length ? \"file\" : \"stdin\"]);\n if (!context.fs.capabilitiesFor) return;\n for (const name of files) {\n try {\n const capabilities = await context.fs.capabilitiesFor(pathOf(context, name), { signal: context.signal });\n assertCommandRequirements(context, inputRequirements, [\"file\"], capabilities);\n } catch (error) {\n context.signal.throwIfAborted();\n if (codeOf(error) === \"ENOTSUP\" || codeOf(error) === \"EROFS\") throw error;\n }\n }\n}\n\nexport function concatenate(chunks: readonly Uint8Array[], size = chunks.reduce((sum, chunk) => sum + chunk.length, 0)): Uint8Array {\n const result = new Uint8Array(size);\n let offset = 0;\n for (const chunk of chunks) { result.set(chunk, offset); offset += chunk.length; }\n return result;\n}\n\nexport async function collect(source: ByteSource, signal: AbortSignal, limit = bufferLimit): Promise<Uint8Array> {\n const chunks: Uint8Array[] = [];\n let size = 0;\n for await (const chunk of source) {\n signal.throwIfAborted();\n size += chunk.length;\n if (size > limit) throw new FsError(\"EFBIG\", { message: `buffer limit exceeded (${limit} bytes)` });\n chunks.push(new Uint8Array(chunk));\n }\n return concatenate(chunks, size);\n}\n\nexport interface Line { readonly bytes: Uint8Array; readonly terminated: boolean }\n\nexport async function* lines(source: ByteSource, separator = 10, admit?: (size: number) => void): AsyncGenerator<Line> {\n const pending = new RecordBuffer(bufferLimit);\n try {\n for await (const chunk of source) {\n let start = 0;\n for (let offset = 0; offset < chunk.length; offset++) {\n if (chunk[offset] !== separator) continue;\n yield { bytes: pending.finish(admit, chunk, start, offset), terminated: true };\n start = offset + 1;\n }\n pending.append(chunk, start);\n }\n if (pending.size) yield { bytes: pending.finish(admit), terminated: false };\n } finally { pending.clear(); }\n}\n\nexport function emptyInput(): ByteSource { return toByteSource(\"\"); }\n\nexport function replaceArgument(source: string | Uint8Array, pattern: string, replacement: string): string | Uint8Array {\n if (typeof source === \"string\") return source.split(pattern).join(replacement);\n const needle = encoder.encode(pattern);\n if (!needle.length) throw new UsageError(\"replacement string cannot be empty\");\n const substituted = encoder.encode(replacement);\n const chunks: Uint8Array[] = [];\n let start = 0;\n for (let offset = 0; offset <= source.length - needle.length;) {\n if (needle.every((byte, index) => source[offset + index] === byte)) {\n chunks.push(source.subarray(start, offset), substituted);\n offset += needle.length;\n start = offset;\n } else offset++;\n }\n chunks.push(source.subarray(start));\n return concatenate(chunks);\n}\n\nexport function escapeBytes(text: string | Uint8Array, zeroOctal = false, bareOctal = false): { bytes: Uint8Array; stop: boolean } {\n if (typeof text === \"string\") {\n const chunks: Uint8Array[] = [];\n const control: Record<string, number> = { a: 7, b: 8, e: 27, E: 27, f: 12, n: 10, r: 13, t: 9, v: 11, \"\\\\\": 92 };\n for (let index = 0; index < text.length;) {\n if (text[index] !== \"\\\\\" || index + 1 === text.length) {\n const character = String.fromCodePoint(text.codePointAt(index)!);\n chunks.push(encoder.encode(character)); index += character.length; continue;\n }\n const next = text[index + 1]!;\n if (next === \"c\") return { bytes: concatenate(chunks), stop: true };\n if (control[next] !== undefined) { chunks.push(Uint8Array.of(control[next])); index += 2; continue; }\n const rest = text.slice(index + 1);\n const octal = zeroOctal ? (bareOctal ? /^(?:0([0-7]{0,3})|([1-7][0-7]{0,2}))/u : /^0([0-7]{0,3})/u).exec(rest) : /^([0-7]{1,3})/u.exec(rest);\n if (octal) { chunks.push(Uint8Array.of(parseInt(octal[1] || octal[2] || \"0\", 8) & 255)); index += 1 + octal[0].length; continue; }\n const hexadecimal = /^x([0-9a-fA-F]{1,2})/u.exec(rest);\n if (hexadecimal) { chunks.push(Uint8Array.of(parseInt(hexadecimal[1]!, 16))); index += 1 + hexadecimal[0].length; continue; }\n chunks.push(encoder.encode(`\\\\${next}`)); index += 2;\n }\n return { bytes: concatenate(chunks), stop: false };\n }\n const source = text;\n const bytes = new Uint8Array(source.length);\n const control: Record<number, number> = { 97: 7, 98: 8, 101: 27, 69: 27, 102: 12, 110: 10, 114: 13, 116: 9, 118: 11, 92: 92 };\n let size = 0;\n for (let index = 0; index < source.length;) {\n if (source[index] !== 92 || index + 1 === source.length) { bytes[size++] = source[index++]!; continue; }\n const next = source[index + 1]!;\n if (next === 99) return { bytes: bytes.subarray(0, size), stop: true };\n if (control[next] !== undefined) { bytes[size++] = control[next]; index += 2; continue; }\n if (zeroOctal ? next === 48 || bareOctal && next >= 49 && next <= 55 : next >= 48 && next <= 55) {\n let offset = index + (zeroOctal && next === 48 ? 2 : 1);\n const end = Math.min(source.length, offset + 3);\n let value = 0;\n while (offset < end && source[offset]! >= 48 && source[offset]! <= 55) value = value * 8 + source[offset++]! - 48;\n bytes[size++] = value & 255;\n index = offset;\n continue;\n }\n if (next === 120) {\n let offset = index + 2;\n const end = Math.min(source.length, offset + 2);\n let value = 0;\n while (offset < end) {\n const digit = source[offset]!;\n const number = digit >= 48 && digit <= 57 ? digit - 48 : digit >= 65 && digit <= 70 ? digit - 55 : digit >= 97 && digit <= 102 ? digit - 87 : -1;\n if (number < 0) break;\n value = value * 16 + number;\n offset++;\n }\n if (offset > index + 2) { bytes[size++] = value; index = offset; continue; }\n }\n bytes[size++] = 92;\n bytes[size++] = next;\n index += 2;\n }\n return { bytes: bytes.subarray(0, size), stop: false };\n}\n", "import type { CommandFileSystemRequirement } from \"../contracts/command-requirements.js\";\n\nexport const inputRequirements: readonly CommandFileSystemRequirement[] = [\n { id: \"stdin\", description: \"Read standard input\", capabilities: [] },\n { id: \"file\", description: \"Read file operands\", capabilities: [], anyOf: [[\"streamingRead\"], [\"read\"]] },\n];\n\nexport const textOutputRequirements: readonly CommandFileSystemRequirement[] = [\n ...inputRequirements,\n { id: \"output\", description: \"Write or truncate an output file\", capabilities: [], anyOf: [[\"streamingWrite\"], [\"write\"]], mutates: true },\n];\n\nexport const pwdRequirements: readonly CommandFileSystemRequirement[] = [\n { id: \"logical\", description: \"Print the logical working directory\", capabilities: [] },\n { id: \"physical\", description: \"Resolve the physical working directory (-P)\", capabilities: [\"realpath\"] },\n];\n\nexport const predicateRequirements: readonly CommandFileSystemRequirement[] = [\n { id: \"expression\", description: \"Evaluate strings and integers\", capabilities: [] },\n { id: \"metadata\", description: \"Inspect file metadata\", capabilities: [\"stat\"] },\n { id: \"access\", description: \"Inspect path access permissions\", capabilities: [\"access\"] },\n];\n", "import { FsError } from \"../contracts/index.js\";\n\nconst segmentSize = 4096;\n\nexport class RecordBuffer {\n #segments: Uint8Array[] = [];\n #size = 0;\n #allocated = 0;\n\n constructor(readonly capacity: number, readonly finalizationCapacity = capacity * 2) {}\n\n get size(): number { return this.#size; }\n\n #admit(length: number): void {\n if (length > this.capacity - this.#size) {\n throw new FsError(\"EFBIG\", { message: \"line buffer limit exceeded\" });\n }\n }\n\n append(bytes: Uint8Array, start = 0, end = bytes.length): void {\n this.#admit(end - start);\n let offset = start;\n while (offset < end) {\n let segment = this.#segments.at(-1);\n const used = this.#size % segmentSize;\n if (!segment || used === 0) {\n segment = new Uint8Array(Math.min(segmentSize, this.capacity - this.#allocated));\n this.#segments.push(segment);\n this.#allocated += segment.length;\n }\n const length = Math.min(end - offset, segment.length - used);\n segment.set(bytes.subarray(offset, offset + length), used);\n this.#size += length;\n offset += length;\n }\n }\n\n finish(admit?: (size: number) => void, bytes?: Uint8Array, start = 0, end = bytes?.length ?? 0): Uint8Array {\n this.#admit(end - start);\n const size = this.#size + end - start;\n admit?.(size);\n if (size > this.finalizationCapacity - this.#allocated) {\n throw new FsError(\"EFBIG\", { message: \"line finalization buffer limit exceeded\" });\n }\n const result = new Uint8Array(size);\n let offset = 0;\n for (const segment of this.#segments) {\n const length = Math.min(segment.length, this.#size - offset);\n result.set(segment.subarray(0, length), offset);\n offset += length;\n }\n if (bytes && end > start) result.set(bytes.subarray(start, end), offset);\n this.clear();\n return result;\n }\n\n clear(): void {\n this.#segments = [];\n this.#size = 0;\n this.#allocated = 0;\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["value", "encoder", "value", "encoder", "control", "value"]
7
7
  }
@@ -1,32 +1,35 @@
1
1
  import {
2
2
  pathOf,
3
3
  writeDiagnostic
4
- } from "./chunk-R5ZK7V4W.js";
4
+ } from "./chunk-T5BV7HPD.js";
5
5
  import {
6
6
  openFileOutput
7
- } from "./chunk-RDIJ6M2D.js";
7
+ } from "./chunk-AZNI263O.js";
8
8
  import {
9
9
  normalizePath,
10
10
  posixPath
11
- } from "./chunk-CI42NIWL.js";
11
+ } from "./chunk-DPJWEGIX.js";
12
12
  import {
13
13
  createOutputOperation
14
- } from "./chunk-UL4TNDNV.js";
14
+ } from "./chunk-PZMJ4EC3.js";
15
15
  import {
16
- __toESM,
16
+ FsError,
17
17
  collectBytes,
18
18
  getCommandArguments,
19
- import_buffer,
20
- init_platform,
21
19
  outputFailure,
22
20
  readBytes,
23
- require_buffer,
24
21
  shellValueByteLength,
25
22
  shellValueBytes,
26
23
  toByteSource,
27
24
  writeBytes,
28
25
  yieldTurn
29
- } from "./chunk-4NMFAR4Z.js";
26
+ } from "./chunk-5VBLSPNM.js";
27
+ import {
28
+ __toESM,
29
+ import_buffer,
30
+ init_platform,
31
+ require_buffer
32
+ } from "./chunk-2KL6W6NB.js";
30
33
 
31
34
  // packages/safe-bash/src/commands/network/public.ts
32
35
  init_platform();
@@ -642,7 +645,7 @@ async function writeOutput(context, path, source, signal) {
642
645
  } catch (error) {
643
646
  signal.throwIfAborted();
644
647
  if (error instanceof CurlError) throw error;
645
- throw new CurlError(23, "Failed writing virtual output file");
648
+ throw new CurlError(23, error instanceof FsError ? `Failed writing virtual output file: ${error.message}` : "Failed writing virtual output file");
646
649
  }
647
650
  }
648
651
  async function dumpHeaders(context, path, bytes, append, signal) {
@@ -949,6 +952,7 @@ ${headers.map(([name]) => `> ${name}: [redacted]
949
952
  method,
950
953
  headers,
951
954
  signal,
955
+ responseBodyMode: args.head ? "omit" : args.fail ? "omit-on-http-error" : "read",
952
956
  registerCleanup: operation.registerCleanup,
953
957
  ...policy,
954
958
  ...upload ? { body: upload } : {}
@@ -1424,4 +1428,4 @@ export {
1424
1428
  createCurlCommands,
1425
1429
  curlCommands
1426
1430
  };
1427
- //# sourceMappingURL=chunk-RVGX5DQT.js.map
1431
+ //# sourceMappingURL=chunk-TPD45VUZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/network/public.ts", "../../src/commands/network/wget.ts", "../../src/commands/network/curl.ts", "../../src/commands/network/aggregate.ts", "../../src/commands/network/shared.ts", "../../src/commands/network/types.ts", "../../src/commands/network/args.ts", "../../browser/network.mjs", "../../src/commands/network/body.ts", "../../src/commands/network/output.ts", "../../src/commands/network/fetch-transport.ts", "../../src/commands/network/authorizer.ts", "../../src/commands/network/private-address.ts"],
4
+ "sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createWgetCommand } from \"./wget.js\";\nimport { createCurlCommand } from \"./curl.js\";\nimport type { NetworkCommandsOptions } from \"./types.js\";\n\nexport * from \"./types.js\";\nexport { createFetchTransport, type FetchTransportOptions } from \"./fetch-transport.js\";\nexport { createOriginAuthorizer, type OriginAllowlist, type OriginAuthorizerOptions } from \"./authorizer.js\";\nexport { createCurlCommand } from \"./curl.js\";\nexport { createWgetCommand } from \"./wget.js\";\n\nexport function createNetworkCommands(options: NetworkCommandsOptions): readonly CommandDefinition[] {\n return [createCurlCommand(options), createWgetCommand(options)];\n}\n\nexport function networkCommands(options: NetworkCommandsOptions): VirtualShellPlugin {\n const definitions = createNetworkCommands(options);\n return {\n name: \"network-commands\",\n setup(host) {\n if (!options.replace) for (const definition of definitions) if (host.commands.has(definition.name)) throw new Error(`Command already registered: ${definition.name}`);\n for (const definition of definitions) host.commands.register(definition, { replace: options.replace ?? false });\n },\n };\n}\n\nexport const createCurlCommands = createNetworkCommands;\nexport const curlCommands = networkCommands;\n", "import { getCommandArguments, type CommandContext, type CommandDefinition } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport type { CurlArguments } from \"./args.js\";\nimport { createTransferCommand } from \"./curl.js\";\nimport { CurlError, type NetworkCommandsOptions, type NetworkLimits } from \"./types.js\";\n\nasync function parseWget(context: CommandContext, limits: NetworkLimits): Promise<CurlArguments> {\n const carrier = getCommandArguments(context);\n let argumentBytes = 0;\n for (const value of carrier.values) {\n if (typeof value === \"string\" && value.length > limits.maxBufferBytes) throw new CurlError(2, \"Arguments exceed host buffer limit\");\n argumentBytes += shellValueByteLength(value);\n if (argumentBytes > limits.maxBufferBytes) throw new CurlError(2, \"Arguments exceed host buffer limit\");\n if (typeof value === \"string\") {\n for (let index = 0; index < value.length; index++) {\n if (index % 1024 === 0) await yieldTurn(context.signal);\n const code = value.charCodeAt(index);\n if (code >= 0xd800 && code <= 0xdbff) {\n const next = value.charCodeAt(++index);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new CurlError(2, \"Arguments must be valid UTF-8\");\n } else if (code >= 0xdc00 && code <= 0xdfff) throw new CurlError(2, \"Arguments must be valid UTF-8\");\n }\n continue;\n }\n const bytes = shellValueBytes(value);\n const decoder = new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true });\n for (let offset = 0; offset < bytes.length; offset += 1024) {\n await yieldTurn(context.signal);\n try { decoder.decode(bytes.subarray(offset, offset + 1024), { stream: offset + 1024 < bytes.length }); }\n catch (error) {\n context.signal.throwIfAborted();\n if (!(error instanceof TypeError) || \"code\" in error && error.code !== \"ERR_ENCODING_INVALID_ENCODED_DATA\") throw error;\n throw new CurlError(2, \"Arguments must be valid UTF-8\");\n }\n }\n }\n const result: CurlArguments = {\n urls: [], data: [], headers: [], include: false, head: false, get: false, location: true,\n remoteName: true, fail: true, failWithBody: false, silent: false, showError: false,\n verbose: false, globoff: true, help: false, version: false,\n retries: Math.min(19, limits.maxRetries), retryDelayMs: 0,\n maxTimeMs: limits.maxTimeMs, maxRedirects: limits.maxRedirects, maxFileSize: limits.maxDownloadBytes,\n agent: \"virtual-bash-wget/0.0\", retryTransport: true, directoryIndex: \"index.html\",\n };\n const number = (value: string, integral: boolean): number => {\n if (!(integral ? /^\\d+$/u : /^\\d+(?:\\.\\d+)?$/u).test(value)) throw new CurlError(2, \"Invalid numeric option\");\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0 || parsed > Number.MAX_SAFE_INTEGER) throw new CurlError(2, \"Invalid numeric option\");\n return parsed;\n };\n let ended = false;\n for (let index = 0; index < context.args.length; index++) {\n if (index % 128 === 0) await yieldTurn(context.signal);\n const argument = context.args[index]!;\n if (ended || !argument.startsWith(\"-\") || argument === \"-\") { result.urls.push(argument); continue; }\n if (argument === \"--\") { ended = true; continue; }\n if (!argument.startsWith(\"--\")) {\n for (let position = 1; position < argument.length; position++) {\n if (position % 1024 === 0) await yieldTurn(context.signal);\n const flag = argument[position];\n if (flag === \"q\") result.silent = true;\n else if (flag === \"n\" && argument[position + 1] === \"v\") position++;\n else if (flag === \"h\") result.help = true;\n else if (flag === \"r\") throw new CurlError(2, \"Recursive mirroring is unsupported\");\n else if (flag === \"O\") {\n const output = position + 1 < argument.length ? argument.slice(position + 1) : context.args[++index];\n if (!output) throw new CurlError(2, \"-O requires a nonempty output filename\");\n result.output = output; result.remoteName = false;\n break;\n } else throw new CurlError(2, `Unsupported option: -${flag}`);\n }\n continue;\n }\n if (argument === \"--quiet\") { result.silent = true; continue; }\n if (argument === \"--no-verbose\") continue;\n if (argument === \"--help\") { result.help = true; continue; }\n if (argument === \"--version\") { result.version = true; continue; }\n if (argument === \"--recursive\") throw new CurlError(2, \"Recursive mirroring is unsupported\");\n const equal = argument.indexOf(\"=\");\n const flag = equal < 0 ? argument : argument.slice(0, equal);\n let operand: string | undefined;\n let option: \"output\" | \"timeout\" | \"tries\";\n if ([\"--output-document\", \"--timeout\", \"--tries\"].includes(flag)) {\n option = flag === \"--output-document\" ? \"output\" : flag === \"--timeout\" ? \"timeout\" : \"tries\";\n operand = equal < 0 ? context.args[++index] : argument.slice(equal + 1);\n } else throw new CurlError(2, `Unsupported option: ${argument}`);\n if (operand === undefined) throw new CurlError(2, `${flag} requires an argument`);\n if (option === \"output\") { if (!operand) throw new CurlError(2, \"Output filename must not be empty\"); result.output = operand; result.remoteName = false; }\n else if (option === \"timeout\") { const seconds = number(operand, false); result.maxTimeMs = seconds === 0 ? limits.maxTimeMs : Math.min(seconds * 1000, limits.maxTimeMs); }\n else { const tries = number(operand, true); result.retries = tries === 0 ? limits.maxRetries : Math.min(tries - 1, limits.maxRetries); }\n }\n if (!result.help && !result.version && result.urls.length !== 1) throw new CurlError(2, \"Exactly one HTTP(S) URL is required\");\n return result;\n}\n\nexport function createWgetCommand(options: NetworkCommandsOptions): CommandDefinition {\n return createTransferCommand(options, {\n name: \"wget\", parse: parseWget,\n help: \"Usage: wget [-O FILE|-] [-q|-nv] [--timeout SECONDS] [--tries COUNT] URL\\nVFS downloads require explicit host authorization. Recursive mirroring is unsupported.\\nTimeout is aggregate and host-capped; --tries=0 remains host-capped.\\n\",\n version: \"virtual-bash wget 0.0 (bounded HTTP HTTPS)\\n\",\n status: code => code === 0 ? 0 : [1, 2, 3].includes(code) ? 2 : [23, 26].includes(code) ? 3 : code === 60 ? 5 : code === 22 ? 8 : 4,\n });\n}\n", "import { normalizePath, posixPath as posix } from \"../../contracts/path.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { collectBytes, createOutputOperation, readBytes, toByteSource, writeBytes, type ByteSource, type CommandContext, type CommandDefinition } from \"../../contracts/index.js\";\nimport { pathOf } from \"../internal.js\";\nimport { createDeadlineOutput, deadlineDiagnostic } from \"./aggregate.js\";\nimport { parseArguments, type CurlArguments } from \"./args.js\";\nimport { createBody, queryData } from \"./body.js\";\nimport { dumpHeaders, responseHeaders, writeOutput, writeOutFormat } from \"./output.js\";\nimport { delay, diagnostic, encode, header, limitsFor, networkError, withSignal } from \"./shared.js\";\nimport { createDefaultHttpTransport } from \"./platform.js\";\nimport { CurlError, type HttpHeaders, type HttpResponse, type NetworkCommandsOptions, type NetworkLimits } from \"./types.js\";\n\nconst retryStatuses = new Set([408, 429, 500, 502, 503, 504]);\nconst redirectStatuses = new Set([301, 302, 303, 307, 308]);\nconst writeOutDefaults: Readonly<Record<string, string>> = Object.freeze({\n http_code: \"000\", response_code: \"000\", url_effective: \"\", redirect_url: \"\", content_type: \"\",\n size_download: \"0\", size_upload: \"0\", num_redirects: \"0\", num_retries: \"0\", time_total: \"0.000000\",\n exitcode: \"0\", errormsg: \"\", filename_effective: \"\", method: \"GET\", http_version: \"\",\n});\n\nfunction parseUrl(text: string, globoff: boolean, redirect = false): { url: URL; user?: string } {\n if (/[\\s\\x00-\\x1f\\x7f]/.test(text)) throw new CurlError(3, \"Malformed URL\");\n let url: URL;\n try { url = new URL(text); } catch { throw new CurlError(3, \"Malformed URL; explicit HTTP(S) scheme required\"); }\n if (![\"http:\", \"https:\"].includes(url.protocol)) throw new CurlError(1, \"Only HTTP and HTTPS are supported\");\n if (!url.hostname) throw new CurlError(3, \"Malformed URL\");\n if (!globoff && /[{}\\[\\]]/.test(url.pathname + url.search)) throw new CurlError(2, \"URL glob expansion is unsupported; use --globoff for a literal URL\");\n let user: string | undefined;\n if (url.username || url.password) {\n if (redirect) throw new CurlError(3, \"Redirect URLs may not supply credentials\");\n try { user = `${decodeURIComponent(url.username)}:${decodeURIComponent(url.password)}`; }\n catch { throw new CurlError(3, \"Malformed URL credentials\"); }\n url.username = \"\"; url.password = \"\";\n }\n url.hash = \"\";\n return { url, ...(user === undefined ? {} : { user }) };\n}\n\nfunction requestHeaders(args: CurlArguments, contentType: string | undefined, user: string | undefined, scoped: boolean, maxBytes: number): HttpHeaders {\n const defaults: [string, string][] = [[\"Accept\", args.data[0]?.kind === \"json\" ? \"application/json\" : \"*/*\"], [\"User-Agent\", args.agent ?? \"virtual-bash-curl/0.0\"]];\n if (contentType !== undefined) defaults.push([\"Content-Type\", contentType]);\n if (scoped && user !== undefined) defaults.push([\"Authorization\", `Basic ${Buffer.from(user).toString(\"base64\")}`]);\n if (scoped && args.bearer !== undefined) {\n if (/[\\r\\n\\0]/.test(args.bearer)) throw new CurlError(2, \"Invalid bearer token\");\n defaults.push([\"Authorization\", `Bearer ${args.bearer}`]);\n }\n const custom = scoped ? args.headers : [];\n const names = new Set(custom.map(([name]) => name.toLowerCase()));\n const result = [...defaults.filter(([name]) => !names.has(name.toLowerCase())),\n ...custom.filter((entry): entry is [string, string] => entry[1] !== null)];\n if (result.reduce((size, [name, value]) => size + Buffer.byteLength(name + value) + 4, 0) > maxBytes) {\n throw new CurlError(63, \"Request headers exceed host byte limit\");\n }\n return result;\n}\n\nasync function stop(response: HttpResponse | undefined, signal: AbortSignal): Promise<void> {\n if (!response) return;\n const cleanup = Promise.resolve().then(() => response.dispose());\n void cleanup.catch(() => {});\n if (!signal.aborted) await withSignal(() => cleanup, signal).catch(() => {});\n}\n\nfunction pipeClosed(error: unknown): boolean {\n return error instanceof Error && \"code\" in error && error.code === \"EPIPE\";\n}\n\nfunction remoteFilename(url: URL): string {\n const name = posix.basename(url.pathname);\n if (!name || name === \"/\" || name === \".\" || name === \"..\") throw new CurlError(23, \"URL has no safe remote filename\");\n return name;\n}\n\ninterface TransferProfile {\n readonly name: string;\n readonly help: string;\n readonly version: string;\n parse(context: CommandContext, limits: NetworkLimits): CurlArguments | Promise<CurlArguments>;\n status(code: number): number;\n}\n\nexport function createCurlCommand(options: NetworkCommandsOptions): CommandDefinition {\n return createTransferCommand(options, {\n name: \"curl\",\n help: \"Usage: curl [HTTP(S) URL] [-X METHOD] [-H HEADER] [-d DATA] [-L] [-o VFSFILE]\\nExplicit host authorization is required. See network/README.md for supported flags and limits.\\n\",\n version: \"virtual-bash curl 0.0 (HTTP HTTPS; Node streaming transport)\\n\",\n parse: (context, limits) => parseArguments(context.args, limits),\n status: code => code,\n });\n}\n\nexport function createTransferCommand(options: NetworkCommandsOptions, profile: TransferProfile): CommandDefinition {\n if (typeof options?.authorize !== \"function\") throw new TypeError(`${profile.name} requires an explicit network authorizer`);\n const limits = limitsFor(options.limits);\n const transport = options.transport ?? createDefaultHttpTransport({ maxHeaderBytes: limits.maxHeaderBytes });\n if (typeof transport !== \"function\") throw new TypeError(\"Invalid HTTP transport\");\n const authorize = options.authorize;\n const executions = new WeakMap<object, number>();\n return {\n name: profile.name,\n async execute(context) {\n context.signal.throwIfAborted();\n let args: CurlArguments;\n try {\n if (context.args.reduce((size, value) => size + Buffer.byteLength(value), 0) > limits.maxBufferBytes) throw new CurlError(2, \"Arguments exceed host buffer limit\");\n args = await profile.parse(context, limits);\n if (args.help || args.version) {\n await writeBytes(context.stdout, encode(args.version ? profile.version : profile.help), context.signal);\n return { exitCode: 0 };\n }\n for (const url of args.urls) parseUrl(url, args.globoff);\n if (args.urls.length > 1 && (args.output !== undefined || args.remoteName || args.dumpHeader !== undefined)) {\n throw new CurlError(2, \"Multiple URLs with file/header outputs are unsupported\");\n }\n } catch (error) {\n context.signal.throwIfAborted();\n const failure = error instanceof CurlError ? error : new CurlError(2, `Invalid ${profile.name} arguments`);\n await diagnostic(context, new CurlError(profile.status(failure.exitCode), failure.message));\n return { exitCode: profile.status(failure.exitCode) };\n }\n const scope = context.executionScope ?? {};\n let started = executions.get(scope);\n if (started === undefined) { started = performance.now(); executions.set(scope, started); }\n let exitCode = 0;\n for (const url of args.urls) {\n context.signal.throwIfAborted();\n if (performance.now() - started >= limits.maxTotalTimeMs) {\n const failure = new CurlError(28, \"Operation timed out\");\n if (!args.silent || args.showError) {\n try { await deadlineDiagnostic(context, failure, 0); }\n catch (error) { context.signal.throwIfAborted(); if (!(error instanceof CurlError)) throw error; }\n }\n return { exitCode: profile.status(failure.exitCode) };\n }\n exitCode = await transfer(context, args, url, limits, transport, authorize, started, profile.status);\n }\n return { exitCode };\n },\n };\n}\n\nasync function transfer(context: CommandContext, args: CurlArguments, input: string, limits: NetworkLimits,\n transport: NonNullable<NetworkCommandsOptions[\"transport\"]>, authorize: NetworkCommandsOptions[\"authorize\"], started: number, status: (code: number) => number): Promise<number> {\n const start = performance.now();\n const remaining = (): number => Math.min(args.maxTimeMs - (performance.now() - start), limits.maxTotalTimeMs - (performance.now() - started));\n const hasFileOutput = args.remoteName || args.output !== undefined && args.output !== \"-\" || args.dumpHeader !== undefined && args.dumpHeader !== \"-\";\n const operation = createDeadlineOutput(context, hasFileOutput ? { write: chunk => context.stdout.write(chunk) } : context.stdout, remaining());\n const signal = operation.signal;\n const borrowed: ByteSource = context.stdout.ownedOutput ? { [Symbol.asyncIterator]() {\n const iterator = context.stdin[Symbol.asyncIterator]();\n return { next: () => iterator.next() };\n } } : context.stdin;\n let response: HttpResponse | undefined;\n let failure: CurlError | undefined;\n const values = { ...writeOutDefaults };\n let format = args.writeOut;\n let formatReady = false;\n let dumped = false;\n let downloaded = 0;\n let uploaded = 0;\n let included: Uint8Array[] = [];\n let closedOutput = false;\n const publish = async (bytes: Uint8Array): Promise<void> => {\n const writing = createDeadlineOutput(context, context.stdout, remaining());\n try { await writeBytes(writing.output, bytes, writing.signal); }\n catch (error) {\n context.signal.throwIfAborted();\n if (!pipeClosed(error)) throw error;\n closedOutput = true;\n } finally { await writing.close(); }\n };\n try {\n if (format?.startsWith(\"@\")) {\n try {\n const bytes = format === \"@-\"\n ? await collectBytes(borrowed, { signal, maxBytes: limits.maxBufferBytes })\n : await withSignal(() => context.fs.readFile(pathOf(context, format!.slice(1)), { signal, maxBytes: limits.maxBufferBytes }), signal);\n format = Buffer.from(bytes).toString(\"utf8\");\n } catch { signal.throwIfAborted(); throw new CurlError(26, \"Failed reading write-out format\"); }\n }\n if (format !== undefined) { writeOutFormat(format, values); formatReady = true; }\n const parsed = parseUrl(input, args.globoff);\n const initial = parsed.url;\n let body = createBody({ ...context, stdin: borrowed }, args, limits);\n if (args.get && body) {\n const query = await queryData(body, signal, limits);\n if (/[^\\x21-\\x7e]/.test(query)) throw new CurlError(3, \"GET data must be URL encoded\");\n initial.search += `${initial.search ? \"&\" : \"?\"}${query.replace(/%[0-9a-f]{2}/gi, escape => escape.toLowerCase())}`;\n body = undefined;\n }\n const output = args.remoteName ? args.directoryIndex && initial.pathname.endsWith(\"/\") ? args.directoryIndex : remoteFilename(initial) : args.output;\n values.filename_effective = output && output !== \"-\" ? output : \"\";\n if (output && output !== \"-\" && args.dumpHeader && args.dumpHeader !== \"-\" &&\n normalizePath(pathOf(context, output)) === normalizePath(pathOf(context, args.dumpHeader))) {\n throw new CurlError(23, \"Body and header output files must differ\");\n }\n const initialMethod = args.method ?? (args.head ? \"HEAD\" : args.get ? \"GET\" : args.upload !== undefined ? \"PUT\" : body ? \"POST\" : \"GET\");\n requestHeaders(args, body?.contentType, args.user ?? parsed.user, true, limits.maxHeaderBytes);\n attempts: for (let attempt = 0; attempt <= args.retries; attempt++) {\n values.num_retries = String(attempt);\n downloaded = 0;\n failure = undefined;\n let current = new URL(initial);\n let method = initialMethod;\n let currentBody = body;\n let credentialsInScope = true;\n let previous: string | undefined;\n let redirects = 0;\n included = [];\n let headerBytes = 0;\n while (true) {\n signal.throwIfAborted();\n if (remaining() <= 0) throw new CurlError(28, \"Operation timed out\");\n values.url_effective = current.href;\n values.method = method;\n let denyPrivateNetworks = false;\n let allowed: boolean;\n try { allowed = await withSignal(() => authorize({ url: current.href, method, attempt, signal,\n requirePrivateNetworkDeny() { denyPrivateNetworks = true; },\n ...(previous === undefined ? {} : { redirectFrom: previous }) }), signal); }\n catch { signal.throwIfAborted(); throw new CurlError(7, \"Network authorization failed\"); }\n if (remaining() <= 0) throw new CurlError(28, \"Operation timed out\");\n if (allowed !== true) throw new CurlError(7, \"Network access denied by host policy\");\n const policy = denyPrivateNetworks ? { denyPrivateNetworks: true as const } : {};\n if (policy.denyPrivateNetworks && transport.supportsPrivateNetworkDeny !== true) {\n throw new CurlError(7, \"Transport cannot enforce private network policy\");\n }\n const headers = requestHeaders(args, currentBody?.contentType, args.user ?? parsed.user, credentialsInScope, limits.maxHeaderBytes);\n if (args.verbose) await writeBytes(context.stderr, encode(`> ${method} ${current.origin}\\n${headers.map(([name]) => `> ${name}: [redacted]\\n`).join(\"\")}`), signal);\n const upload: ByteSource | undefined = currentBody && (async function* () {\n for await (const chunk of currentBody!.open(signal)) { uploaded += chunk.length; yield chunk; }\n })();\n try {\n response = await operation.acquire(async () => {\n const acquired = await transport({ url: current.href, method, headers, signal, responseBodyMode: args.head ? \"omit\" : args.fail ? \"omit-on-http-error\" : \"read\",\n registerCleanup: operation.registerCleanup, ...policy, ...(upload ? { body: upload } : {}) });\n let cleanup: Promise<void> | undefined;\n return { ...acquired, dispose() { cleanup ??= Promise.resolve().then(() => acquired.dispose()); return cleanup; } };\n }, result => result.dispose());\n } catch (error) {\n signal.throwIfAborted();\n const code = error && typeof error === \"object\" && \"code\" in error ? error.code : undefined;\n if (args.retryTransport && (code === \"ECONNRESET\" || code === \"ETIMEDOUT\" || code === \"EPIPE\") && attempt < args.retries) {\n await delay(args.retryDelayMs || Math.min(1000 * 2 ** attempt, 600_000), signal);\n continue attempts;\n }\n throw error;\n }\n const block = responseHeaders(response, limits.maxHeaderBytes);\n headerBytes += block.length;\n if (headerBytes > limits.maxHeaderBytes) throw new CurlError(63, \"Combined response headers exceed host byte limit\");\n values.http_code = values.response_code = String(response.status).padStart(3, \"0\");\n values.content_type = header(response.headers, \"content-type\") ?? \"\";\n values.http_version = response.httpVersion ?? \"1.1\";\n if (args.verbose) await writeBytes(context.stderr, encode(`< HTTP ${response.status}\\n`), signal);\n if (args.dumpHeader !== undefined) {\n if (args.dumpHeader === \"-\") await publish(block);\n else await dumpHeaders(context, args.dumpHeader, block, dumped, signal);\n dumped = true;\n }\n if (args.head || args.include) included.push(block);\n const location = header(response.headers, \"location\");\n if (redirectStatuses.has(response.status) && location !== undefined) {\n let target: URL;\n try { target = parseUrl(new URL(location, current).href, true, true).url; }\n catch (error) { if (error instanceof CurlError) throw error; throw new CurlError(3, \"Malformed redirect URL\"); }\n values.redirect_url = target.href;\n if (args.location) {\n if (redirects++ >= args.maxRedirects) throw new CurlError(47, \"Maximum redirects exceeded\");\n if (current.protocol === \"https:\" && target.protocol === \"http:\") throw new CurlError(1, \"HTTPS-to-HTTP redirects are disabled\");\n if (target.origin !== current.origin) credentialsInScope = false;\n if ((response.status === 303 && method !== \"HEAD\") || ([301, 302].includes(response.status) && method === \"POST\")) {\n currentBody = undefined;\n if (args.method === undefined) method = \"GET\";\n }\n previous = current.href;\n current = target;\n values.num_redirects = String(redirects);\n await stop(response, signal); response = undefined;\n continue;\n }\n }\n break;\n }\n if (!response) throw new CurlError(56, \"No HTTP response\");\n if (response.status >= 400 && (args.fail || args.failWithBody)) failure = new CurlError(22, `HTTP response status ${response.status}`);\n const suppressBody = args.fail && failure !== undefined;\n let published = 0;\n if (!suppressBody || included.length) {\n const length = header(response.headers, \"content-length\");\n if (!args.head && !suppressBody && length && /^\\d+$/.test(length) && Number(length) > args.maxFileSize) throw new CurlError(63, \"Response exceeds download byte limit\");\n const final = response;\n const writing = output === undefined || output === \"-\" ? createOutputOperation({ ...context, signal }, context.stdout) : undefined;\n const bodySignal = writing?.signal ?? signal;\n const source: ByteSource = (async function* () {\n for (const bytes of included) { published += bytes.length; yield bytes; }\n if (!args.head && !suppressBody) {\n let chunks = 0;\n try {\n for await (const chunk of readBytes(final.body, bodySignal)) {\n if (++chunks % 256 === 0) { await yieldTurn(context.signal); bodySignal.throwIfAborted(); }\n downloaded += chunk.length;\n if (downloaded > args.maxFileSize) throw new CurlError(63, \"Response exceeds download byte limit\");\n published += chunk.length;\n yield chunk;\n }\n if (length && /^\\d+$/.test(length) && downloaded !== Number(length)) throw new CurlError(18, \"Partial HTTP response body\");\n } catch (error) {\n bodySignal.throwIfAborted();\n if (!(error instanceof CurlError) && length && /^\\d+$/.test(length) && downloaded < Number(length)) throw new CurlError(18, \"Partial HTTP response body\");\n throw networkError(error);\n }\n }\n })();\n try { await writeOutput(writing ? { ...context, stdout: writing.output } : context, output, source, bodySignal); }\n catch (error) {\n context.signal.throwIfAborted();\n if (!pipeClosed(error)) throw error;\n closedOutput = true;\n } finally { await writing?.close(); }\n }\n if (retryStatuses.has(response.status) && attempt < args.retries) {\n if (failure && (!args.silent || args.showError)) await deadlineDiagnostic(context, new CurlError(status(failure.exitCode), failure.message), remaining());\n const after = header(response.headers, \"retry-after\");\n let wait = args.retryDelayMs || Math.min(1000 * 2 ** attempt, 600_000);\n if (after !== undefined) {\n const parsed = /^\\d+$/.test(after) ? Number(after) * 1000 : Date.parse(after) - Date.now();\n if (Number.isFinite(parsed)) wait = Math.max(wait, parsed);\n }\n await stop(response, signal); response = undefined;\n if (published && output !== undefined && output !== \"-\") await writeOutput(context, output, toByteSource(\"\"), signal);\n await delay(Math.min(wait, limits.maxTimeMs), signal);\n continue;\n }\n break;\n }\n } catch (error) {\n if (context.signal.aborted) throw context.signal.reason;\n if (pipeClosed(error)) closedOutput = true;\n else if (!hasFileOutput && context.stdout.ownedOutput?.consumerClosed.aborted) failure = new CurlError(23, \"Failed writing output\");\n else failure = signal.aborted && signal.reason instanceof CurlError ? signal.reason : networkError(error);\n } finally {\n try { await operation.close(); }\n finally { context.signal.throwIfAborted(); }\n }\n values.size_download = String(downloaded);\n values.size_upload = String(uploaded);\n values.time_total = ((performance.now() - start) / 1000).toFixed(6);\n values.exitcode = String(failure?.exitCode ?? 0);\n values.errormsg = failure?.message ?? \"\";\n if (format !== undefined && formatReady) {\n try { await publish(writeOutFormat(format, values)); }\n catch (error) { context.signal.throwIfAborted(); failure = error instanceof CurlError ? error : new CurlError(23, \"Failed writing write-out result\"); }\n }\n if (failure && (!args.silent || args.showError)) {\n try { await deadlineDiagnostic(context, new CurlError(status(failure.exitCode), failure.message), remaining()); }\n catch (error) { context.signal.throwIfAborted(); if (!(error instanceof CurlError)) throw error; failure = error; }\n }\n return failure ? status(failure.exitCode) : closedOutput ? 141 : 0;\n}\n", "import { createOutputOperation, type ByteSink, type CommandContext, type OutputOperation } from \"../../contracts/index.js\";\nimport { diagnostic } from \"./shared.js\";\nimport { CurlError } from \"./types.js\";\n\nexport function createDeadlineOutput(context: CommandContext, destination: ByteSink, remaining: number): OutputOperation {\n const lifetime = new AbortController();\n const signal = AbortSignal.any([context.signal, lifetime.signal]);\n const operation = createOutputOperation({ ...context, signal }, destination);\n if (operation.signal.aborted) return operation;\n let timer: ReturnType<typeof setTimeout> | undefined;\n operation.registerCleanup(() => { clearTimeout(timer); timer = undefined; });\n timer = setTimeout(() => lifetime.abort(new CurlError(28, \"Operation timed out\")), Math.max(0, remaining));\n return operation;\n}\n\nexport async function deadlineDiagnostic(context: CommandContext, error: CurlError, remaining: number): Promise<void> {\n const operation = createDeadlineOutput(context, context.stderr, remaining);\n try { await diagnostic({ ...context, stderr: operation.output, signal: operation.signal }, error); }\n finally { await operation.close(); }\n}\n", "import type { CommandContext } from \"../../contracts/index.js\";\nimport { writeDiagnostic } from \"../../escaping.js\";\nimport { CurlError, defaultNetworkLimits, type HttpHeaders, type NetworkLimits } from \"./types.js\";\n\nexport const encode = (text: string): Uint8Array => new TextEncoder().encode(text);\n\nexport function limitsFor(overrides: Partial<NetworkLimits> = {}): NetworkLimits {\n const result = { ...defaultNetworkLimits, ...overrides };\n for (const [name, value] of Object.entries(result)) {\n const minimum = name === \"maxRedirects\" || name === \"maxRetries\" ? 0 : 1;\n if (!Number.isSafeInteger(value) || value < minimum || (name === \"maxTimeMs\" && value > 2_147_483_647)) {\n throw new RangeError(`Invalid network limit: ${name}`);\n }\n }\n return Object.freeze(result);\n}\n\nexport async function withSignal<Value>(operation: () => PromiseLike<Value> | Value, signal: AbortSignal): Promise<Value> {\n signal.throwIfAborted();\n return new Promise<Value>((resolve, reject) => {\n const onAbort = (): void => { cleanup(); reject(signal.reason); };\n const cleanup = (): void => signal.removeEventListener(\"abort\", onAbort);\n signal.addEventListener(\"abort\", onAbort, { once: true });\n Promise.resolve().then(operation).then(value => { cleanup(); resolve(value); }, error => { cleanup(); reject(error); });\n });\n}\n\nexport async function delay(milliseconds: number, signal: AbortSignal): Promise<void> {\n let timer: ReturnType<typeof setTimeout> | undefined;\n try { await withSignal(() => new Promise<void>(resolve => { timer = setTimeout(resolve, milliseconds); }), signal); }\n finally { clearTimeout(timer); }\n}\n\nexport function header(headers: HttpHeaders, name: string): string | undefined {\n return headers.find(([key]) => key.toLowerCase() === name.toLowerCase())?.[1];\n}\n\nexport function networkError(error: unknown): CurlError {\n if (error instanceof CurlError) return error;\n const code = error && typeof error === \"object\" && \"code\" in error ? String(error.code) : \"\";\n if ([\"ENOTFOUND\", \"EAI_AGAIN\"].includes(code)) return new CurlError(6, \"Could not resolve host\");\n if ([\"ECONNREFUSED\", \"ENETUNREACH\", \"EHOSTUNREACH\"].includes(code)) return new CurlError(7, \"Failed to connect\");\n if (/CERT|SELF_SIGNED|UNABLE_TO_VERIFY/.test(code)) return new CurlError(60, \"TLS certificate verification failed\");\n if (/TLS|SSL/.test(code)) return new CurlError(35, \"TLS handshake failed\");\n return new CurlError(56, \"Network transfer failed\");\n}\n\nexport async function diagnostic(context: CommandContext, error: CurlError): Promise<void> {\n await writeDiagnostic(context.stderr, `${context.command}: (${error.exitCode}) ${error.message}\\n`, context.signal);\n}\n", "import type { ByteSource, InvocationCleanup } from \"../../contracts/index.js\";\n\nexport type HttpHeaders = readonly (readonly [string, string])[];\n\nexport interface HttpRequest {\n readonly url: string;\n readonly method: string;\n readonly headers: HttpHeaders;\n readonly body?: ByteSource;\n /** Consumer body intent, independent of method. Omitted means \"read\".\n * \"omit\" permits an empty body; \"omit-on-http-error\" permits it only for\n * status >= 400. Neither changes the HTTP request or response status/headers. */\n readonly responseBodyMode?: \"omit\" | \"omit-on-http-error\" | \"read\";\n readonly signal: AbortSignal;\n readonly registerCleanup?: (cleanup: InvocationCleanup) => void;\n readonly denyPrivateNetworks?: true;\n}\n\nexport interface HttpResponse {\n readonly status: number;\n readonly statusText: string;\n readonly headers: HttpHeaders;\n readonly httpVersion?: string;\n readonly body: ByteSource;\n dispose(): Promise<void>;\n}\n\nexport type HttpTransport = ((request: HttpRequest) => Promise<HttpResponse>) & {\n readonly supportsPrivateNetworkDeny?: true;\n};\n\nexport interface NetworkAuthorization {\n readonly url: string;\n readonly method: string;\n readonly redirectFrom?: string;\n readonly attempt: number;\n readonly signal: AbortSignal;\n readonly requirePrivateNetworkDeny?: () => void;\n}\n\nexport type NetworkAuthorizer = (request: NetworkAuthorization) => boolean | Promise<boolean>;\n\nexport interface NetworkLimits {\n readonly maxUploadBytes: number;\n readonly maxDownloadBytes: number;\n readonly maxBufferBytes: number;\n readonly maxHeaderBytes: number;\n readonly maxRedirects: number;\n readonly maxRetries: number;\n readonly maxUrls: number;\n readonly maxTimeMs: number;\n readonly maxTotalTimeMs: number;\n}\n\nexport interface NetworkCommandsOptions {\n readonly authorize: NetworkAuthorizer;\n readonly transport?: HttpTransport;\n readonly limits?: Partial<NetworkLimits>;\n readonly replace?: boolean;\n}\n\nexport const defaultNetworkLimits: Readonly<NetworkLimits> = Object.freeze({\n maxUploadBytes: 64 * 1024 * 1024,\n maxDownloadBytes: 64 * 1024 * 1024,\n maxBufferBytes: 8 * 1024 * 1024,\n maxHeaderBytes: 64 * 1024,\n maxRedirects: 10,\n maxRetries: 5,\n maxUrls: 32,\n maxTimeMs: 120_000,\n maxTotalTimeMs: 120_000,\n});\n\nexport const cloudflareWorkerNetworkLimits: Readonly<NetworkLimits> = Object.freeze({\n maxUploadBytes: 4 * 1024 * 1024,\n maxDownloadBytes: 4 * 1024 * 1024,\n maxBufferBytes: 1024 * 1024,\n maxHeaderBytes: 32 * 1024,\n maxRedirects: 2,\n maxRetries: 1,\n maxUrls: 8,\n maxTimeMs: 10_000,\n maxTotalTimeMs: 10_000,\n});\n\nexport class CurlError extends Error {\n constructor(readonly exitCode: number, message: string) {\n super(message);\n this.name = \"CurlError\";\n }\n}\n", "import { validateHeaderName, validateHeaderValue } from \"./platform.js\";\nimport { CurlError, type NetworkLimits } from \"./types.js\";\n\nexport interface DataArgument {\n readonly kind: \"data\" | \"raw\" | \"binary\" | \"json\" | \"urlencode\" | \"form\" | \"form-string\";\n readonly value: string;\n}\n\nexport interface CurlArguments {\n agent?: string;\n retryTransport?: boolean;\n directoryIndex?: string;\n urls: string[];\n data: DataArgument[];\n headers: [string, string | null][];\n method?: string;\n user?: string;\n bearer?: string;\n upload?: string;\n output?: string;\n dumpHeader?: string;\n writeOut?: string;\n include: boolean;\n head: boolean;\n get: boolean;\n location: boolean;\n remoteName: boolean;\n fail: boolean;\n failWithBody: boolean;\n silent: boolean;\n showError: boolean;\n verbose: boolean;\n globoff: boolean;\n help: boolean;\n version: boolean;\n retries: number;\n retryDelayMs: number;\n maxTimeMs: number;\n maxRedirects: number;\n maxFileSize: number;\n}\n\nconst values: Readonly<Record<string, string>> = {\n X: \"request\", d: \"data\", H: \"header\", u: \"user\", A: \"user-agent\", e: \"referer\",\n o: \"output\", D: \"dump-header\", w: \"write-out\", T: \"upload-file\", m: \"max-time\", F: \"form\",\n};\nconst flags: Readonly<Record<string, string>> = {\n L: \"location\", I: \"head\", i: \"include\", f: \"fail\", s: \"silent\", S: \"show-error\",\n G: \"get\", O: \"remote-name\", v: \"verbose\", q: \"disable\", N: \"no-buffer\", g: \"globoff\",\n h: \"help\", V: \"version\",\n};\nconst longValues = new Set([...Object.values(values), \"data-ascii\", \"data-raw\", \"data-binary\", \"data-urlencode\",\n \"json\", \"form-string\", \"url\", \"oauth2-bearer\", \"max-redirs\", \"max-filesize\", \"retry\", \"retry-delay\"]);\n\nfunction number(value: string, integral = false): number {\n if (!(integral ? /^\\d+$/ : /^\\d+(?:\\.\\d+)?$/).test(value)) throw new CurlError(2, \"Invalid numeric option\");\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || parsed < 0 || parsed > Number.MAX_SAFE_INTEGER) throw new CurlError(2, \"Invalid numeric option\");\n return parsed;\n}\n\nfunction addHeader(result: CurlArguments, raw: string): void {\n const colon = raw.indexOf(\":\");\n const semicolon = colon < 0 && raw.endsWith(\";\");\n if (colon < 1 && !semicolon) throw new CurlError(2, \"Invalid HTTP header\");\n const name = semicolon ? raw.slice(0, -1) : raw.slice(0, colon);\n const value = semicolon ? \"\" : raw.slice(colon + 1).trim();\n try { validateHeaderName(name); validateHeaderValue(name, value); }\n catch { throw new CurlError(2, \"Invalid HTTP header\"); }\n if ([\"host\", \"content-length\", \"transfer-encoding\", \"connection\", \"proxy-authorization\", \"upgrade\", \"expect\"].includes(name.toLowerCase())) {\n throw new CurlError(2, \"Transport-controlled HTTP header is not supported\");\n }\n result.headers.push([name, value === \"\" && !semicolon ? null : value]);\n}\n\nexport function parseArguments(args: readonly string[], limits: NetworkLimits): CurlArguments {\n const result: CurlArguments = {\n urls: [], data: [], headers: [], include: false, head: false, get: false, location: false,\n remoteName: false, fail: false, failWithBody: false, silent: false, showError: false,\n verbose: false, globoff: false, help: false, version: false, retries: 0, retryDelayMs: 0,\n maxTimeMs: limits.maxTimeMs, maxRedirects: limits.maxRedirects, maxFileSize: limits.maxDownloadBytes,\n };\n const apply = (option: string, value?: string): void => {\n switch (option) {\n case \"request\":\n if (!value || !/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(value) || [\"CONNECT\", \"TRACE\"].includes(value.toUpperCase())) {\n throw new CurlError(2, \"Invalid or unsupported HTTP method\");\n }\n result.method = value; break;\n case \"header\": addHeader(result, value!); break;\n case \"user-agent\": addHeader(result, `User-Agent: ${value!}`); break;\n case \"referer\": addHeader(result, `Referer: ${value!}`); break;\n case \"user\":\n if (!value!.includes(\":\")) throw new CurlError(2, \"Basic authentication requires user:password; prompting is unsupported\");\n result.user = value!; break;\n case \"oauth2-bearer\": result.bearer = value!; break;\n case \"data\": case \"data-ascii\": result.data.push({ kind: \"data\", value: value! }); break;\n case \"data-raw\": result.data.push({ kind: \"raw\", value: value! }); break;\n case \"data-binary\": result.data.push({ kind: \"binary\", value: value! }); break;\n case \"data-urlencode\": result.data.push({ kind: \"urlencode\", value: value! }); break;\n case \"json\": case \"form\": case \"form-string\": result.data.push({ kind: option, value: value! }); break;\n case \"output\": result.output = value!; result.remoteName = false; break;\n case \"remote-name\": result.remoteName = true; delete result.output; break;\n case \"dump-header\": result.dumpHeader = value!; break;\n case \"write-out\": result.writeOut = value!; break;\n case \"upload-file\": result.upload = value!; break;\n case \"url\": result.urls.push(value!); break;\n case \"max-time\": {\n const milliseconds = number(value!) * 1000;\n result.maxTimeMs = milliseconds === 0 ? limits.maxTimeMs : Math.min(milliseconds, limits.maxTimeMs);\n break;\n }\n case \"max-filesize\": result.maxFileSize = Math.min(number(value!, true), limits.maxDownloadBytes); break;\n case \"max-redirs\": result.maxRedirects = Math.min(number(value!, true), limits.maxRedirects); break;\n case \"retry\": result.retries = Math.min(number(value!, true), limits.maxRetries); break;\n case \"retry-delay\": result.retryDelayMs = Math.min(number(value!) * 1000, limits.maxTimeMs); break;\n case \"location\": result.location = true; break;\n case \"head\": result.head = true; break;\n case \"include\": case \"show-headers\": result.include = true; break;\n case \"get\": result.get = true; break;\n case \"fail\": result.fail = true; break;\n case \"fail-with-body\": result.failWithBody = true; break;\n case \"silent\": result.silent = true; break;\n case \"show-error\": result.showError = true; break;\n case \"verbose\": result.verbose = true; break;\n case \"globoff\": result.globoff = true; break;\n case \"help\": result.help = true; break;\n case \"version\": result.version = true; break;\n case \"disable\": case \"no-buffer\": case \"no-progress-meter\": case \"basic\": break;\n default: throw new CurlError(2, \"Unsupported curl option\");\n }\n };\n let ended = false;\n for (let index = 0; index < args.length; index++) {\n const argument = args[index]!;\n if (ended || !argument.startsWith(\"-\") || argument === \"-\") { result.urls.push(argument); continue; }\n if (argument === \"--\") { ended = true; continue; }\n if (argument.startsWith(\"--\")) {\n const equals = argument.indexOf(\"=\");\n const name = argument.slice(2, equals < 0 ? undefined : equals);\n let value = equals < 0 ? undefined : argument.slice(equals + 1);\n if (longValues.has(name)) {\n value ??= args[++index];\n if (value === undefined) throw new CurlError(2, \"Option requires an argument\");\n } else if (value !== undefined) throw new CurlError(2, \"Unexpected option argument\");\n apply(name, value);\n } else {\n for (let offset = 1; offset < argument.length; offset++) {\n const name = argument[offset]!;\n if (values[name]) {\n const value = argument.slice(offset + 1) || args[++index];\n if (value === undefined) throw new CurlError(2, \"Option requires an argument\");\n apply(values[name], value); break;\n }\n if (!flags[name]) throw new CurlError(2, \"Unsupported curl option\");\n apply(flags[name]);\n }\n }\n }\n if (!result.help && !result.version && !result.urls.length) throw new CurlError(2, \"No URL specified\");\n if (result.urls.length > limits.maxUrls) throw new CurlError(2, \"URL count exceeds host limit\");\n if (result.fail && result.failWithBody) throw new CurlError(2, \"--fail and --fail-with-body are mutually exclusive\");\n const form = result.data.some(part => part.kind === \"form\" || part.kind === \"form-string\");\n if ((result.upload !== undefined && result.data.length) || (form && result.data.some(part => !part.kind.startsWith(\"form\"))) ||\n (result.get && (form || result.upload !== undefined)) || (result.head && (result.upload !== undefined || result.data.length > 0) && !result.get)) {\n throw new CurlError(2, \"Incompatible request body options\");\n }\n if (result.data.some(part => part.kind === \"json\") && result.data.some(part => part.kind !== \"json\")) {\n throw new CurlError(2, \"Mixing JSON and other data modes is unsupported\");\n }\n return result;\n}\n", "import { Buffer } from \"buffer\";\n\nexport function createDefaultHttpTransport() {\n throw new TypeError(\"Portable network commands require an explicit HTTP transport; inject createFetchTransport() or a host transport\");\n}\n\nexport function randomBytes(length) {\n const bytes = new Uint8Array(length);\n globalThis.crypto.getRandomValues(bytes);\n return Buffer.from(bytes);\n}\n\nexport function validateHeaderName(name) {\n if (!/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(name)) throw new TypeError(\"Invalid HTTP header name\");\n}\n\nexport function validateHeaderValue(_name, value) {\n if (/[^\\t\\x20-\\x7e\\x80-\\xff]/.test(value)) throw new TypeError(\"Invalid HTTP header value\");\n}\n", "import { randomBytes } from \"./platform.js\";\nimport { posixPath as posix } from \"../../contracts/path.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { collectBytes, readBytes, type ByteSource, type CommandContext } from \"../../contracts/index.js\";\nimport { pathOf } from \"../internal.js\";\nimport type { CurlArguments, DataArgument } from \"./args.js\";\nimport { encode } from \"./shared.js\";\nimport { CurlError, type NetworkLimits } from \"./types.js\";\n\ninterface Part {\n readonly bytes?: Uint8Array;\n readonly file?: string;\n readonly strip?: boolean;\n readonly urlencode?: boolean;\n}\n\nexport interface RequestBody {\n readonly contentType?: string;\n open(signal: AbortSignal): ByteSource;\n}\n\nfunction percent(bytes: Uint8Array): Uint8Array {\n let output = \"\";\n for (const byte of bytes) output += (byte >= 65 && byte <= 90) || (byte >= 97 && byte <= 122) ||\n (byte >= 48 && byte <= 57) || [45, 46, 95, 126].includes(byte)\n ? String.fromCharCode(byte) : byte === 32 ? \"+\" : `%${byte.toString(16).toUpperCase().padStart(2, \"0\")}`;\n return encode(output);\n}\n\nfunction dataPart(argument: DataArgument): Part[] {\n const value = argument.value;\n if (argument.kind === \"urlencode\") {\n const equals = value.indexOf(\"=\");\n if (equals >= 0) return [{ bytes: encode(equals ? `${value.slice(0, equals)}=` : \"\") }, { bytes: encode(value.slice(equals + 1)), urlencode: true }];\n const at = value.indexOf(\"@\");\n if (at >= 0) return [{ bytes: encode(at ? `${value.slice(0, at)}=` : \"\") }, { file: value.slice(at + 1), urlencode: true }];\n return [{ bytes: encode(value), urlencode: true }];\n }\n if (argument.kind !== \"raw\" && value.startsWith(\"@\")) return [{ file: value.slice(1), strip: argument.kind === \"data\" }];\n return [{ bytes: encode(value) }];\n}\n\nfunction quoted(value: string): string {\n if (/[\\r\\n\\0]/.test(value)) throw new CurlError(2, \"Invalid multipart field metadata\");\n return value.replace(/[\"\\\\]/g, \"\\\\$&\");\n}\n\nfunction multipart(argument: DataArgument, boundary: string): Part[] {\n const equals = argument.value.indexOf(\"=\");\n if (equals < 1) throw new CurlError(2, \"Multipart form requires name=value\");\n const name = quoted(argument.value.slice(0, equals));\n let value = argument.value.slice(equals + 1);\n let type: string | undefined;\n let filename: string | undefined;\n if (argument.kind === \"form\") {\n const fields = value.split(\";\");\n value = fields.shift()!;\n for (const field of fields) {\n if (field.startsWith(\"type=\")) type = field.slice(5);\n else if (field.startsWith(\"filename=\")) filename = field.slice(9);\n else throw new CurlError(2, \"Unsupported multipart form attribute\");\n }\n }\n const isFile = argument.kind === \"form\" && /^[<@]/.test(value);\n if (isFile && (value.slice(1).includes(\",\") || !value.slice(1))) throw new CurlError(2, \"Unsupported multipart file list\");\n if (isFile && value.startsWith(\"@\")) filename ??= posix.basename(value.slice(1));\n if (type !== undefined && !/^[\\w!#$&^_.+-]+\\/[\\w!#$&^_.+-]+$/.test(type)) throw new CurlError(2, \"Invalid multipart content type\");\n let preamble = `--${boundary}\\r\\nContent-Disposition: form-data; name=\"${name}\"`;\n if (filename !== undefined) preamble += `; filename=\"${quoted(filename)}\"`;\n preamble += \"\\r\\n\";\n if (type || filename !== undefined) preamble += `Content-Type: ${type ?? \"application/octet-stream\"}\\r\\n`;\n preamble += \"\\r\\n\";\n return [{ bytes: encode(preamble) }, isFile ? { file: value.slice(1) } : { bytes: encode(value) }, { bytes: encode(\"\\r\\n\") }];\n}\n\nexport function createBody(context: CommandContext, args: CurlArguments, limits: NetworkLimits): RequestBody | undefined {\n if (!args.data.length && args.upload === undefined) return undefined;\n const parts: Part[] = [];\n let contentType: string | undefined;\n const form = args.data.some(part => part.kind.startsWith(\"form\"));\n if (form) {\n const boundary = `virtual-bash-${randomBytes(18).toString(\"hex\")}`;\n contentType = `multipart/form-data; boundary=${boundary}`;\n for (const argument of args.data) parts.push(...multipart(argument, boundary));\n parts.push({ bytes: encode(`--${boundary}--\\r\\n`) });\n } else if (args.upload !== undefined) parts.push({ file: args.upload });\n else {\n const json = args.data[0]?.kind === \"json\";\n contentType = json ? \"application/json\" : \"application/x-www-form-urlencoded\";\n args.data.forEach((argument, index) => {\n if (index && !json) parts.push({ bytes: encode(\"&\") });\n parts.push(...dataPart(argument));\n });\n }\n const hasStdin = parts.some(part => part.file === \"-\");\n let opened = false;\n let replayComplete = false;\n let replayable = true;\n let cachedBytes = 0;\n let cache: Uint8Array[] = [];\n let stdinUsed = false;\n const source = async function* (part: Part, signal: AbortSignal): ByteSource {\n if (part.bytes !== undefined) { yield part.bytes; return; }\n if (part.file === \"-\") {\n if (!stdinUsed) { stdinUsed = true; yield* readBytes(context.stdin, signal); }\n return;\n }\n try {\n const path = pathOf(context, part.file!);\n const capabilities = await context.fs.capabilitiesFor?.(path, { signal }) ?? context.fs.capabilities;\n signal.throwIfAborted();\n if (context.fs.readStream && capabilities.streamingRead !== false) yield* readBytes(context.fs.readStream(path, { signal }), signal);\n else yield await context.fs.readFile(path, { signal, maxBytes: Math.min(limits.maxBufferBytes, limits.maxUploadBytes) });\n } catch (error) {\n signal.throwIfAborted();\n if (error instanceof CurlError) throw error;\n throw new CurlError(26, \"Failed to read virtual upload file\");\n }\n };\n return {\n ...(contentType === undefined ? {} : { contentType }),\n open(signal) {\n return (async function* (): ByteSource {\n if (hasStdin && opened) {\n if (!replayComplete || !replayable) throw new CurlError(65, \"Cannot replay stdin upload within the host buffer limit\");\n for (const chunk of cache) { signal.throwIfAborted(); yield chunk.slice(); }\n return;\n }\n opened = true;\n let count = 0;\n let chunks = 0;\n for (const part of parts) for await (const raw of source(part, signal)) {\n if (++chunks % 256 === 0) await yieldTurn(signal);\n for (let offset = 0; offset < raw.length; offset += 16 * 1024) {\n signal.throwIfAborted();\n let chunk = raw.subarray(offset, offset + 16 * 1024);\n if (part.strip) chunk = chunk.filter(byte => byte !== 0 && byte !== 10 && byte !== 13);\n if (part.urlencode) chunk = percent(chunk);\n count += chunk.length;\n if (count > limits.maxUploadBytes) throw new CurlError(63, \"Upload exceeds host byte limit\");\n if (hasStdin && replayable) {\n cachedBytes += chunk.length;\n if (cachedBytes > limits.maxBufferBytes) { replayable = false; cache = []; }\n else cache.push(new Uint8Array(chunk));\n }\n if (chunk.length) yield chunk;\n }\n }\n replayComplete = true;\n })();\n },\n };\n}\n\nexport async function queryData(body: RequestBody, signal: AbortSignal, limits: NetworkLimits): Promise<string> {\n try { return Buffer.from(await collectBytes(body.open(signal), { signal, maxBytes: limits.maxBufferBytes })).toString(\"utf8\"); }\n catch (error) {\n signal.throwIfAborted();\n if (error instanceof CurlError) throw error;\n throw new CurlError(63, \"Query data exceeds host buffer limit\");\n }\n}\n", "import { FsError, readBytes, writeBytes, type ByteSource, type CommandContext } from \"../../contracts/index.js\";\nimport { openFileOutput } from \"../../contracts/filesystem-output.js\";\nimport { outputFailure } from \"../../contracts/io.js\";\nimport { pathOf } from \"../internal.js\";\nimport { encode } from \"./shared.js\";\nimport { CurlError, type HttpResponse } from \"./types.js\";\n\nexport function responseHeaders(response: HttpResponse, maxBytes: number): Uint8Array {\n if (!Number.isInteger(response.status) || response.status < 100 || response.status > 599 || /[\\r\\n]/.test(response.statusText)) {\n throw new CurlError(56, \"Invalid HTTP response status\");\n }\n const version = response.httpVersion ?? \"1.1\";\n if (!/^\\d(?:\\.\\d)?$/.test(version)) throw new CurlError(56, \"Invalid HTTP response version\");\n let text = `HTTP/${version} ${response.status} ${response.statusText}\\r\\n`;\n for (const [name, value] of response.headers) {\n if (!/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/.test(name) || /[\\r\\n\\0]/.test(value)) throw new CurlError(56, \"Invalid HTTP response header\");\n text += `${name}: ${value}\\r\\n`;\n if (Buffer.byteLength(text, \"latin1\") > maxBytes) throw new CurlError(63, \"Response headers exceed host byte limit\");\n }\n return new Uint8Array(Buffer.from(`${text}\\r\\n`, \"latin1\"));\n}\n\nexport async function writeOutput(context: CommandContext, path: string | undefined, source: ByteSource, signal: AbortSignal): Promise<void> {\n if (path === undefined || path === \"-\") {\n try {\n for await (const chunk of readBytes(source, signal)) {\n try { await writeBytes(context.stdout, chunk, signal); }\n catch { signal.throwIfAborted(); throw new CurlError(23, \"Failed writing output\"); }\n }\n } catch (error) {\n await context.stdout[outputFailure]?.(error);\n throw error;\n }\n return;\n }\n try {\n const target = await openFileOutput({ ...context, signal }, pathOf(context, path), \"w\");\n try {\n for await (const chunk of readBytes(source, target.signal)) await target.sink.write(chunk);\n await target.finish();\n } catch (error) { await target.abort(error); throw error; }\n } catch (error) {\n signal.throwIfAborted();\n if (error instanceof CurlError) throw error;\n throw new CurlError(23, error instanceof FsError ? `Failed writing virtual output file: ${error.message}` : \"Failed writing virtual output file\");\n }\n}\n\nexport async function dumpHeaders(context: CommandContext, path: string, bytes: Uint8Array, append: boolean, signal: AbortSignal): Promise<void> {\n try {\n if (path === \"-\") await writeBytes(context.stdout, bytes, signal);\n else {\n const target = await openFileOutput({ ...context, signal }, pathOf(context, path), append ? \"a\" : \"w\");\n try { await target.sink.write(bytes); await target.finish(); }\n catch (error) { await target.abort(error); throw error; }\n }\n } catch {\n signal.throwIfAborted();\n throw new CurlError(23, \"Failed writing response headers\");\n }\n}\n\nexport function writeOutFormat(format: string, values: Readonly<Record<string, string>>): Uint8Array {\n let result = \"\";\n for (let index = 0; index < format.length; index++) {\n const character = format[index]!;\n if (character === \"\\\\\") {\n const next = format[++index];\n result += next === \"n\" ? \"\\n\" : next === \"r\" ? \"\\r\" : next === \"t\" ? \"\\t\" : next === undefined ? \"\\\\\" : `\\\\${next}`;\n } else if (character === \"%\" && format[index + 1] === \"%\") { result += \"%\"; index++; }\n else if (character === \"%\" && format[index + 1] === \"{\") {\n const end = format.indexOf(\"}\", index + 2);\n if (end < 0) throw new CurlError(2, \"Invalid write-out format\");\n const name = format.slice(index + 2, end);\n if (!Object.hasOwn(values, name)) throw new CurlError(2, \"Unsupported write-out variable\");\n result += values[name]; index = end;\n } else result += character;\n }\n return encode(result);\n}\n", "import { type ByteSource } from \"../../contracts/index.js\";\nimport { CurlError, type HttpTransport } from \"./types.js\";\n\nexport interface FetchTransportOptions {\n readonly fetch?: typeof globalThis.fetch;\n}\n\nfunction requestBody(source: ByteSource | undefined, signal: AbortSignal): ReadableStream<Uint8Array> | undefined {\n if (!source) return undefined;\n const iterator = source[Symbol.asyncIterator]();\n return new ReadableStream<Uint8Array>({\n async pull(controller) {\n try {\n signal.throwIfAborted();\n const next = await iterator.next();\n if (next.done) controller.close();\n else controller.enqueue(next.value);\n } catch (error) { controller.error(error); }\n },\n async cancel(reason) { await iterator.return?.(reason); },\n });\n}\n\nexport function createFetchTransport(options: FetchTransportOptions = {}): HttpTransport {\n const fetchRequest = options.fetch ?? globalThis.fetch;\n if (typeof fetchRequest !== \"function\") throw new TypeError(\"Fetch is unavailable\");\n return async input => {\n input.signal.throwIfAborted();\n const url = new URL(input.url);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") throw new CurlError(1, \"Unsupported protocol\");\n if (input.denyPrivateNetworks === true) throw new CurlError(7, \"Fetch transport cannot enforce private-network denial\");\n const stopped = new AbortController();\n const signal = AbortSignal.any([input.signal, stopped.signal]);\n const body = requestBody(input.body, signal);\n const headers = new Headers();\n for (const [name, value] of input.headers) headers.append(name, value);\n const request = new Request(url, {\n method: input.method,\n headers,\n body,\n credentials: \"omit\",\n redirect: \"manual\",\n signal,\n ...(body ? { duplex: \"half\" } : {}),\n } as RequestInit & { duplex?: \"half\" });\n // Cleanup must be registered before the request settles, so assignment happens afterward.\n // eslint-disable-next-line prefer-const\n let response: Response | undefined;\n const dispose = async (): Promise<void> => {\n stopped.abort();\n if (response?.body) await response.body.cancel().catch(() => undefined);\n };\n input.registerCleanup?.(dispose);\n response = await fetchRequest(request);\n const reader = response.body?.getReader();\n const responseBody: ByteSource = reader ? (async function* () {\n try {\n while (true) {\n input.signal.throwIfAborted();\n const next = await reader.read();\n if (next.done) return;\n yield next.value;\n }\n } finally { reader.releaseLock(); }\n })() : (async function* () {})();\n return {\n status: response.status,\n statusText: response.statusText,\n headers: [...response.headers.entries()],\n body: responseBody,\n dispose,\n };\n };\n}\n", "import type { NetworkAuthorizer } from \"./types.js\";\nimport { privateHostname } from \"./private-address.js\";\n\nexport type OriginAllowlist = \"*\" | readonly string[];\n\nexport interface OriginAuthorizerOptions {\n readonly denyPrivateNetworks?: boolean;\n}\n\nexport function createOriginAuthorizer(allowlist: OriginAllowlist = \"*\", options: OriginAuthorizerOptions = {}): NetworkAuthorizer {\n const denyPrivateNetworks = options.denyPrivateNetworks === true;\n const origins = new Set<string>();\n const hosts = new Set<string>();\n for (const entry of allowlist === \"*\" ? [] : allowlist) {\n const value = entry.trim();\n if (!value) throw new TypeError(\"Origin allowlist entries must not be empty\");\n if (value.includes(\"://\")) {\n const url = new URL(value);\n if (url.pathname !== \"/\" || url.search || url.hash || url.username || url.password) {\n throw new TypeError(`Origin allowlist entry must be an origin: ${entry}`);\n }\n origins.add(url.origin);\n } else {\n if (value.includes(\"/\") || value.includes(\"@\")) throw new TypeError(`Invalid hostname allowlist entry: ${entry}`);\n hosts.add(value.toLowerCase().replace(/\\.$/u, \"\"));\n }\n }\n return request => {\n const url = new URL(request.url);\n const hostname = url.hostname.toLowerCase().replace(/\\.$/u, \"\");\n if (denyPrivateNetworks) {\n request.requirePrivateNetworkDeny?.();\n if (privateHostname(hostname)) return false;\n }\n return allowlist === \"*\" || origins.has(url.origin) || hosts.has(hostname);\n };\n}\n", "function privateIPv4(first: number, second: number): boolean {\n return first === 10 || first === 127 || first === 0 ||\n first === 169 && second === 254 || first === 192 && second === 168 ||\n first === 172 && second >= 16 && second <= 31 ||\n first === 100 && second >= 64 && second <= 127 ||\n first === 198 && second >= 18 && second <= 19 || first >= 224;\n}\n\nexport function privateHostname(input: string): boolean {\n const hostname = input.toLowerCase().replace(/\\.$/u, \"\").replace(/^\\[|\\]$/gu, \"\");\n if (hostname === \"localhost\" || hostname.endsWith(\".localhost\") || hostname === \"::1\") return true;\n if (hostname.includes(\":\")) {\n const [prefix, suffix] = hostname.split(\"::\");\n const leading = prefix ? prefix.split(\":\") : [];\n const trailing = suffix ? suffix.split(\":\") : [];\n const hextets = new Array<number>(8).fill(0);\n for (let index = 0; index < leading.length; index++) hextets[index] = Number.parseInt(leading[index]!, 16);\n for (let index = 0; index < trailing.length; index++) hextets[8 - trailing.length + index] = Number.parseInt(trailing[index]!, 16);\n if (hextets.every(value => value === 0)) return true;\n const mappedIPv4 = hextets.slice(0, 5).every(value => value === 0) && hextets[5] === 0xffff;\n const translatedIPv4 = hextets.slice(0, 4).every(value => value === 0) && hextets[4] === 0xffff && hextets[5] === 0;\n const nat64IPv4 = hextets[0] === 0x64 && hextets[1] === 0xff9b && hextets.slice(2, 6).every(value => value === 0);\n const compatibleIPv4 = hextets.slice(0, 6).every(value => value === 0);\n if (mappedIPv4 || translatedIPv4 || nat64IPv4 || compatibleIPv4) {\n return privateIPv4(hextets[6]! >>> 8, hextets[6]! & 255);\n }\n if (hextets[0] === 0x2002) return privateIPv4(hextets[1]! >>> 8, hextets[1]! & 255);\n return (hextets[0]! & 0xfe00) === 0xfc00 || (hextets[0]! & 0xffc0) === 0xfe80 ||\n (hextets[0]! & 0xffc0) === 0xfec0 || (hextets[0]! & 0xff00) === 0xff00 ||\n hextets[0] === 0x64 && hextets[1] === 0xff9b && hextets[2] === 1;\n }\n const parts = hostname.split(\".\");\n if (parts.length !== 4 || parts.some(part => !part || Array.from(part).some(character => character < \"0\" || character > \"9\"))) return false;\n const octets = parts.map(Number);\n if (octets.some(value => value < 0 || value > 255)) return false;\n const [first, second] = octets as [number, number, number, number];\n return privateIPv4(first, second);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_buffer", "values", "values", "parsed", "number", "flag"]
7
+ }