@poe-platform/safe-bash 0.1.0 → 0.1.1

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 (54) hide show
  1. package/README.md +5 -2
  2. package/package.json +2 -2
  3. package/dist/safe-bash/commands/git/arguments.d.ts +0 -17
  4. package/dist/safe-bash/commands/git/arguments.d.ts.map +0 -1
  5. package/dist/safe-bash/commands/git/arguments.js +0 -150
  6. package/dist/safe-bash/commands/git/arguments.js.map +0 -1
  7. package/dist/safe-bash/commands/git/codec.d.ts +0 -8
  8. package/dist/safe-bash/commands/git/codec.d.ts.map +0 -1
  9. package/dist/safe-bash/commands/git/codec.js +0 -225
  10. package/dist/safe-bash/commands/git/codec.js.map +0 -1
  11. package/dist/safe-bash/commands/git/config.d.ts +0 -8
  12. package/dist/safe-bash/commands/git/config.d.ts.map +0 -1
  13. package/dist/safe-bash/commands/git/config.js +0 -100
  14. package/dist/safe-bash/commands/git/config.js.map +0 -1
  15. package/dist/safe-bash/commands/git/crc.d.ts +0 -3
  16. package/dist/safe-bash/commands/git/crc.d.ts.map +0 -1
  17. package/dist/safe-bash/commands/git/crc.js +0 -14
  18. package/dist/safe-bash/commands/git/crc.js.map +0 -1
  19. package/dist/safe-bash/commands/git/delta.d.ts +0 -4
  20. package/dist/safe-bash/commands/git/delta.d.ts.map +0 -1
  21. package/dist/safe-bash/commands/git/delta.js +0 -62
  22. package/dist/safe-bash/commands/git/delta.js.map +0 -1
  23. package/dist/safe-bash/commands/git/diff.d.ts +0 -9
  24. package/dist/safe-bash/commands/git/diff.d.ts.map +0 -1
  25. package/dist/safe-bash/commands/git/diff.js +0 -131
  26. package/dist/safe-bash/commands/git/diff.js.map +0 -1
  27. package/dist/safe-bash/commands/git/ignore.d.ts +0 -22
  28. package/dist/safe-bash/commands/git/ignore.d.ts.map +0 -1
  29. package/dist/safe-bash/commands/git/ignore.js +0 -153
  30. package/dist/safe-bash/commands/git/ignore.js.map +0 -1
  31. package/dist/safe-bash/commands/git/index.d.ts +0 -7
  32. package/dist/safe-bash/commands/git/index.d.ts.map +0 -1
  33. package/dist/safe-bash/commands/git/index.js +0 -66
  34. package/dist/safe-bash/commands/git/index.js.map +0 -1
  35. package/dist/safe-bash/commands/git/io.d.ts +0 -46
  36. package/dist/safe-bash/commands/git/io.d.ts.map +0 -1
  37. package/dist/safe-bash/commands/git/io.js +0 -388
  38. package/dist/safe-bash/commands/git/io.js.map +0 -1
  39. package/dist/safe-bash/commands/git/limits.d.ts +0 -39
  40. package/dist/safe-bash/commands/git/limits.d.ts.map +0 -1
  41. package/dist/safe-bash/commands/git/limits.js +0 -43
  42. package/dist/safe-bash/commands/git/limits.js.map +0 -1
  43. package/dist/safe-bash/commands/git/pack.d.ts +0 -14
  44. package/dist/safe-bash/commands/git/pack.d.ts.map +0 -1
  45. package/dist/safe-bash/commands/git/pack.js +0 -273
  46. package/dist/safe-bash/commands/git/pack.js.map +0 -1
  47. package/dist/safe-bash/commands/git/queries.d.ts +0 -6
  48. package/dist/safe-bash/commands/git/queries.d.ts.map +0 -1
  49. package/dist/safe-bash/commands/git/queries.js +0 -292
  50. package/dist/safe-bash/commands/git/queries.js.map +0 -1
  51. package/dist/safe-bash/commands/git/repository.d.ts +0 -49
  52. package/dist/safe-bash/commands/git/repository.d.ts.map +0 -1
  53. package/dist/safe-bash/commands/git/repository.js +0 -473
  54. package/dist/safe-bash/commands/git/repository.js.map +0 -1
package/README.md CHANGED
@@ -4,8 +4,11 @@ Run shell scripts and command-line tools in your application against an explicit
4
4
 
5
5
  ## Quickstart
6
6
 
7
- Install `@poe-platform/safe-bash` in a Node.js 22+ ESM application. Use a
8
- `poe-code` version that includes this entry point; no separate package is needed.
7
+ Install in a Node.js 22+ ESM application:
8
+
9
+ ```sh
10
+ npm install @poe-platform/safe-bash
11
+ ```
9
12
 
10
13
  ```ts
11
14
  import { Shell, agentCommands, createMemoryFileSystem } from "@poe-platform/safe-bash";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poe-platform/safe-bash",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Extensible virtual shell with pluggable filesystems and streaming commands",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -137,7 +137,7 @@
137
137
  "access": "public"
138
138
  },
139
139
  "dependencies": {
140
- "@poe-platform/safe-js": "0.1.0",
140
+ "@poe-platform/safe-js": "0.1.1",
141
141
  "@types/node": "^25.2.2"
142
142
  }
143
143
  }
@@ -1,17 +0,0 @@
1
- export interface Arguments {
2
- command: string;
3
- cwd: string;
4
- literal: boolean;
5
- paths: string[];
6
- operands: string[];
7
- flags: Set<string>;
8
- untracked: "no" | "normal" | "all";
9
- context: number;
10
- count: number | undefined;
11
- format: "oneline" | "%H" | "%H %s" | undefined;
12
- }
13
- export declare function argumentsFor(args: readonly string[], cwd: string): Arguments;
14
- export declare function pathspecs(parsed: Arguments, root: string | undefined): string[];
15
- export declare function selected(path: string, specs: readonly string[]): boolean;
16
- export declare function quote(path: string): string;
17
- //# sourceMappingURL=arguments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../src/commands/git/arguments.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpF,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnG,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;CAChD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CA0D5E;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAa/E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAA4G;AAErL,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1C"}
@@ -1,150 +0,0 @@
1
- import { resolvePath } from "../../contracts/index.js";
2
- import { objectPath } from "./io.js";
3
- import { GIT_LIMITS, GitFailure } from "./limits.js";
4
- function usage(message) { throw new GitFailure(message, 129); }
5
- export function argumentsFor(args, cwd) {
6
- if (!Array.isArray(args) || args.length > 128)
7
- usage("Git argv count exceeded");
8
- let size = 0;
9
- for (const arg of args) {
10
- if (typeof arg !== "string" || arg.includes("\0"))
11
- usage("invalid Git argument");
12
- size += Buffer.byteLength(arg);
13
- if (size > GIT_LIMITS.maxArgumentBytes)
14
- usage("Git argument byte limit exceeded");
15
- }
16
- let offset = 0, cwdOptions = 0, literal = false;
17
- while (offset < args.length && args[offset].startsWith("-")) {
18
- const flag = args[offset++];
19
- if (flag === "--no-pager")
20
- continue;
21
- if (flag === "--literal-pathspecs") {
22
- literal = true;
23
- continue;
24
- }
25
- if (flag === "-C") {
26
- if (++cwdOptions > 8 || args[offset] === undefined)
27
- usage("invalid Git -C");
28
- cwd = resolvePath(cwd, args[offset++]);
29
- continue;
30
- }
31
- usage(`unsupported Git global option: ${flag}`);
32
- }
33
- const command = args[offset++] ?? "";
34
- if (!["status", "diff", "log", "show", "rev-parse", "ls-files"].includes(command))
35
- usage(`unsupported Git subcommand: ${command || "(missing)"}`);
36
- const result = { command, cwd, literal, paths: [], operands: [], flags: new Set(), untracked: "normal", context: 3, count: undefined, format: undefined };
37
- let paths = false;
38
- const value = (attached) => { const input = attached ?? args[offset++]; if (input === undefined)
39
- usage("missing Git option value"); return input; };
40
- const integer = (text, maximum) => { if (!/^(0|[1-9][0-9]{0,6})$/.test(text) || Number(text) > maximum)
41
- usage("invalid Git numeric option"); return Number(text); };
42
- for (; offset < args.length;) {
43
- const arg = args[offset++];
44
- if (arg === "--" && !paths) {
45
- paths = true;
46
- continue;
47
- }
48
- if (paths) {
49
- if (["status", "diff", "ls-files"].includes(command))
50
- result.paths.push(arg);
51
- else
52
- result.operands.push(arg);
53
- continue;
54
- }
55
- if (!arg.startsWith("-")) {
56
- if (command === "status" || command === "ls-files")
57
- result.paths.push(arg);
58
- else
59
- result.operands.push(arg);
60
- continue;
61
- }
62
- const allowed = {
63
- "rev-parse": ["--show-toplevel", "--absolute-git-dir", "--is-inside-work-tree", "--is-bare-repository", "--verify"],
64
- "ls-files": ["--cached", "--stage", "-s", "-z"],
65
- status: ["--short", "-s", "--porcelain", "--porcelain=v1", "-z", "--no-renames"],
66
- diff: ["--cached", "--staged", "--name-only", "--name-status", "-z", "--exit-code", "--quiet", "-p", "--patch", "--full-index", "--no-renames", "--no-ext-diff", "--no-textconv", "--no-color"],
67
- log: ["--first-parent", "--oneline"], show: ["--no-patch"],
68
- };
69
- if (allowed[command].includes(arg)) {
70
- result.flags.add(arg);
71
- if (arg === "--oneline")
72
- result.format = "oneline";
73
- continue;
74
- }
75
- if (command === "status" && (arg === "-u" || arg.startsWith("-u") || arg.startsWith("--untracked-files="))) {
76
- const kind = arg === "-u" ? "all" : arg.startsWith("--") ? arg.slice(18) : arg.slice(2);
77
- if (!["no", "normal", "all"].includes(kind))
78
- usage("invalid Git untracked mode");
79
- result.untracked = kind;
80
- continue;
81
- }
82
- if (command === "diff" && (arg.startsWith("-U") || arg.startsWith("--unified="))) {
83
- result.context = integer(value(arg.startsWith("-U") ? arg.slice(2) || undefined : arg.slice(10)), 100);
84
- continue;
85
- }
86
- if (command === "log" && (arg === "-n" || arg.startsWith("-n") || arg.startsWith("--max-count="))) {
87
- result.count = integer(value(arg.startsWith("--") ? arg.slice(12) : arg.slice(2) || undefined), GIT_LIMITS.maxCommits);
88
- continue;
89
- }
90
- if (["log", "show"].includes(command) && arg.startsWith("--format=")) {
91
- const format = arg.slice(9);
92
- if (format !== "%H" && format !== "%H %s")
93
- usage("unsupported Git format");
94
- result.format = format;
95
- continue;
96
- }
97
- usage(`unsupported Git ${command} option: ${arg}`);
98
- }
99
- if (command === "status" && !["--short", "-s", "--porcelain", "--porcelain=v1", "-z"].some(flag => result.flags.has(flag)))
100
- usage("M1A status requires --short or --porcelain");
101
- if (command === "log" && (!result.flags.has("--first-parent") || !result.format))
102
- usage("M1A log requires --first-parent and a supported format");
103
- if (command === "show" && result.flags.has("--no-patch") && !result.format)
104
- usage("M1A show --no-patch requires a format");
105
- if (command === "diff" && result.flags.has("-z") && !result.flags.has("--name-only") && !result.flags.has("--name-status") && !result.flags.has("--quiet"))
106
- usage("Git -z requires a name list");
107
- if (command === "diff" && result.flags.has("--name-only") && result.flags.has("--name-status"))
108
- usage("conflicting Git diff output options");
109
- const maximum = command === "diff" ? 2 : command === "ls-files" || command === "status" ? 0 : 1;
110
- if (result.operands.length > maximum)
111
- usage("too many Git operands");
112
- if (command === "rev-parse" && (result.flags.size > 1 || result.operands.length && [...result.flags].some(flag => flag !== "--verify") || !result.flags.size && !result.operands.length || result.flags.has("--verify") && !result.operands.length))
113
- usage("invalid Git rev-parse selection");
114
- if (command === "show" && result.operands.length !== 1)
115
- usage("Git show requires one operand");
116
- return result;
117
- }
118
- export function pathspecs(parsed, root) {
119
- if (!parsed.paths.length)
120
- return [];
121
- const base = root ?? parsed.cwd;
122
- return parsed.paths.map(raw => {
123
- let name = raw, literal = parsed.literal;
124
- if (!literal && name.startsWith(":(literal)")) {
125
- name = name.slice(10);
126
- literal = true;
127
- }
128
- if (!name || !literal && /[*?\[\\]|^:/.test(name))
129
- usage("unsupported Git pathspec");
130
- const absolute = resolvePath(parsed.cwd, name);
131
- if (absolute !== base && !absolute.startsWith(base + "/"))
132
- usage("Git pathspec outside worktree");
133
- const path = absolute === base ? "" : absolute.slice(base.length + 1);
134
- if (path)
135
- objectPath(path);
136
- return path;
137
- });
138
- }
139
- export function selected(path, specs) { return specs.length === 0 || specs.some(spec => !spec || path === spec || path.startsWith(spec + "/")); }
140
- export function quote(path) {
141
- const bytes = Buffer.from(path);
142
- if (bytes.every(byte => byte > 32 && byte < 127 && byte !== 34 && byte !== 92))
143
- return path;
144
- let result = '"';
145
- const escapes = { 7: "\\a", 8: "\\b", 9: "\\t", 10: "\\n", 11: "\\v", 12: "\\f", 13: "\\r", 34: '\\"', 92: "\\\\" };
146
- for (const byte of bytes)
147
- result += escapes[byte] ?? (byte >= 32 && byte < 127 ? String.fromCharCode(byte) : "\\" + byte.toString(8).padStart(3, "0"));
148
- return result + '"';
149
- }
150
- //# sourceMappingURL=arguments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/commands/git/arguments.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { Session } from "./io.js";
2
- export interface GitObject {
3
- readonly type: "blob" | "tree" | "commit" | "tag";
4
- readonly bytes: Buffer;
5
- }
6
- export declare function inflatePackedFrame(session: Session, compressed: Uint8Array, declaredBytes: number): Promise<Buffer>;
7
- export declare function inflateObject(session: Session, compressed: Buffer, oid: string): Promise<GitObject>;
8
- //# sourceMappingURL=codec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/commands/git/codec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,SAAS;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAExG,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0EzH;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAiGzG"}
@@ -1,225 +0,0 @@
1
- import { createInflate } from "node:zlib";
2
- import { ConsumerClosed, GIT_LIMITS, GitFailure, demand } from "./limits.js";
3
- export async function inflatePackedFrame(session, compressed, declaredBytes) {
4
- demand(Number.isSafeInteger(declaredBytes) && declaredBytes >= 0 && declaredBytes <= GIT_LIMITS.maxObjectBytes, "Git packed body size exceeded");
5
- const body = session.allocate(declaredBytes);
6
- let codec;
7
- let closing;
8
- let written;
9
- let codecError, hasCodecError = false, reserved = false, success = false;
10
- const close = async () => {
11
- if (!codec)
12
- return;
13
- closing ??= new Promise(resolve => {
14
- if (codec.closed) {
15
- resolve();
16
- return;
17
- }
18
- codec.once("close", resolve);
19
- codec.destroy();
20
- });
21
- await closing;
22
- };
23
- try {
24
- session.reserve(GIT_LIMITS.maxChunkBytes * 2);
25
- reserved = true;
26
- const stream = await session.operation.acquire(() => {
27
- codec = createInflate({ chunkSize: GIT_LIMITS.maxChunkBytes });
28
- codec.on("error", error => { if (!hasCodecError) {
29
- hasCodecError = true;
30
- codecError = error;
31
- } });
32
- return codec;
33
- }, close);
34
- const write = async () => {
35
- try {
36
- for (let offset = 0; offset < compressed.length; offset += 4096) {
37
- const part = compressed.subarray(offset, offset + 4096);
38
- await session.step(part.length);
39
- await new Promise((resolve, reject) => {
40
- let settled = false;
41
- const finish = (error) => {
42
- if (settled)
43
- return;
44
- settled = true;
45
- stream.removeListener("close", closed);
46
- if (error)
47
- reject(error);
48
- else
49
- resolve();
50
- };
51
- const closed = () => finish(new GitFailure("Git packed codec closed during write"));
52
- if (stream.destroyed) {
53
- closed();
54
- return;
55
- }
56
- stream.once("close", closed);
57
- stream.write(part, finish);
58
- });
59
- if (stream.readableEnded)
60
- break;
61
- }
62
- stream.end();
63
- }
64
- catch (error) {
65
- stream.destroy();
66
- throw error;
67
- }
68
- };
69
- written = write();
70
- void written.catch(() => { });
71
- let produced = 0;
72
- for await (const chunk of stream) {
73
- session.check();
74
- demand(chunk instanceof Uint8Array && chunk.length <= GIT_LIMITS.maxChunkBytes, "invalid Git packed codec chunk");
75
- session.charge("maxInflatedBytes", chunk.length);
76
- demand(chunk.length <= declaredBytes - produced, "Git packed body exceeds declared size");
77
- await session.copyInto(body, chunk, produced);
78
- produced += chunk.length;
79
- }
80
- await written;
81
- demand(produced === declaredBytes, "truncated Git packed body");
82
- demand(stream.bytesWritten === compressed.length, "trailing Git packed zlib input");
83
- success = true;
84
- return body;
85
- }
86
- catch (error) {
87
- session.context.signal.throwIfAborted();
88
- if (session.operation.signal.aborted)
89
- session.check();
90
- if (hasCodecError && error === codecError)
91
- throw new GitFailure("invalid Git packed zlib frame");
92
- throw error;
93
- }
94
- finally {
95
- await close();
96
- await written?.catch(() => { });
97
- if (!success)
98
- session.release(body);
99
- if (reserved)
100
- session.unreserve(GIT_LIMITS.maxChunkBytes * 2);
101
- }
102
- }
103
- export async function inflateObject(session, compressed, oid) {
104
- session.reserve(GIT_LIMITS.maxChunkBytes * 2);
105
- const header = session.allocate(128);
106
- let closing;
107
- let codecError;
108
- let hasCodecError = false;
109
- let disposed = false;
110
- const codec = await session.operation.acquire(() => {
111
- const stream = createInflate({ chunkSize: GIT_LIMITS.maxChunkBytes });
112
- stream.on("error", error => { if (!hasCodecError) {
113
- hasCodecError = true;
114
- codecError = error;
115
- } });
116
- return stream;
117
- }, async (stream) => {
118
- closing ??= new Promise(resolve => {
119
- if (stream.closed) {
120
- resolve();
121
- return;
122
- }
123
- stream.once("close", resolve);
124
- disposed = true;
125
- stream.destroy();
126
- });
127
- await closing;
128
- });
129
- let written;
130
- let body;
131
- let headerLength = 0;
132
- let length = 0;
133
- let type;
134
- let success = false;
135
- const writer = async () => {
136
- try {
137
- for (let offset = 0; offset < compressed.length; offset += 4096) {
138
- session.check();
139
- await session.step(Math.min(4096, compressed.length - offset));
140
- await new Promise((resolve, reject) => {
141
- const closed = () => finish(hasCodecError ? codecError : new GitFailure("Git codec closed during write"));
142
- const finish = (error) => {
143
- codec.removeListener("close", closed);
144
- if (error !== undefined)
145
- reject(error);
146
- else
147
- resolve();
148
- };
149
- if (codec.destroyed) {
150
- closed();
151
- return;
152
- }
153
- codec.once("close", closed);
154
- codec.write(compressed.subarray(offset, offset + 4096), error => finish(error ?? undefined));
155
- });
156
- if (codec.readableEnded)
157
- break;
158
- }
159
- codec.end();
160
- }
161
- catch (error) {
162
- codec.destroy(error instanceof Error ? error : new Error("Git codec writer stopped"));
163
- throw error;
164
- }
165
- };
166
- try {
167
- written = writer();
168
- void written.catch(() => { });
169
- for await (const value of codec) {
170
- session.check();
171
- const chunk = value;
172
- demand(chunk instanceof Uint8Array && chunk.length <= GIT_LIMITS.maxChunkBytes, "invalid Git codec chunk");
173
- session.charge("maxInflatedBytes", chunk.length);
174
- await session.step(chunk.length);
175
- let offset = 0;
176
- while (!body && offset < chunk.length) {
177
- demand(headerLength < header.length, "Git object header limit exceeded");
178
- const byte = chunk[offset++];
179
- header[headerLength++] = byte;
180
- if (byte === 0) {
181
- const text = header.subarray(0, headerLength - 1).toString("ascii");
182
- demand(header.subarray(0, headerLength - 1).every(character => character < 128), "non-ASCII Git object header");
183
- const match = /^(blob|tree|commit|tag) (0|[1-9][0-9]{0,7})$/.exec(text);
184
- demand(match, "invalid canonical Git object header");
185
- const size = Number(match[2]);
186
- demand(size <= GIT_LIMITS.maxObjectBytes, "Git object size exceeded");
187
- type = match[1];
188
- body = session.allocate(size);
189
- }
190
- }
191
- if (body) {
192
- demand(chunk.length - offset <= body.length - length, "Git object exceeds declared length");
193
- body.set(chunk.subarray(offset), length);
194
- length += chunk.length - offset;
195
- }
196
- }
197
- await written;
198
- demand(body && type && body.length === length, "truncated Git object body");
199
- demand(codec.bytesWritten === compressed.length, "trailing Git zlib input");
200
- demand(await session.hash(body, type) === oid, "Git object hash mismatch");
201
- success = true;
202
- return { type, bytes: body };
203
- }
204
- catch (error) {
205
- session.context.signal.throwIfAborted();
206
- if (error instanceof GitFailure || error instanceof ConsumerClosed)
207
- throw error;
208
- if (disposed && session.operation.signal.aborted)
209
- session.check();
210
- if (hasCodecError && error === codecError)
211
- throw new GitFailure("invalid Git zlib object");
212
- throw error;
213
- }
214
- finally {
215
- codec.destroy();
216
- await written?.catch(() => { });
217
- if (!codec.closed)
218
- await new Promise(resolve => codec.once("close", resolve));
219
- if (!success && body)
220
- session.release(body);
221
- session.release(header);
222
- session.unreserve(GIT_LIMITS.maxChunkBytes * 2);
223
- }
224
- }
225
- //# sourceMappingURL=codec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/commands/git/codec.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { Session } from "./io.js";
2
- export interface Configuration {
3
- readonly bare: boolean;
4
- readonly fileMode: boolean;
5
- }
6
- export declare function configuration(session: Session, gitdir: string, bare: boolean): Promise<Configuration>;
7
- export declare function environment(values: Record<string, string>): void;
8
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/git/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,aAAa;IAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAyBrF,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAyC3G;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAShE"}
@@ -1,100 +0,0 @@
1
- import { GIT_LIMITS, demand } from "./limits.js";
2
- function boolean(value) {
3
- const normalized = value.toLowerCase();
4
- demand(["true", "false", "yes", "no", "on", "off", "1", "0", ""].includes(normalized), "invalid Git config boolean");
5
- return ["true", "yes", "on", "1"].includes(normalized);
6
- }
7
- function unquote(value) {
8
- let output = "";
9
- let quoted = false;
10
- for (let offset = 0; offset < value.length; offset++) {
11
- const character = value[offset];
12
- if (character === "\\") {
13
- const next = value[++offset];
14
- demand(next !== undefined && ['n', 't', 'b', '"', '\\'].includes(next), "unsupported Git config escape/continuation");
15
- output += next === "n" ? "\n" : next === "t" ? "\t" : next === "b" ? "\b" : next;
16
- }
17
- else if (character === '"')
18
- quoted = !quoted;
19
- else if (!quoted && (character === "#" || character === ";"))
20
- break;
21
- else
22
- output += character;
23
- }
24
- demand(!quoted, "unterminated Git config quote");
25
- return output.trim();
26
- }
27
- export async function configuration(session, gitdir, bare) {
28
- const bytes = await session.read(session.path(gitdir, "config"), GIT_LIMITS.maxMetadataBytes, true, true);
29
- let fileMode = true;
30
- if (!bytes)
31
- return { bare, fileMode };
32
- try {
33
- const text = session.text(bytes);
34
- demand(!text.includes("\0"), "NUL in Git config");
35
- session.reserve(bytes.length * 2);
36
- const values = new Map();
37
- let section = "";
38
- for (const raw of text.split("\n")) {
39
- await session.step(raw.length + 1);
40
- demand(raw.length <= GIT_LIMITS.maxPathBytes, "Git config line too long");
41
- const line = raw.trim();
42
- if (!line || line.startsWith("#") || line.startsWith(";"))
43
- continue;
44
- if (line.startsWith("[")) {
45
- const match = /^\[([A-Za-z][A-Za-z0-9-]*)(?:[ \t]+"([^"\r\n]+)")?\][ \t]*(?:[#;].*)?$/.exec(line);
46
- demand(match, "unsupported Git config section");
47
- section = match[1].toLowerCase() + (match[2] === undefined ? "" : "." + match[2]);
48
- }
49
- else {
50
- const match = /^([A-Za-z][A-Za-z0-9-]*)(?:[ \t]*=[ \t]*(.*))?$/.exec(line);
51
- demand(section && match, "invalid Git config key");
52
- values.set(section + "." + match[1].toLowerCase(), match[2] === undefined ? "true" : unquote(match[2]));
53
- }
54
- }
55
- for (const [key, value] of values) {
56
- await session.step();
57
- if (key === "core.repositoryformatversion")
58
- demand(value === "0", "unsupported Git repository format");
59
- else if (key === "core.bare")
60
- demand(boolean(value) === bare, "Git bare/layout mismatch");
61
- else if (key === "core.filemode")
62
- fileMode = boolean(value);
63
- else if (["core.symlinks", "core.quotepath", "status.relativepaths"].includes(key))
64
- demand(boolean(value), `unsupported Git ${key}`);
65
- else if (["core.ignorecase", "core.precomposeunicode", "core.autocrlf", "core.safecrlf", "diff.renames", "status.renames"].includes(key))
66
- demand(!boolean(value), `unsupported Git ${key}`);
67
- else if (key === "core.eol")
68
- demand(value === "lf", "unsupported Git core.eol");
69
- else if (key === "core.abbrev")
70
- demand(value === "7", "unsupported Git core.abbrev");
71
- else if (key === "diff.context")
72
- demand(value === "3", "unsupported Git diff.context");
73
- else if (key === "core.logallrefupdates")
74
- boolean(value);
75
- else if (key === "user.name" || key === "user.email" || /^remote\..+\.(url|fetch|pushurl)$/.test(key) || /^branch\..+\.(remote|merge|description)$/.test(key))
76
- continue;
77
- else
78
- demand(false, `unsupported Git config: ${key}`);
79
- }
80
- return { bare, fileMode };
81
- }
82
- finally {
83
- session.release(bytes);
84
- }
85
- }
86
- export function environment(values) {
87
- for (const key of Object.keys(values)) {
88
- if (!key.startsWith("GIT_"))
89
- continue;
90
- const value = values[key];
91
- if (key === "GIT_OPTIONAL_LOCKS" && (value === "0" || value === "1"))
92
- continue;
93
- if (key === "GIT_PAGER" && (value === "" || value === "cat"))
94
- continue;
95
- if (key === "GIT_TERMINAL_PROMPT" && value === "0")
96
- continue;
97
- demand(false, `unsupported virtual Git environment: ${key}`);
98
- }
99
- }
100
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/git/config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Session } from "./io.js";
2
- export declare function crc32(session: Session, bytes: Uint8Array): Promise<number>;
3
- //# sourceMappingURL=crc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crc.d.ts","sourceRoot":"","sources":["../../../src/commands/git/crc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAsB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAWhF"}
@@ -1,14 +0,0 @@
1
- export async function crc32(session, bytes) {
2
- let value = 0xffffffff;
3
- for (let offset = 0; offset < bytes.length; offset += 4096) {
4
- const end = Math.min(bytes.length, offset + 4096);
5
- await session.step(end - offset);
6
- for (let cursor = offset; cursor < end; cursor++) {
7
- value ^= bytes[cursor];
8
- for (let bit = 0; bit < 8; bit++)
9
- value = (value >>> 1) ^ ((value & 1) ? 0xedb88320 : 0);
10
- }
11
- }
12
- return (value ^ 0xffffffff) >>> 0;
13
- }
14
- //# sourceMappingURL=crc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crc.js","sourceRoot":"","sources":["../../../src/commands/git/crc.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAgB,EAAE,KAAiB;IAC7D,IAAI,KAAK,GAAG,UAAU,CAAC;IACvB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;QAClD,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;QACjC,KAAK,IAAI,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;YACjD,KAAK,IAAI,KAAK,CAAC,MAAM,CAAE,CAAC;YACxB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE;gBAAE,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { GitObject } from "./codec.js";
2
- import type { Session } from "./io.js";
3
- export declare function applyDelta(session: Session, base: GitObject, program: Uint8Array, expectedOid: string): Promise<GitObject>;
4
- //# sourceMappingURL=delta.d.ts.map