@poe-platform/safe-bash 0.1.545 → 0.1.547
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/safe-bash/chunks/{chunk-FAA2WXKH.js → chunk-4JW32W4B.js} +163 -105
- package/dist/safe-bash/chunks/{chunk-FAA2WXKH.js.map → chunk-4JW32W4B.js.map} +3 -3
- package/dist/safe-bash/chunks/{chunk-XWCSJDGK.js → chunk-4V3NGZAG.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-ASCV3OWE.js → chunk-AWP6Z3RR.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-2YHZYNLC.js → chunk-DKT746UJ.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-C7Z2SSTY.js → chunk-EUNOVYVT.js} +16 -3
- package/dist/safe-bash/chunks/chunk-EUNOVYVT.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-6E3FCEJ5.js → chunk-F5AOPLRZ.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-GA43CRT3.js → chunk-FIY2BMTU.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-EGLBB57T.js → chunk-IDJQT32M.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-25GUOTPE.js → chunk-QX2X5EC5.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-CTE3HGYS.js → chunk-VY5N6O6I.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-K4RQ7ASH.js → chunk-WJWYJDQE.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-R4HP2LEO.js → chunk-WXUZXY35.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-IVJ5JGXZ.js → chunk-YFFFBLBC.js} +2 -2
- package/dist/safe-bash/commands/archive/unzip/safety.d.ts +3 -2
- package/dist/safe-bash/commands/archive/unzip/safety.d.ts.map +1 -1
- package/dist/safe-bash/commands/archive/unzip/safety.js +57 -62
- package/dist/safe-bash/commands/archive/unzip/safety.js.map +1 -1
- package/dist/safe-bash/commands/archive/unzip.d.ts.map +1 -1
- package/dist/safe-bash/commands/archive/unzip.js +12 -9
- package/dist/safe-bash/commands/archive/unzip.js.map +1 -1
- package/dist/safe-bash/commands/archive/zip/safety.d.ts +1 -0
- package/dist/safe-bash/commands/archive/zip/safety.d.ts.map +1 -1
- package/dist/safe-bash/commands/archive/zip/safety.js +19 -87
- package/dist/safe-bash/commands/archive/zip/safety.js.map +1 -1
- package/dist/safe-bash/commands/archive/zip.d.ts.map +1 -1
- package/dist/safe-bash/commands/archive/zip.js +2 -1
- package/dist/safe-bash/commands/archive/zip.js.map +1 -1
- package/dist/safe-bash/commands/csplit/command.d.ts.map +1 -1
- package/dist/safe-bash/commands/csplit/command.js +3 -1
- package/dist/safe-bash/commands/csplit/command.js.map +1 -1
- package/dist/safe-bash/commands/csplit/index.browser.js +3 -3
- package/dist/safe-bash/commands/csplit/internal.d.ts +2 -0
- package/dist/safe-bash/commands/csplit/internal.d.ts.map +1 -1
- package/dist/safe-bash/commands/csplit/internal.js +12 -0
- package/dist/safe-bash/commands/csplit/internal.js.map +1 -1
- package/dist/safe-bash/commands/csplit/io.d.ts +4 -2
- package/dist/safe-bash/commands/csplit/io.d.ts.map +1 -1
- package/dist/safe-bash/commands/csplit/io.js +98 -58
- package/dist/safe-bash/commands/csplit/io.js.map +1 -1
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/line-endings/index.browser.js +3 -3
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/network/index.browser.js +3 -3
- package/dist/safe-bash/commands/pr/index.browser.js +2 -2
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/yq/index.browser.js +2 -2
- package/dist/safe-bash/contracts/filesystem.d.ts +1 -1
- package/dist/safe-bash/contracts/filesystem.d.ts.map +1 -1
- package/dist/safe-bash/contracts/output.d.ts.map +1 -1
- package/dist/safe-bash/contracts/output.js +12 -2
- package/dist/safe-bash/contracts/output.js.map +1 -1
- package/dist/safe-bash/core.browser.js +255 -141
- package/dist/safe-bash/core.browser.js.map +3 -3
- package/package.json +2 -2
- package/dist/safe-bash/chunks/chunk-C7Z2SSTY.js.map +0 -7
- /package/dist/safe-bash/chunks/{chunk-XWCSJDGK.js.map → chunk-4V3NGZAG.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-ASCV3OWE.js.map → chunk-AWP6Z3RR.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-2YHZYNLC.js.map → chunk-DKT746UJ.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-6E3FCEJ5.js.map → chunk-F5AOPLRZ.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-GA43CRT3.js.map → chunk-FIY2BMTU.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-EGLBB57T.js.map → chunk-IDJQT32M.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-25GUOTPE.js.map → chunk-QX2X5EC5.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-CTE3HGYS.js.map → chunk-VY5N6O6I.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-K4RQ7ASH.js.map → chunk-WJWYJDQE.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-R4HP2LEO.js.map → chunk-WXUZXY35.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-IVJ5JGXZ.js.map → chunk-YFFFBLBC.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
PublicDiagnostic
|
|
6
6
|
} from "./chunk-TTTOMUAY.js";
|
|
@@ -530,4 +530,4 @@ export {
|
|
|
530
530
|
createFactorCommands,
|
|
531
531
|
factorCommands
|
|
532
532
|
};
|
|
533
|
-
//# sourceMappingURL=chunk-
|
|
533
|
+
//# sourceMappingURL=chunk-4V3NGZAG.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
writeFileOutput
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WXUZXY35.js";
|
|
4
4
|
import {
|
|
5
5
|
createOutputOperation
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EUNOVYVT.js";
|
|
7
7
|
import {
|
|
8
8
|
PublicDiagnostic
|
|
9
9
|
} from "./chunk-TTTOMUAY.js";
|
|
@@ -1073,4 +1073,4 @@ export {
|
|
|
1073
1073
|
createLineEndingCommands,
|
|
1074
1074
|
lineEndingCommands
|
|
1075
1075
|
};
|
|
1076
|
-
//# sourceMappingURL=chunk-
|
|
1076
|
+
//# sourceMappingURL=chunk-AWP6Z3RR.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
PublicDiagnostic
|
|
6
6
|
} from "./chunk-TTTOMUAY.js";
|
|
@@ -624,4 +624,4 @@ export {
|
|
|
624
624
|
createGetoptCommands,
|
|
625
625
|
getoptCommands
|
|
626
626
|
};
|
|
627
|
-
//# sourceMappingURL=chunk-
|
|
627
|
+
//# sourceMappingURL=chunk-DKT746UJ.js.map
|
|
@@ -14,6 +14,7 @@ function createOutputOperation(context, destination) {
|
|
|
14
14
|
const capability = destination.ownedOutput;
|
|
15
15
|
const callbacks = [];
|
|
16
16
|
const children = [];
|
|
17
|
+
const writes = /* @__PURE__ */ new Set();
|
|
17
18
|
const closedReason = new Error("Output operation is closed");
|
|
18
19
|
let accepting = true;
|
|
19
20
|
let drain;
|
|
@@ -27,7 +28,7 @@ function createOutputOperation(context, destination) {
|
|
|
27
28
|
accepting = false;
|
|
28
29
|
drain = Promise.resolve().then(async () => {
|
|
29
30
|
try {
|
|
30
|
-
const results = await Promise.allSettled(callbacks.map(async (cleanup) => cleanup()));
|
|
31
|
+
const results = await Promise.allSettled([...writes, ...callbacks.map(async (cleanup) => cleanup())]);
|
|
31
32
|
const failures = results.filter((result) => result.status === "rejected").map((result) => result.reason);
|
|
32
33
|
if (failures.length === 1) throw failures[0];
|
|
33
34
|
if (failures.length) throw new AggregateError(failures, "Output operation cleanup failed");
|
|
@@ -79,7 +80,19 @@ function createOutputOperation(context, destination) {
|
|
|
79
80
|
...destination[outputFailure] ? { [outputFailure]: destination[outputFailure] } : {},
|
|
80
81
|
async write(chunk) {
|
|
81
82
|
assertOpen();
|
|
82
|
-
|
|
83
|
+
if (!capability) return writeBytes(destination, chunk, signal);
|
|
84
|
+
let settled;
|
|
85
|
+
const admitted = new Promise((resolve) => {
|
|
86
|
+
settled = resolve;
|
|
87
|
+
});
|
|
88
|
+
writes.add(admitted);
|
|
89
|
+
const pending = writeBytes(capability, chunk);
|
|
90
|
+
const finish = () => {
|
|
91
|
+
writes.delete(admitted);
|
|
92
|
+
settled();
|
|
93
|
+
};
|
|
94
|
+
void pending.then(finish, finish);
|
|
95
|
+
await wait(pending);
|
|
83
96
|
}
|
|
84
97
|
},
|
|
85
98
|
registerCleanup,
|
|
@@ -135,4 +148,4 @@ function createOutputOperation(context, destination) {
|
|
|
135
148
|
export {
|
|
136
149
|
createOutputOperation
|
|
137
150
|
};
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
151
|
+
//# sourceMappingURL=chunk-EUNOVYVT.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/contracts/output.ts"],
|
|
4
|
+
"sourcesContent": ["import type { CommandContext, InvocationCleanup } from \"./command.js\";\nimport { outputFailure, writeBytes, type ByteSink } from \"./io.js\";\n\nexport interface OutputOperation {\n readonly signal: AbortSignal;\n readonly output: ByteSink;\n child(destination: ByteSink): OutputOperation;\n registerCleanup(cleanup: InvocationCleanup): void;\n acquire<Value>(start: (signal: AbortSignal) => Value | Promise<Value>, release: (resource: Value) => void | Promise<void>): Promise<Value>;\n close(): Promise<void>;\n abort(reason: unknown): Promise<void>;\n}\n\nexport function createOutputOperation(context: Pick<CommandContext, \"signal\" | \"registerCleanup\">, destination: ByteSink): OutputOperation {\n const controller = new AbortController();\n const signal = controller.signal;\n const capability = destination.ownedOutput;\n const callbacks: InvocationCleanup[] = [];\n const children: OutputOperation[] = [];\n const writes = new Set<Promise<void>>();\n const closedReason = new Error(\"Output operation is closed\");\n let accepting = true;\n let drain: Promise<void> | undefined;\n const assertOpen = (): void => {\n context.signal.throwIfAborted();\n signal.throwIfAborted();\n if (!accepting) throw closedReason;\n };\n const close = (): Promise<void> => {\n if (drain) return drain;\n accepting = false;\n drain = Promise.resolve().then(async () => {\n try {\n const results = await Promise.allSettled([...writes, ...callbacks.map(async cleanup => cleanup())]);\n const failures = results.filter(result => result.status === \"rejected\").map(result => result.reason);\n if (failures.length === 1) throw failures[0];\n if (failures.length) throw new AggregateError(failures, \"Output operation cleanup failed\");\n } finally {\n context.signal.removeEventListener(\"abort\", callerAbort);\n capability?.consumerClosed.removeEventListener(\"abort\", outputAbort);\n }\n });\n void drain.catch(() => {});\n for (const child of children) void child.close().catch(() => {});\n return drain;\n };\n const abort = (reason: unknown): void => {\n controller.abort(reason);\n void close().catch(() => {});\n };\n const callerAbort = (): void => abort(context.signal.reason);\n const outputAbort = (): void => abort(capability?.consumerClosed.reason);\n const registerCleanup = (cleanup: InvocationCleanup): void => {\n assertOpen();\n if (typeof cleanup !== \"function\") throw new TypeError(\"Cleanup must be callable\");\n callbacks.push(cleanup);\n };\n const wait = <Value>(pending: Promise<Value>): Promise<Value> => new Promise((resolve, reject) => {\n const aborted = (): void => reject(signal.reason);\n if (signal.aborted) aborted();\n else signal.addEventListener(\"abort\", aborted, { once: true });\n pending.then(value => {\n signal.removeEventListener(\"abort\", aborted);\n resolve(value);\n }, error => {\n signal.removeEventListener(\"abort\", aborted);\n reject(error);\n });\n });\n context.registerCleanup?.(close);\n if (context.signal.aborted) callerAbort();\n else if (capability?.consumerClosed.aborted) outputAbort();\n else {\n context.signal.addEventListener(\"abort\", callerAbort, { once: true });\n capability?.consumerClosed.addEventListener(\"abort\", outputAbort, { once: true });\n }\n return {\n signal,\n output: {\n ...(destination[outputFailure] ? { [outputFailure]: destination[outputFailure] } : {}),\n async write(chunk) {\n assertOpen();\n if (!capability) return writeBytes(destination, chunk, signal);\n let settled!: () => void;\n const admitted = new Promise<void>(resolve => { settled = resolve; });\n writes.add(admitted);\n // Cancellation can settle the caller while the owned destination is still writing.\n const pending = writeBytes(capability, chunk);\n const finish = (): void => { writes.delete(admitted); settled(); };\n void pending.then(finish, finish);\n await wait(pending);\n },\n },\n registerCleanup,\n child(destination) {\n assertOpen();\n const child = createOutputOperation({ signal, registerCleanup }, destination);\n children.push(child);\n return child;\n },\n async acquire<Value>(start: (signal: AbortSignal) => Value | Promise<Value>, release: (resource: Value) => void | Promise<void>) {\n assertOpen();\n let resource: { value: Value } | undefined;\n let settled!: () => void;\n const admitted = new Promise<void>(resolve => { settled = resolve; });\n let released: Promise<void> | undefined;\n const dispose = (): Promise<void> => {\n released ??= admitted.then(async () => { if (resource) await release(resource.value); });\n return released;\n };\n registerCleanup(dispose);\n let acquisition: Promise<Value>;\n try { acquisition = Promise.resolve(start(signal)); }\n catch (error) { acquisition = Promise.reject(error); }\n const pending = acquisition.then(async value => {\n resource = { value };\n settled();\n if (!accepting) {\n await dispose();\n throw signal.aborted ? signal.reason : closedReason;\n }\n return value;\n }, error => {\n settled();\n throw error;\n });\n return wait(pending);\n },\n close,\n abort(reason) {\n abort(reason);\n return close();\n },\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["destination"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
resolvePath
|
|
6
6
|
} from "./chunk-DPJWEGIX.js";
|
|
@@ -352,4 +352,4 @@ export {
|
|
|
352
352
|
createLlmCommands,
|
|
353
353
|
llmCommands
|
|
354
354
|
};
|
|
355
|
-
//# sourceMappingURL=chunk-
|
|
355
|
+
//# sourceMappingURL=chunk-F5AOPLRZ.js.map
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
} from "./chunk-KYU6MXVK.js";
|
|
31
31
|
import {
|
|
32
32
|
createOutputOperation
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-EUNOVYVT.js";
|
|
34
34
|
import {
|
|
35
35
|
getCommandArguments,
|
|
36
36
|
shellValueByteLength
|
|
@@ -5160,4 +5160,4 @@ export {
|
|
|
5160
5160
|
createYqCommands,
|
|
5161
5161
|
yqCommands
|
|
5162
5162
|
};
|
|
5163
|
-
//# sourceMappingURL=chunk-
|
|
5163
|
+
//# sourceMappingURL=chunk-FIY2BMTU.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
PublicDiagnostic
|
|
6
6
|
} from "./chunk-TTTOMUAY.js";
|
|
@@ -699,4 +699,4 @@ export {
|
|
|
699
699
|
createHexdumpCommands,
|
|
700
700
|
hexdumpCommands
|
|
701
701
|
};
|
|
702
|
-
//# sourceMappingURL=chunk-
|
|
702
|
+
//# sourceMappingURL=chunk-IDJQT32M.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
PublicDiagnostic,
|
|
6
6
|
publicDiagnosticMessage
|
|
@@ -1274,4 +1274,4 @@ export {
|
|
|
1274
1274
|
createPrCommands,
|
|
1275
1275
|
prCommands
|
|
1276
1276
|
};
|
|
1277
|
-
//# sourceMappingURL=chunk-
|
|
1277
|
+
//# sourceMappingURL=chunk-QX2X5EC5.js.map
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
} from "./chunk-O7BRWSKX.js";
|
|
14
14
|
import {
|
|
15
15
|
openFileOutput
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-WXUZXY35.js";
|
|
17
17
|
import {
|
|
18
18
|
createOutputOperation
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-EUNOVYVT.js";
|
|
20
20
|
import {
|
|
21
21
|
normalizePath,
|
|
22
22
|
posixPath
|
|
@@ -1341,4 +1341,4 @@ export {
|
|
|
1341
1341
|
createCurlCommands,
|
|
1342
1342
|
curlCommands
|
|
1343
1343
|
};
|
|
1344
|
-
//# sourceMappingURL=chunk-
|
|
1344
|
+
//# sourceMappingURL=chunk-VY5N6O6I.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
PublicDiagnostic
|
|
6
6
|
} from "./chunk-TTTOMUAY.js";
|
|
@@ -2610,4 +2610,4 @@ export {
|
|
|
2610
2610
|
createIconvCommands,
|
|
2611
2611
|
iconvCommands
|
|
2612
2612
|
};
|
|
2613
|
-
//# sourceMappingURL=chunk-
|
|
2613
|
+
//# sourceMappingURL=chunk-WJWYJDQE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
FsError,
|
|
6
6
|
createBytePipe,
|
|
@@ -191,4 +191,4 @@ export {
|
|
|
191
191
|
writeFileOutput,
|
|
192
192
|
openFileOutput
|
|
193
193
|
};
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-WXUZXY35.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createOutputOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EUNOVYVT.js";
|
|
4
4
|
import {
|
|
5
5
|
PublicDiagnostic
|
|
6
6
|
} from "./chunk-TTTOMUAY.js";
|
|
@@ -651,4 +651,4 @@ export {
|
|
|
651
651
|
createTsortCommands,
|
|
652
652
|
tsortCommands
|
|
653
653
|
};
|
|
654
|
-
//# sourceMappingURL=chunk-
|
|
654
|
+
//# sourceMappingURL=chunk-YFFFBLBC.js.map
|
|
@@ -16,13 +16,14 @@ export declare class Extraction {
|
|
|
16
16
|
input(path: string): ByteSource;
|
|
17
17
|
stat(path: string): Promise<FileStat | undefined>;
|
|
18
18
|
directory(raw: string, create: boolean): Promise<string>;
|
|
19
|
+
createDirectory(path: string, parent: FileStat): Promise<FileStat>;
|
|
19
20
|
parents(root: string, path: string, create: boolean): Promise<void>;
|
|
20
21
|
member(root: string, name: string): string;
|
|
21
22
|
target(root: string, path: string, target: string): Promise<void>;
|
|
22
23
|
destination(path: string, archivePath: string, archiveStat: FileStat): Promise<FileStat | undefined>;
|
|
23
24
|
checked(root: string, path: string, expected: FileStat): Promise<void>;
|
|
24
|
-
metadata(root: string, path: string, identity: FileStat, mode: number, modified: Date): Promise<void>;
|
|
25
|
-
publish(root: string, path: string, chunks: readonly Uint8Array[], expected: FileStat | undefined, mode: number, modified: Date, target?: string): Promise<void>;
|
|
25
|
+
metadata(root: string, path: string, identity: FileStat, parent: FileStat, mode: number, modified: Date): Promise<void>;
|
|
26
|
+
publish(root: string, path: string, chunks: readonly Uint8Array[], expected: FileStat | undefined, parent: FileStat, mode: number, modified: Date, target?: string): Promise<void>;
|
|
26
27
|
private stage;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=safety.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../../../src/commands/archive/unzip/safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../../../src/commands/archive/unzip/safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAoB,MAAM,6BAA6B,CAAC;AAEnK,OAAO,EAAuD,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEzG,qBAAa,UAAU;IAOT,QAAQ,CAAC,OAAO,EAAE,cAAc;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa;IAN5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBACE,OAAO,EAAE,cAAc,EAAW,MAAM,EAAE,aAAa;IACtE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAS9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAqB/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAchC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQjD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAcxD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IASlE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAQpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAOpG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7H,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKpK,KAAK;CA6CpB"}
|
|
@@ -100,15 +100,26 @@ export class Extraction {
|
|
|
100
100
|
for (const component of raw.split("/")) {
|
|
101
101
|
if (!component || component === ".")
|
|
102
102
|
continue;
|
|
103
|
+
const parent = await this.operation(() => fs.lstat(current, { signal }));
|
|
103
104
|
current = resolvePath(current, component);
|
|
104
105
|
const stat = await this.stat(current);
|
|
105
106
|
if (!stat && create)
|
|
106
|
-
await this.
|
|
107
|
+
await this.createDirectory(current, parent);
|
|
107
108
|
else if (!stat || stat.type !== "directory")
|
|
108
109
|
fail(`unsafe non-directory or symlink ancestor: ${display(current)}`);
|
|
109
110
|
}
|
|
110
111
|
return current;
|
|
111
112
|
}
|
|
113
|
+
async createDirectory(path, parent) {
|
|
114
|
+
const { fs, signal } = this.context;
|
|
115
|
+
const capabilities = await this.operation(async () => await fs.capabilitiesFor?.(path, { signal, create: true }) ?? fs.capabilities);
|
|
116
|
+
if (capabilities.atomicDirectoryMetadata !== true || !fs.prepareDirectory)
|
|
117
|
+
fail("extraction requires atomic directory creation");
|
|
118
|
+
return this.operation(() => fs.prepareDirectory(path, {
|
|
119
|
+
signal, parent, expected: null,
|
|
120
|
+
...(capabilities.permissions === false ? {} : { mode: 0o755 }),
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
112
123
|
async parents(root, path, create) {
|
|
113
124
|
if (!isPathWithin(root, path))
|
|
114
125
|
fail("extraction path escapes root");
|
|
@@ -191,84 +202,68 @@ export class Extraction {
|
|
|
191
202
|
if (!current || current.type !== expected.type || !sameIdentity(current, expected))
|
|
192
203
|
fail("extraction entry changed before mutation");
|
|
193
204
|
}
|
|
194
|
-
async metadata(root, path, identity, mode, modified) {
|
|
205
|
+
async metadata(root, path, identity, parent, mode, modified) {
|
|
195
206
|
const { fs, signal } = this.context;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
await this.parents(root, path, false);
|
|
208
|
+
const capabilities = await this.operation(async () => await fs.capabilitiesFor?.(path, { signal }) ?? fs.capabilities);
|
|
209
|
+
if (capabilities.permissions === false && capabilities.timestamps === false)
|
|
210
|
+
return;
|
|
211
|
+
if (capabilities.atomicDirectoryMetadata !== true || !fs.prepareDirectory)
|
|
212
|
+
fail("extraction metadata requires atomic entry conditions");
|
|
213
|
+
await this.operation(() => fs.prepareDirectory(path, {
|
|
214
|
+
signal, expected: identity, parent,
|
|
215
|
+
...(capabilities.permissions === false ? {} : { mode: mode & 0o777 }),
|
|
216
|
+
...(capabilities.timestamps === false ? {} : { atimeMs: modified.getTime(), mtimeMs: modified.getTime() }),
|
|
217
|
+
}));
|
|
204
218
|
}
|
|
205
|
-
publish(root, path, chunks, expected, mode, modified, target) {
|
|
206
|
-
const publication = this.stage(root, path, chunks, expected, mode, modified, target);
|
|
219
|
+
publish(root, path, chunks, expected, parent, mode, modified, target) {
|
|
220
|
+
const publication = this.stage(root, path, chunks, expected, parent, mode, modified, target);
|
|
207
221
|
this.publications.add(publication);
|
|
208
222
|
return publication.finally(() => { this.publications.delete(publication); });
|
|
209
223
|
}
|
|
210
|
-
async stage(root, path, chunks, expected, mode, modified, target) {
|
|
224
|
+
async stage(root, path, chunks, expected, parent, mode, modified, target) {
|
|
211
225
|
const { fs, signal } = this.context;
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
226
|
+
const capabilities = await this.operation(async () => await fs.capabilitiesFor?.(path, { signal, create: true }) ?? fs.capabilities);
|
|
227
|
+
if (capabilities.atomicFileStaging !== true || !fs.createStagedFile || !fs.publishStagedFile || !fs.removeStagedFile)
|
|
228
|
+
fail("extraction requires atomic owned file staging");
|
|
229
|
+
let staging;
|
|
215
230
|
let failure;
|
|
216
231
|
const cleanup = retainFileSystemCleanup(fs, async (view) => {
|
|
217
|
-
if (
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
for (const component of dirname(temporary).split("/").filter(Boolean)) {
|
|
222
|
-
parent = resolvePath(parent, component);
|
|
223
|
-
if ((await view.lstat(parent)).type !== "directory")
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
const current = await view.lstat(temporary);
|
|
227
|
-
if (current.type === identity.type && sameIdentity(current, identity))
|
|
228
|
-
await view.rm(temporary);
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
if (typeof error !== "object" || error === null || !("code" in error) || error.code !== "ENOENT")
|
|
232
|
-
throw error;
|
|
232
|
+
if (staging) {
|
|
233
|
+
if (!view.removeStagedFile)
|
|
234
|
+
fail("extraction atomic cleanup unavailable");
|
|
235
|
+
await view.removeStagedFile(staging);
|
|
233
236
|
}
|
|
234
237
|
}, { maxOperations: Math.min(4096, this.limits.maxDepth + 3) });
|
|
235
238
|
try {
|
|
236
|
-
await this.parents(root, path,
|
|
239
|
+
await this.parents(root, path, false);
|
|
240
|
+
const content = target === undefined ? { type: "file", data: Buffer.concat(chunks) } : { type: "symlink", target };
|
|
237
241
|
for (let attempt = 0; attempt < this.limits.maxMembers; attempt++) {
|
|
238
|
-
temporary = resolvePath(dirname(path), `.unzip-${++this.serial}`);
|
|
242
|
+
const temporary = resolvePath(dirname(path), `.unzip-${++this.serial}`);
|
|
239
243
|
checkPath(temporary, this.limits);
|
|
240
|
-
|
|
244
|
+
checkPath(`${temporary}/entry`, this.limits);
|
|
245
|
+
if (temporary === path)
|
|
241
246
|
continue;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
await fs.
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
if (target === undefined) {
|
|
257
|
-
for (const chunk of chunks) {
|
|
258
|
-
await this.checked(root, temporary, identity);
|
|
259
|
-
await this.operation(() => fs.appendFile(temporary, chunk, { signal }));
|
|
247
|
+
try {
|
|
248
|
+
await this.operation(async () => {
|
|
249
|
+
staging = await fs.createStagedFile(temporary, "entry", content, {
|
|
250
|
+
signal, parent,
|
|
251
|
+
...(target !== undefined || capabilities.permissions === false ? {} : { mode: mode & 0o777 }),
|
|
252
|
+
...(target !== undefined || capabilities.timestamps === false ? {} : { atimeMs: modified.getTime(), mtimeMs: modified.getTime() }),
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
signal.throwIfAborted();
|
|
259
|
+
if (typeof error !== "object" || error === null || !("code" in error) || error.code !== "EEXIST")
|
|
260
|
+
throw error;
|
|
260
261
|
}
|
|
261
|
-
await this.metadata(root, temporary, identity, mode, modified);
|
|
262
262
|
}
|
|
263
|
+
if (!staging)
|
|
264
|
+
fail("temporary file attempt limit exceeded");
|
|
263
265
|
await this.parents(root, path, false);
|
|
264
|
-
|
|
265
|
-
if (current ? !expected || !sameIdentity(current, expected) || current.type !== "file" : expected !== undefined)
|
|
266
|
-
fail("destination changed before publication");
|
|
267
|
-
const staging = await this.stat(temporary);
|
|
268
|
-
if (!staging || !identity || !sameIdentity(staging, identity) || staging.type !== (target === undefined ? "file" : "symlink"))
|
|
269
|
-
fail("temporary file changed before publication");
|
|
270
|
-
await this.operation(() => fs.rename(temporary, path, { signal }));
|
|
271
|
-
created = false;
|
|
266
|
+
await this.operation(() => fs.publishStagedFile(staging, path, { signal, parent, destination: expected ?? null }));
|
|
272
267
|
}
|
|
273
268
|
catch (error) {
|
|
274
269
|
failure = { reason: error };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../../../src/commands/archive/unzip/safety.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../../../src/commands/archive/unzip/safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unzip.d.ts","sourceRoot":"","sources":["../../../src/commands/archive/unzip.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"unzip.d.ts","sourceRoot":"","sources":["../../../src/commands/archive/unzip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkF,KAAK,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAGjK,OAAO,EAAsE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AA8ChI,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,sBAA2B,GAAG,iBAAiB,CAsK1F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { collectBytes, readBytes, resolvePath, writeBytes } from "../../contracts/index.js";
|
|
1
|
+
import { dirname, collectBytes, readBytes, resolvePath, writeBytes } from "../../contracts/index.js";
|
|
2
2
|
import { writeFileOutput } from "../../contracts/filesystem-output.js";
|
|
3
3
|
import { publicDiagnosticMessage } from "../../diagnostics.js";
|
|
4
4
|
import { Budget, bounded, checkPath, display, fail, settings, text, vfsPath } from "./internal.js";
|
|
@@ -138,19 +138,21 @@ export function createUnzipCommand(options = {}) {
|
|
|
138
138
|
await writeFileOutput(context, chunk, async () => { if (chunk.length)
|
|
139
139
|
fail("directory has nonempty payload"); });
|
|
140
140
|
}
|
|
141
|
+
const parent = await extraction.operation(() => context.fs.lstat(dirname(path), { signal: context.signal }));
|
|
141
142
|
const existing = await extraction.stat(path);
|
|
143
|
+
let identity = existing;
|
|
142
144
|
if (existing && existing.type !== "directory")
|
|
143
145
|
fail("directory destination is not a directory");
|
|
144
146
|
if (!existing) {
|
|
145
|
-
await extraction.
|
|
147
|
+
identity = await extraction.createDirectory(path, parent);
|
|
146
148
|
await budget.output(` creating: ${filtered(shown)}\n`);
|
|
147
149
|
}
|
|
148
|
-
const identity = await extraction.stat(path);
|
|
149
150
|
if (!identity || identity.type !== "directory")
|
|
150
151
|
fail("directory changed during creation");
|
|
151
|
-
directories.push({ path, entry, identity });
|
|
152
|
+
directories.push({ path, entry, identity, parent });
|
|
152
153
|
continue;
|
|
153
154
|
}
|
|
155
|
+
let parent = await extraction.operation(() => context.fs.lstat(dirname(path), { signal: context.signal }));
|
|
154
156
|
let existing = await extraction.destination(path, archivePath, archiveStat);
|
|
155
157
|
let skip = false;
|
|
156
158
|
let prompting = 0;
|
|
@@ -195,6 +197,7 @@ export function createUnzipCommand(options = {}) {
|
|
|
195
197
|
path = extraction.member(root, renamed);
|
|
196
198
|
shown = parsed.destination === undefined ? renamed : `${parsed.destination.endsWith("/") ? parsed.destination : `${parsed.destination}/`}${renamed}`;
|
|
197
199
|
await extraction.parents(root, path, true);
|
|
200
|
+
parent = await extraction.operation(() => context.fs.lstat(dirname(path), { signal: context.signal }));
|
|
198
201
|
existing = await extraction.destination(path, archivePath, archiveStat);
|
|
199
202
|
continue;
|
|
200
203
|
}
|
|
@@ -219,11 +222,11 @@ export function createUnzipCommand(options = {}) {
|
|
|
219
222
|
await extraction.target(root, path, target);
|
|
220
223
|
if (!context.fs.symlink || context.fs.capabilities.symlinks === false)
|
|
221
224
|
fail("filesystem does not support symlinks");
|
|
222
|
-
links.push({ path, shown, target, existing, entry });
|
|
225
|
+
links.push({ path, shown, target, existing, parent, entry });
|
|
223
226
|
await budget.output(` linking: ${padded(filtered(shown))} -> ${filtered(target)} \n`);
|
|
224
227
|
}
|
|
225
228
|
else {
|
|
226
|
-
await extraction.publish(root, path, chunks, existing, entry.mode, entry.modified);
|
|
229
|
+
await extraction.publish(root, path, chunks, existing, parent, entry.mode, entry.modified);
|
|
227
230
|
await budget.output(`${entry.method === 0 ? " extracting" : " inflating"}: ${padded(filtered(shown))} \n`);
|
|
228
231
|
}
|
|
229
232
|
}
|
|
@@ -236,11 +239,11 @@ export function createUnzipCommand(options = {}) {
|
|
|
236
239
|
await extraction.parents(root, link.path, false);
|
|
237
240
|
await extraction.target(root, link.path, link.target);
|
|
238
241
|
await extraction.destination(link.path, archivePath, archiveStat);
|
|
239
|
-
await extraction.publish(root, link.path, [], link.existing, link.entry.mode, link.entry.modified, link.target);
|
|
242
|
+
await extraction.publish(root, link.path, [], link.existing, link.parent, link.entry.mode, link.entry.modified, link.target);
|
|
240
243
|
await budget.output(` ${padded(filtered(link.shown))} -> ${filtered(link.target)}\n`);
|
|
241
244
|
}
|
|
242
|
-
for (const { path, entry, identity } of directories.reverse()) {
|
|
243
|
-
await extraction.metadata(root, path, identity, entry.mode, entry.modified);
|
|
245
|
+
for (const { path, entry, identity, parent } of directories.reverse()) {
|
|
246
|
+
await extraction.metadata(root, path, identity, parent, entry.mode, entry.modified);
|
|
244
247
|
}
|
|
245
248
|
for (let index = 0; index < parsed.patterns.length; index++)
|
|
246
249
|
if (!selection.matched.has(index)) {
|