@poe-platform/safe-bash 0.1.615 → 0.1.616

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.
@@ -1,6 +1,7 @@
1
1
  import { collectBytes, dirname, getCommandArguments, writeBytes } from "../../contracts/index.js";
2
2
  import { shellValueByteLength, shellValueBytes } from "../../contracts/value.js";
3
3
  import { writeFileOutput } from "../../contracts/filesystem-output.js";
4
+ import { createOutputOperation } from "../../contracts/output.js";
4
5
  import { yieldTurn } from "../../contracts/yield.js";
5
6
  import { publicDiagnosticMessage } from "../../diagnostics.js";
6
7
  import { escapeText } from "../../escaping.js";
@@ -158,16 +159,19 @@ async function parse(scope, limits) {
158
159
  operands.push(argument);
159
160
  }
160
161
  }
161
- if (archive === undefined)
162
- throw new ZipFailure(16, "Invalid command arguments", "expected zip [-r] [-q] [-j] [-@] [-0..-9] ARCHIVE FILES... [-i PATTERNS...] [-x PATTERNS...]");
163
- if (archive === "-" || operands.includes("-"))
164
- throw new ZipFailure(16, "Invalid command arguments", "standard input/output archives are unsupported");
165
- if (!archive.slice(archive.lastIndexOf("/") + 1).includes("."))
162
+ if (archive === undefined) {
163
+ if (action !== "add")
164
+ throw new ZipFailure(16, "Invalid command arguments", "expected archive name");
165
+ archive = "-";
166
+ if (!stdinNames)
167
+ operands.push("-");
168
+ }
169
+ if (archive !== "-" && !archive.slice(archive.lastIndexOf("/") + 1).includes("."))
166
170
  archive += ".zip";
167
171
  checkPath(archive, limits);
168
172
  const names = [];
169
173
  if (stdinNames) {
170
- const input = await collectBytes(scope.source(context.stdin), { maxBytes: limits.maxFilesFromBytes, signal: context.signal });
174
+ const input = await collectBytes(scope.stdin, { maxBytes: limits.maxFilesFromBytes, signal: context.signal });
171
175
  let start = 0;
172
176
  let lines = 0;
173
177
  for (let end = 0; end <= input.length; end++) {
@@ -242,24 +246,34 @@ async function filterName(name, selection, includeCount) {
242
246
  async function prepare(scope, parsed, budget) {
243
247
  const context = scope.context;
244
248
  const limits = budget.limits;
245
- const outputName = vfsPath(context.cwd, parsed.archive);
246
- const parentName = dirname(outputName);
247
- const parent = await scope.operation(() => context.fs.realpath(parentName, { signal: context.signal }));
248
- const parentStat = await scope.operation(() => context.fs.lstat(parent, { signal: context.signal }));
249
- const output = `${parent === "/" ? "" : parent}/${outputName.slice(outputName.lastIndexOf("/") + 1)}`;
250
- checkPath(output, limits);
251
- const existing = await scope.stat(output);
249
+ if (parsed.archive === "-" && parsed.action !== "add")
250
+ throw new ZipFailure(16, "Invalid command arguments", "can't use -d, -f, -u, -U, or -g on stdout\n");
251
+ let publication;
252
+ if (parsed.archive !== "-") {
253
+ const outputName = vfsPath(context.cwd, parsed.archive);
254
+ const parentName = dirname(outputName);
255
+ const parent = await scope.operation(() => context.fs.realpath(parentName, { signal: context.signal }));
256
+ const parentStat = await scope.operation(() => context.fs.lstat(parent, { signal: context.signal }));
257
+ const output = `${parent === "/" ? "" : parent}/${outputName.slice(outputName.lastIndexOf("/") + 1)}`;
258
+ checkPath(output, limits);
259
+ const existing = await scope.stat(output);
260
+ publication = { output, parentName, parent, parentStat, existing };
261
+ }
262
+ const output = publication?.output;
263
+ const existing = publication?.existing;
264
+ if (parsed.archive === "-" && parsed.test && !parsed.quiet)
265
+ await budget.output("\tzip warning: can't use -T on stdout, -T ignored\n");
252
266
  if (existing && (existing.type !== "file" || !hasIdentity(existing) || existing.nlink !== 1))
253
267
  fail("updating archive requires a regular, single-link file with known backing identity; archive aliases are unsupported");
254
268
  let archive = { entries: [], comment: new Uint8Array() };
255
- if (existing) {
269
+ if (existing && publication) {
256
270
  if (!Number.isSafeInteger(existing.size) || existing.size < 0 || existing.size > limits.maxArchiveBytes)
257
271
  fail("archive byte limit exceeded");
258
- const bytes = await collectBytes(scope.input(output), { maxBytes: limits.maxArchiveBytes, signal: context.signal });
272
+ const bytes = await collectBytes(scope.input(publication.output), { maxBytes: limits.maxArchiveBytes, signal: context.signal });
259
273
  if (bytes.length !== existing.size)
260
274
  fail("archive changed while reading");
261
275
  archive = await readZipArchive(bytes, limits, context.signal);
262
- const current = await scope.stat(output);
276
+ const current = await scope.stat(publication.output);
263
277
  if (!current || !unchanged(existing, current))
264
278
  fail("archive changed while reading");
265
279
  }
@@ -273,6 +287,20 @@ async function prepare(scope, parsed, budget) {
273
287
  let visits = 0;
274
288
  let work = 0;
275
289
  let compressedBytes = 0;
290
+ const encodeSelected = async (source, name, bytes, attributes) => {
291
+ const store = parsed.method === "store" || parsed.level !== 9 && parsed.suffixes.some(suffix => name.endsWith(suffix));
292
+ if (!store && parsed.level === 0 && bytes.length && !attributes.directory && !attributes.symlink)
293
+ throw new ZipFailure(5, "Internal logic error", "bad pack level");
294
+ const level = store ? 0 : parsed.level;
295
+ let entry = await makeZipEntry(name, bytes, attributes, limits, context.signal, level, parsed.archive === "-" && !store);
296
+ const prior = old.get(name);
297
+ if (prior?.comment)
298
+ entry = { ...entry, comment: prior.comment };
299
+ if (entry.data.length > limits.maxArchiveBytes - compressedBytes)
300
+ fail("archive byte limit exceeded");
301
+ compressedBytes += entry.data.length;
302
+ selected.set(name, { entry, source });
303
+ };
276
304
  const visit = async (source, name, depth) => {
277
305
  context.signal.throwIfAborted();
278
306
  if (++visits > limits.maxMembers)
@@ -283,6 +311,21 @@ async function prepare(scope, parsed, budget) {
283
311
  await yieldTurn(context.signal);
284
312
  if (depth > limits.maxDepth)
285
313
  fail("archive recursion depth limit exceeded");
314
+ if (source === "-") {
315
+ const previous = selected.get(name);
316
+ if (previous && previous.source !== source)
317
+ throw new ZipFailure(16, "Invalid command arguments", "cannot repeat names in zip file");
318
+ if (previous || !await filterName(name, selection, parsed.includes.length))
319
+ return;
320
+ const prior = old.get(name);
321
+ const modified = new Date();
322
+ if (parsed.action === "freshen" && !prior || prior && (parsed.action === "update" || parsed.action === "freshen") && Math.floor(modified.getTime() / 1000) <= Math.floor(prior.modified.getTime() / 1000))
323
+ return;
324
+ const bytes = await collectBytes(scope.stdin, { maxBytes: Math.min(limits.maxEntryBytes, limits.maxTotalBytes - budget.totalBytes), signal: context.signal });
325
+ await budget.member(bytes.length);
326
+ await encodeSelected(source, name, bytes, { modified, mode: 0o010660, directory: false, symlink: false });
327
+ return;
328
+ }
286
329
  const path = vfsPath(context.cwd, source);
287
330
  checkPath(path, limits);
288
331
  let canonical;
@@ -347,17 +390,7 @@ async function prepare(scope, parsed, budget) {
347
390
  const current = await inspectSource(scope, path, parsed.storeLinks);
348
391
  if (current.canonical !== canonical || !unchanged(stat, current.stat))
349
392
  fail(`source changed while reading: ${source}`);
350
- const store = parsed.method === "store" || parsed.level !== 9 && parsed.suffixes.some(suffix => name.endsWith(suffix));
351
- if (!store && parsed.level === 0 && stat.size && !directory && !symlink)
352
- throw new ZipFailure(5, "Internal logic error", "bad pack level");
353
- const level = store ? 0 : parsed.level;
354
- let entry = await makeZipEntry(name, bytes, { modified: new Date(stat.mtimeMs), mode: stat.mode, directory, symlink }, limits, context.signal, level);
355
- if (prior?.comment)
356
- entry = { ...entry, comment: prior.comment };
357
- if (entry.data.length > limits.maxArchiveBytes - compressedBytes)
358
- fail("archive byte limit exceeded");
359
- compressedBytes += entry.data.length;
360
- selected.set(name, { entry, source });
393
+ await encodeSelected(source, name, bytes, { modified: new Date(stat.mtimeMs), mode: stat.mode, directory, symlink });
361
394
  }
362
395
  }
363
396
  if (directory && parsed.recursive) {
@@ -452,8 +485,8 @@ async function prepare(scope, parsed, budget) {
452
485
  }
453
486
  if (!entries.length)
454
487
  queue("\tzip warning: zip file empty\n");
455
- const bytes = await writeZipArchive({ entries, comment: archive.comment }, limits, context.signal);
456
- if (parsed.test) {
488
+ const bytes = await writeZipArchive({ entries, comment: archive.comment }, limits, context.signal, parsed.archive === "-");
489
+ if (parsed.test && parsed.archive !== "-") {
457
490
  for (const message of progress)
458
491
  await budget.output(message);
459
492
  progress.length = 0;
@@ -481,7 +514,7 @@ async function prepare(scope, parsed, budget) {
481
514
  queue(`test of ${parsed.archive} OK\n`);
482
515
  }
483
516
  }
484
- return { output, parentName, parent, parentStat, existing, bytes, progress };
517
+ return { publication, bytes, progress };
485
518
  }
486
519
  export function createZipCommand(options = {}) {
487
520
  const limits = settings(options);
@@ -489,15 +522,31 @@ export function createZipCommand(options = {}) {
489
522
  original.signal.throwIfAborted();
490
523
  const scope = new ZipScope(original, limits);
491
524
  const context = scope.context;
492
- const budget = new Budget(context, limits);
525
+ let budget = new Budget(context, limits);
493
526
  try {
494
527
  const parsed = await parse(scope, limits);
528
+ if (parsed.archive === "-")
529
+ budget = new Budget({ ...context, stdout: context.stderr }, limits);
495
530
  const prepared = await prepare(scope, parsed, budget);
496
531
  if (!prepared)
497
532
  return { exitCode: 12 };
498
- await writeFileOutput(context, prepared.bytes, () => scope.operation(() => publishZip(scope, prepared)));
499
- for (const message of prepared.progress)
500
- await budget.output(message);
533
+ const publication = prepared.publication;
534
+ if (publication) {
535
+ await writeFileOutput(context, prepared.bytes, () => scope.operation(() => publishZip(scope, { ...publication, bytes: prepared.bytes })));
536
+ for (const message of prepared.progress)
537
+ await budget.output(message);
538
+ }
539
+ else {
540
+ for (const message of prepared.progress)
541
+ await budget.output(message);
542
+ const output = createOutputOperation(context, context.stdout);
543
+ try {
544
+ await writeBytes(output.output, prepared.bytes, output.signal);
545
+ }
546
+ finally {
547
+ await output.close();
548
+ }
549
+ }
501
550
  return { exitCode: 0 };
502
551
  }
503
552
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/commands/archive/zip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/commands/archive/zip.ts"],"names":[],"mappings":"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"}
@@ -26729,7 +26729,8 @@ function entryBounds(entry, limits) {
26729
26729
  format(entry.method, entry.flags ?? 2048, entry.method === 8 || (entry.flags ?? 0) & 8 ? 20 : 10);
26730
26730
  if (entry.directory !== entry.name.endsWith("/") || entry.directory && (entry.symlink || entry.size !== 0)) fail("ZIP inconsistent directory metadata");
26731
26731
  const type = entry.mode & 61440;
26732
- if (type !== 0 && type !== (entry.directory ? 16384 : entry.symlink ? 40960 : 32768)) fail("ZIP unsupported or conflicting file type");
26732
+ const pipePayload = !entry.directory && !entry.symlink && type === 4096;
26733
+ if (type !== 0 && !pipePayload && type !== (entry.directory ? 16384 : entry.symlink ? 40960 : 32768)) fail("ZIP unsupported or conflicting file type");
26733
26734
  if (!Number.isFinite(entry.modified.getTime())) fail("ZIP invalid modification time");
26734
26735
  }
26735
26736
  async function copyBytes(source2, destination2, start, chunkSize2, signal) {
@@ -26896,7 +26897,7 @@ async function* decodeZipEntry(entry, limits, signal) {
26896
26897
  await reader.close();
26897
26898
  }
26898
26899
  }
26899
- async function makeZipEntry(name2, bytes3, attributes, limits, signal, level = 6) {
26900
+ async function makeZipEntry(name2, bytes3, attributes, limits, signal, level = 6, forceCompression = false) {
26900
26901
  const chunkSize2 = admit(limits, signal);
26901
26902
  const entry = { name: name2, data: bytes3, size: bytes3.length, method: 0, crc32: 0, ...attributes, modified: new Date(attributes.modified.getTime()) };
26902
26903
  entryBounds(entry, limits);
@@ -26908,15 +26909,16 @@ async function makeZipEntry(name2, bytes3, attributes, limits, signal, level = 6
26908
26909
  yield bytes3;
26909
26910
  })(), signal);
26910
26911
  try {
26911
- if (level !== 0 && bytes3.length && !entry.directory && !entry.symlink) {
26912
+ if (level !== 0 && (bytes3.length || forceCompression) && !entry.directory && !entry.symlink) {
26912
26913
  const chunks = [];
26913
26914
  let length = 0;
26914
26915
  for await (const chunk of codec(reader, { mode: "deflate-raw", chunkSize: chunkSize2, level }, signal)) {
26915
26916
  length += chunk.length;
26916
- if (length >= bytes3.length) break;
26917
+ if (length > limits.maxArchiveBytes) fail("ZIP compressed byte limit exceeded");
26918
+ if (!forceCompression && length >= bytes3.length) break;
26917
26919
  chunks.push(new Uint8Array(chunk));
26918
26920
  }
26919
- if (length < bytes3.length) {
26921
+ if (forceCompression || length < bytes3.length) {
26920
26922
  entry.data = new Uint8Array(length);
26921
26923
  let offset = 0;
26922
26924
  for (const chunk of chunks) {
@@ -26946,7 +26948,7 @@ function timestampExtra(modified) {
26946
26948
  view.setInt32(5, seconds, true);
26947
26949
  return bytes3;
26948
26950
  }
26949
- async function writeZipArchive(archive, limits, signal) {
26951
+ async function writeZipArchive(archive, limits, signal, descriptors = false) {
26950
26952
  const chunkSize2 = admit(limits, signal);
26951
26953
  number3(archive.entries.length, Math.min(limits.maxMembers, 65534), "member");
26952
26954
  number3(archive.comment.length, Math.min(limits.maxTextBytes, 65535), "archive comment");
@@ -26961,7 +26963,8 @@ async function writeZipArchive(archive, limits, signal) {
26961
26963
  total += entry.size;
26962
26964
  number3(total, limits.maxTotalBytes, "total byte");
26963
26965
  const rawName = entry.rawName ?? pathBytes(entry.name, limits);
26964
- const flags3 = (entry.flags ?? 2048) & ~8;
26966
+ const descriptor = descriptors && !entry.directory;
26967
+ const flags3 = (entry.flags ?? 2048) & ~8 | (descriptor ? 8 : 0);
26965
26968
  const comment2 = entry.comment ?? new Uint8Array();
26966
26969
  number3(comment2.length, Math.min(limits.maxTextBytes, 65535), "entry comment");
26967
26970
  if (flags3 & 2048) text2(comment2);
@@ -26989,8 +26992,8 @@ async function writeZipArchive(archive, limits, signal) {
26989
26992
  if (mode !== entry.mode || Boolean(entry.externalAttributes & 16) && !entry.directory) fail("ZIP retained file attributes mismatch");
26990
26993
  }
26991
26994
  encoded2.push({ entry, rawName, flags: flags3, localExtra, centralExtra, comment: comment2, date: date2, time, offset: localLength });
26992
- localLength += 30 + rawName.length + localExtra.length + entry.data.length;
26993
- length += 76 + 2 * rawName.length + localExtra.length + centralExtra.length + comment2.length + entry.data.length;
26995
+ localLength += 30 + rawName.length + localExtra.length + entry.data.length + (descriptor ? 16 : 0);
26996
+ length += 76 + 2 * rawName.length + localExtra.length + centralExtra.length + comment2.length + entry.data.length + (descriptor ? 16 : 0);
26994
26997
  number3(length, Math.min(limits.maxArchiveBytes, 4294967294), "archive byte");
26995
26998
  }
26996
26999
  number3(length, Math.min(limits.maxArchiveBytes, 4294967294), "archive byte");
@@ -27000,21 +27003,28 @@ async function writeZipArchive(archive, limits, signal) {
27000
27003
  for (const item of encoded2) {
27001
27004
  await yieldTurn(signal);
27002
27005
  const { entry, rawName, flags: flags3, localExtra, centralExtra, comment: comment2, date: date2, time, offset } = item;
27003
- const version = entry.method === 8 ? 20 : 10;
27006
+ const version = entry.method === 8 || flags3 & 8 ? 20 : 10;
27004
27007
  view.setUint32(offset, 67324752, true);
27005
27008
  view.setUint16(offset + 4, version, true);
27006
27009
  view.setUint16(offset + 6, flags3, true);
27007
27010
  view.setUint16(offset + 8, entry.method, true);
27008
27011
  view.setUint16(offset + 10, time, true);
27009
27012
  view.setUint16(offset + 12, date2, true);
27010
- view.setUint32(offset + 14, entry.crc32, true);
27011
- view.setUint32(offset + 18, entry.data.length, true);
27012
- view.setUint32(offset + 22, entry.size, true);
27013
+ view.setUint32(offset + 14, flags3 & 8 ? 0 : entry.crc32, true);
27014
+ view.setUint32(offset + 18, flags3 & 8 ? 0 : entry.data.length, true);
27015
+ view.setUint32(offset + 22, flags3 & 8 ? 0 : entry.size, true);
27013
27016
  view.setUint16(offset + 26, rawName.length, true);
27014
27017
  view.setUint16(offset + 28, localExtra.length, true);
27015
27018
  bytes3.set(rawName, offset + 30);
27016
27019
  bytes3.set(localExtra, offset + 30 + rawName.length);
27017
27020
  await copyBytes(entry.data, bytes3, offset + 30 + rawName.length + localExtra.length, chunkSize2, signal);
27021
+ if (flags3 & 8) {
27022
+ const descriptor = offset + 30 + rawName.length + localExtra.length + entry.data.length;
27023
+ view.setUint32(descriptor, 134695760, true);
27024
+ view.setUint32(descriptor + 4, entry.crc32, true);
27025
+ view.setUint32(descriptor + 8, entry.data.length, true);
27026
+ view.setUint32(descriptor + 12, entry.size, true);
27027
+ }
27018
27028
  view.setUint32(central, 33639248, true);
27019
27029
  view.setUint16(central + 4, entry.versionMadeBy ?? 798, true);
27020
27030
  view.setUint16(central + 6, version, true);
@@ -27029,7 +27039,8 @@ async function writeZipArchive(archive, limits, signal) {
27029
27039
  view.setUint16(central + 30, centralExtra.length, true);
27030
27040
  view.setUint16(central + 32, comment2.length, true);
27031
27041
  view.setUint16(central + 36, entry.internalAttributes ?? 0, true);
27032
- view.setUint32(central + 38, entry.externalAttributes ?? (entry.mode | (entry.directory ? 16384 : entry.symlink ? 40960 : 32768)) * 65536 + (entry.directory ? 16 : 0), true);
27042
+ const mode = entry.mode & 61440 ? entry.mode : entry.mode | (entry.directory ? 16384 : entry.symlink ? 40960 : 32768);
27043
+ view.setUint32(central + 38, entry.externalAttributes ?? mode * 65536 + (entry.directory ? 16 : 0), true);
27033
27044
  view.setUint32(central + 42, offset, true);
27034
27045
  bytes3.set(rawName, central + 46);
27035
27046
  bytes3.set(centralExtra, central + 46 + rawName.length);
@@ -27066,6 +27077,7 @@ var ZipScope = class {
27066
27077
  closedReason = new Error("ZIP command is closed");
27067
27078
  drain;
27068
27079
  work = 0;
27080
+ stdinSource;
27069
27081
  close = () => {
27070
27082
  if (!this.drain) {
27071
27083
  this.drain = Promise.resolve().then(async () => {
@@ -27104,6 +27116,9 @@ var ZipScope = class {
27104
27116
  throw error;
27105
27117
  }
27106
27118
  }
27119
+ get stdin() {
27120
+ return this.stdinSource ??= this.source(this.original.stdin);
27121
+ }
27107
27122
  source(source2) {
27108
27123
  const iterator = source2[Symbol.asyncIterator]();
27109
27124
  let closing;
@@ -27602,13 +27617,16 @@ async function parse12(scope, limits) {
27602
27617
  operands.push(argument2);
27603
27618
  }
27604
27619
  }
27605
- if (archive === void 0) throw new ZipFailure(16, "Invalid command arguments", "expected zip [-r] [-q] [-j] [-@] [-0..-9] ARCHIVE FILES... [-i PATTERNS...] [-x PATTERNS...]");
27606
- if (archive === "-" || operands.includes("-")) throw new ZipFailure(16, "Invalid command arguments", "standard input/output archives are unsupported");
27607
- if (!archive.slice(archive.lastIndexOf("/") + 1).includes(".")) archive += ".zip";
27620
+ if (archive === void 0) {
27621
+ if (action !== "add") throw new ZipFailure(16, "Invalid command arguments", "expected archive name");
27622
+ archive = "-";
27623
+ if (!stdinNames) operands.push("-");
27624
+ }
27625
+ if (archive !== "-" && !archive.slice(archive.lastIndexOf("/") + 1).includes(".")) archive += ".zip";
27608
27626
  checkPath(archive, limits);
27609
27627
  const names = [];
27610
27628
  if (stdinNames) {
27611
- const input3 = await collectBytes(scope.source(context2.stdin), { maxBytes: limits.maxFilesFromBytes, signal: context2.signal });
27629
+ const input3 = await collectBytes(scope.stdin, { maxBytes: limits.maxFilesFromBytes, signal: context2.signal });
27612
27630
  let start = 0;
27613
27631
  let lines3 = 0;
27614
27632
  for (let end = 0; end <= input3.length; end++) {
@@ -27669,21 +27687,29 @@ async function filterName(name2, selection, includeCount) {
27669
27687
  async function prepare(scope, parsed, budget) {
27670
27688
  const context2 = scope.context;
27671
27689
  const limits = budget.limits;
27672
- const outputName = vfsPath(context2.cwd, parsed.archive);
27673
- const parentName = dirname(outputName);
27674
- const parent = await scope.operation(() => context2.fs.realpath(parentName, { signal: context2.signal }));
27675
- const parentStat = await scope.operation(() => context2.fs.lstat(parent, { signal: context2.signal }));
27676
- const output2 = `${parent === "/" ? "" : parent}/${outputName.slice(outputName.lastIndexOf("/") + 1)}`;
27677
- checkPath(output2, limits);
27678
- const existing2 = await scope.stat(output2);
27690
+ if (parsed.archive === "-" && parsed.action !== "add") throw new ZipFailure(16, "Invalid command arguments", "can't use -d, -f, -u, -U, or -g on stdout\n");
27691
+ let publication;
27692
+ if (parsed.archive !== "-") {
27693
+ const outputName = vfsPath(context2.cwd, parsed.archive);
27694
+ const parentName = dirname(outputName);
27695
+ const parent = await scope.operation(() => context2.fs.realpath(parentName, { signal: context2.signal }));
27696
+ const parentStat = await scope.operation(() => context2.fs.lstat(parent, { signal: context2.signal }));
27697
+ const output3 = `${parent === "/" ? "" : parent}/${outputName.slice(outputName.lastIndexOf("/") + 1)}`;
27698
+ checkPath(output3, limits);
27699
+ const existing3 = await scope.stat(output3);
27700
+ publication = { output: output3, parentName, parent, parentStat, existing: existing3 };
27701
+ }
27702
+ const output2 = publication?.output;
27703
+ const existing2 = publication?.existing;
27704
+ if (parsed.archive === "-" && parsed.test && !parsed.quiet) await budget.output(" zip warning: can't use -T on stdout, -T ignored\n");
27679
27705
  if (existing2 && (existing2.type !== "file" || !hasIdentity(existing2) || existing2.nlink !== 1)) fail("updating archive requires a regular, single-link file with known backing identity; archive aliases are unsupported");
27680
27706
  let archive = { entries: [], comment: new Uint8Array() };
27681
- if (existing2) {
27707
+ if (existing2 && publication) {
27682
27708
  if (!Number.isSafeInteger(existing2.size) || existing2.size < 0 || existing2.size > limits.maxArchiveBytes) fail("archive byte limit exceeded");
27683
- const bytes4 = await collectBytes(scope.input(output2), { maxBytes: limits.maxArchiveBytes, signal: context2.signal });
27709
+ const bytes4 = await collectBytes(scope.input(publication.output), { maxBytes: limits.maxArchiveBytes, signal: context2.signal });
27684
27710
  if (bytes4.length !== existing2.size) fail("archive changed while reading");
27685
27711
  archive = await readZipArchive(bytes4, limits, context2.signal);
27686
- const current = await scope.stat(output2);
27712
+ const current = await scope.stat(publication.output);
27687
27713
  if (!current || !unchanged4(existing2, current)) fail("archive changed while reading");
27688
27714
  }
27689
27715
  const old = new Map(archive.entries.map((entry) => [entry.name, entry]));
@@ -27696,12 +27722,35 @@ async function prepare(scope, parsed, budget) {
27696
27722
  let visits = 0;
27697
27723
  let work = 0;
27698
27724
  let compressedBytes = 0;
27725
+ const encodeSelected = async (source2, name2, bytes4, attributes) => {
27726
+ const store = parsed.method === "store" || parsed.level !== 9 && parsed.suffixes.some((suffix2) => name2.endsWith(suffix2));
27727
+ if (!store && parsed.level === 0 && bytes4.length && !attributes.directory && !attributes.symlink) throw new ZipFailure(5, "Internal logic error", "bad pack level");
27728
+ const level = store ? 0 : parsed.level;
27729
+ let entry = await makeZipEntry(name2, bytes4, attributes, limits, context2.signal, level, parsed.archive === "-" && !store);
27730
+ const prior = old.get(name2);
27731
+ if (prior?.comment) entry = { ...entry, comment: prior.comment };
27732
+ if (entry.data.length > limits.maxArchiveBytes - compressedBytes) fail("archive byte limit exceeded");
27733
+ compressedBytes += entry.data.length;
27734
+ selected.set(name2, { entry, source: source2 });
27735
+ };
27699
27736
  const visit = async (source2, name2, depth) => {
27700
27737
  context2.signal.throwIfAborted();
27701
27738
  if (++visits > limits.maxMembers) fail("traversal member limit exceeded");
27702
27739
  if (++work > limits.maxPatternSteps) fail("archive work limit exceeded");
27703
27740
  if (visits % 128 === 0) await yieldTurn(context2.signal);
27704
27741
  if (depth > limits.maxDepth) fail("archive recursion depth limit exceeded");
27742
+ if (source2 === "-") {
27743
+ const previous = selected.get(name2);
27744
+ if (previous && previous.source !== source2) throw new ZipFailure(16, "Invalid command arguments", "cannot repeat names in zip file");
27745
+ if (previous || !await filterName(name2, selection, parsed.includes.length)) return;
27746
+ const prior2 = old.get(name2);
27747
+ const modified = /* @__PURE__ */ new Date();
27748
+ if (parsed.action === "freshen" && !prior2 || prior2 && (parsed.action === "update" || parsed.action === "freshen") && Math.floor(modified.getTime() / 1e3) <= Math.floor(prior2.modified.getTime() / 1e3)) return;
27749
+ const bytes4 = await collectBytes(scope.stdin, { maxBytes: Math.min(limits.maxEntryBytes, limits.maxTotalBytes - budget.totalBytes), signal: context2.signal });
27750
+ await budget.member(bytes4.length);
27751
+ await encodeSelected(source2, name2, bytes4, { modified, mode: 4528, directory: false, symlink: false });
27752
+ return;
27753
+ }
27705
27754
  const path = vfsPath(context2.cwd, source2);
27706
27755
  checkPath(path, limits);
27707
27756
  let canonical;
@@ -27754,14 +27803,7 @@ async function prepare(scope, parsed, budget) {
27754
27803
  if (!directory2 && bytes4.length !== stat.size) fail(`source changed while reading: ${source2}`);
27755
27804
  const current = await inspectSource(scope, path, parsed.storeLinks);
27756
27805
  if (current.canonical !== canonical || !unchanged4(stat, current.stat)) fail(`source changed while reading: ${source2}`);
27757
- const store = parsed.method === "store" || parsed.level !== 9 && parsed.suffixes.some((suffix2) => name2.endsWith(suffix2));
27758
- if (!store && parsed.level === 0 && stat.size && !directory2 && !symlink) throw new ZipFailure(5, "Internal logic error", "bad pack level");
27759
- const level = store ? 0 : parsed.level;
27760
- let entry = await makeZipEntry(name2, bytes4, { modified: new Date(stat.mtimeMs), mode: stat.mode, directory: directory2, symlink }, limits, context2.signal, level);
27761
- if (prior?.comment) entry = { ...entry, comment: prior.comment };
27762
- if (entry.data.length > limits.maxArchiveBytes - compressedBytes) fail("archive byte limit exceeded");
27763
- compressedBytes += entry.data.length;
27764
- selected.set(name2, { entry, source: source2 });
27806
+ await encodeSelected(source2, name2, bytes4, { modified: new Date(stat.mtimeMs), mode: stat.mode, directory: directory2, symlink });
27765
27807
  }
27766
27808
  }
27767
27809
  if (directory2 && parsed.recursive) {
@@ -27842,8 +27884,8 @@ async function prepare(scope, parsed, budget) {
27842
27884
  append(entry, false);
27843
27885
  }
27844
27886
  if (!entries2.length) queue(" zip warning: zip file empty\n");
27845
- const bytes3 = await writeZipArchive({ entries: entries2, comment: archive.comment }, limits, context2.signal);
27846
- if (parsed.test) {
27887
+ const bytes3 = await writeZipArchive({ entries: entries2, comment: archive.comment }, limits, context2.signal, parsed.archive === "-");
27888
+ if (parsed.test && parsed.archive !== "-") {
27847
27889
  for (const message3 of progress) await budget.output(message3);
27848
27890
  progress.length = 0;
27849
27891
  progressBytes = 0;
@@ -27868,7 +27910,7 @@ async function prepare(scope, parsed, budget) {
27868
27910
  `);
27869
27911
  }
27870
27912
  }
27871
- return { output: output2, parentName, parent, parentStat, existing: existing2, bytes: bytes3, progress };
27913
+ return { publication, bytes: bytes3, progress };
27872
27914
  }
27873
27915
  function createZipCommand(options2 = {}) {
27874
27916
  const limits = settings2(options2);
@@ -27876,13 +27918,25 @@ function createZipCommand(options2 = {}) {
27876
27918
  original.signal.throwIfAborted();
27877
27919
  const scope = new ZipScope(original, limits);
27878
27920
  const context2 = scope.context;
27879
- const budget = new Budget14(context2, limits);
27921
+ let budget = new Budget14(context2, limits);
27880
27922
  try {
27881
27923
  const parsed = await parse12(scope, limits);
27924
+ if (parsed.archive === "-") budget = new Budget14({ ...context2, stdout: context2.stderr }, limits);
27882
27925
  const prepared = await prepare(scope, parsed, budget);
27883
27926
  if (!prepared) return { exitCode: 12 };
27884
- await writeFileOutput(context2, prepared.bytes, () => scope.operation(() => publishZip(scope, prepared)));
27885
- for (const message3 of prepared.progress) await budget.output(message3);
27927
+ const publication = prepared.publication;
27928
+ if (publication) {
27929
+ await writeFileOutput(context2, prepared.bytes, () => scope.operation(() => publishZip(scope, { ...publication, bytes: prepared.bytes })));
27930
+ for (const message3 of prepared.progress) await budget.output(message3);
27931
+ } else {
27932
+ for (const message3 of prepared.progress) await budget.output(message3);
27933
+ const output2 = createOutputOperation(context2, context2.stdout);
27934
+ try {
27935
+ await writeBytes(output2.output, prepared.bytes, output2.signal);
27936
+ } finally {
27937
+ await output2.close();
27938
+ }
27939
+ }
27886
27940
  return { exitCode: 0 };
27887
27941
  } catch (error) {
27888
27942
  original.signal.throwIfAborted();
@@ -28288,7 +28342,7 @@ function createUnzipCommand(options2 = {}) {
28288
28342
  }
28289
28343
  let path = extraction.member(root, entry.name);
28290
28344
  const fileType = entry.mode & 61440;
28291
- if (fileType && fileType !== 32768 && fileType !== 16384 && fileType !== 40960) fail("unsupported special ZIP entry");
28345
+ if (fileType && fileType !== 32768 && fileType !== 16384 && fileType !== 40960 && fileType !== 4096) fail("unsupported special ZIP entry");
28292
28346
  if (path === root && !entry.directory) fail("entry would replace extraction root");
28293
28347
  let shown = parsed.destination === void 0 ? entry.name : `${parsed.destination.endsWith("/") ? parsed.destination : `${parsed.destination}/`}${entry.name}`;
28294
28348
  await extraction.parents(root, path, true);