@poe-platform/safe-bash 0.1.0 → 0.1.2

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
@@ -1 +0,0 @@
1
- {"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../../../src/commands/git/delta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAgDhI"}
@@ -1,62 +0,0 @@
1
- import { GIT_LIMITS, demand } from "./limits.js";
2
- export async function applyDelta(session, base, program, expectedOid) {
3
- demand(program.length >= 4 && program.length <= GIT_LIMITS.maxObjectBytes, "Git delta program size refused");
4
- let cursor = 0;
5
- const byte = () => { demand(cursor < program.length, "truncated Git delta"); return program[cursor++]; };
6
- const variable = async () => {
7
- let value = 0, factor = 1;
8
- for (;;) {
9
- await session.step();
10
- const part = byte();
11
- value += (part & 127) * factor;
12
- demand(Number.isSafeInteger(value) && value <= GIT_LIMITS.maxObjectBytes, "Git delta size exceeded");
13
- if (part < 128)
14
- return value;
15
- factor *= 128;
16
- demand(Number.isSafeInteger(factor), "Git delta integer overflow");
17
- }
18
- };
19
- demand(await variable() === base.bytes.length, "Git delta base size mismatch");
20
- const size = await variable();
21
- const body = session.allocate(size);
22
- let produced = 0, success = false;
23
- try {
24
- while (cursor < program.length) {
25
- await session.step();
26
- const opcode = byte();
27
- demand(opcode !== 0, "invalid Git delta opcode");
28
- let source;
29
- if (opcode >= 128) {
30
- let offset = 0, length = 0;
31
- for (let index = 0; index < 4; index++)
32
- if (opcode & (1 << index))
33
- offset += byte() * 2 ** (index * 8);
34
- for (let index = 0; index < 3; index++)
35
- if (opcode & (1 << (index + 4)))
36
- length += byte() * 2 ** (index * 8);
37
- if (length === 0)
38
- length = 65536;
39
- demand(offset <= base.bytes.length && length <= base.bytes.length - offset, "Git delta copy outside base");
40
- source = base.bytes.subarray(offset, offset + length);
41
- }
42
- else {
43
- demand(opcode <= program.length - cursor, "truncated Git delta literal");
44
- source = program.subarray(cursor, cursor + opcode);
45
- cursor += opcode;
46
- }
47
- demand(source.length <= size - produced, "Git delta result overflow");
48
- session.charge("maxInflatedBytes", source.length);
49
- await session.copyInto(body, source, produced);
50
- produced += source.length;
51
- }
52
- demand(produced === size, "truncated Git delta result");
53
- demand(await session.hash(body, base.type) === expectedOid, "Git delta object hash mismatch");
54
- success = true;
55
- return { type: base.type, bytes: body };
56
- }
57
- finally {
58
- if (!success)
59
- session.release(body);
60
- }
61
- }
62
- //# sourceMappingURL=delta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delta.js","sourceRoot":"","sources":["../../../src/commands/git/delta.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { type Arguments } from "./arguments.js";
2
- import type { Repository } from "./repository.js";
3
- export interface Side {
4
- readonly mode: number;
5
- readonly oid: string;
6
- readonly bytes: Buffer;
7
- }
8
- export declare function patch(repository: Repository, parsed: Arguments, path: string, before: Side | undefined, after: Side | undefined): Promise<void>;
9
- //# sourceMappingURL=diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/commands/git/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,IAAI;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAqD7F,wBAAsB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCrJ"}
@@ -1,131 +0,0 @@
1
- import { quote } from "./arguments.js";
2
- import { demand } from "./limits.js";
3
- async function lines(session, bytes) {
4
- const text = session.text(bytes);
5
- const result = [];
6
- let start = 0;
7
- for (let position = 0; position < text.length; position++) {
8
- await session.step();
9
- demand(text.charCodeAt(position) !== 0, "binary Git patches unsupported");
10
- if (text[position] === "\n") {
11
- session.charge("maxLines", 1);
12
- session.reserve(24);
13
- result.push(text.slice(start, position + 1));
14
- start = position + 1;
15
- }
16
- }
17
- if (start < text.length) {
18
- session.charge("maxLines", 1);
19
- session.reserve(24);
20
- result.push(text.slice(start));
21
- }
22
- return result;
23
- }
24
- async function edits(session, before, after) {
25
- const equal = async (left, right) => {
26
- await session.step(Math.min(left.length, right.length) + 1);
27
- return left === right;
28
- };
29
- let prefix = 0, suffix = 0;
30
- while (prefix < before.length && prefix < after.length && await equal(before[prefix], after[prefix]))
31
- prefix++;
32
- while (suffix < before.length - prefix && suffix < after.length - prefix && await equal(before[before.length - suffix - 1], after[after.length - suffix - 1]))
33
- suffix++;
34
- const rows = before.length - prefix - suffix, columns = after.length - prefix - suffix;
35
- session.reserve((before.length + after.length) * 24);
36
- const result = before.slice(0, prefix).map(text => ({ kind: " ", text }));
37
- const cells = (rows + 1) * (columns + 1);
38
- session.charge("maxDiffCells", cells);
39
- const storage = session.allocate(cells * 4);
40
- const grid = new Uint32Array(storage.buffer, storage.byteOffset, cells);
41
- try {
42
- for (let row = rows - 1; row >= 0; row--)
43
- for (let column = columns - 1; column >= 0; column--) {
44
- const index = row * (columns + 1) + column;
45
- grid[index] = await equal(before[prefix + row], after[prefix + column]) ? grid[index + columns + 2] + 1 : Math.max(grid[index + columns + 1], grid[index + 1]);
46
- }
47
- let row = 0, column = 0;
48
- while (row < rows || column < columns) {
49
- await session.step();
50
- if (row < rows && column < columns && await equal(before[prefix + row], after[prefix + column])) {
51
- result.push({ kind: " ", text: before[prefix + row++] });
52
- column++;
53
- }
54
- else if (row < rows && (column === columns || grid[(row + 1) * (columns + 1) + column] >= grid[row * (columns + 1) + column + 1]))
55
- result.push({ kind: "-", text: before[prefix + row++] });
56
- else
57
- result.push({ kind: "+", text: after[prefix + column++] });
58
- }
59
- for (let offset = before.length - suffix; offset < before.length; offset++)
60
- result.push({ kind: " ", text: before[offset] });
61
- return result;
62
- }
63
- finally {
64
- session.release(storage);
65
- }
66
- }
67
- function range(start, count) { return count === 1 ? String(start) : `${count === 0 ? start - 1 : start},${count}`; }
68
- export async function patch(repository, parsed, path, before, after) {
69
- const session = repository.session;
70
- if (before && after && (before.mode & 0o170000) !== (after.mode & 0o170000)) {
71
- await patch(repository, parsed, path, before, undefined);
72
- await patch(repository, parsed, path, undefined, after);
73
- return;
74
- }
75
- const original = before ? await lines(session, before.bytes) : [];
76
- const replacement = after ? await lines(session, after.bytes) : [];
77
- const changes = await edits(session, original, replacement);
78
- await session.output(`diff --git ${quote("a/" + path)} ${quote("b/" + path)}\n`);
79
- if (!before)
80
- await session.output(`new file mode ${after.mode.toString(8)}\n`);
81
- else if (!after)
82
- await session.output(`deleted file mode ${before.mode.toString(8)}\n`);
83
- else if (before.mode !== after.mode)
84
- await session.output(`old mode ${before.mode.toString(8)}\nnew mode ${after.mode.toString(8)}\n`);
85
- if (before?.oid === after?.oid)
86
- return;
87
- const abbreviation = async (side) => side ? parsed.flags.has("--full-index") ? side.oid : repository.abbreviation(side.oid) : "0".repeat(parsed.flags.has("--full-index") ? 40 : 7);
88
- await session.output(`index ${await abbreviation(before)}..${await abbreviation(after)}${before && after && before.mode === after.mode ? " " + before.mode.toString(8) : ""}\n`);
89
- if (!changes.some(edit => edit.kind !== " "))
90
- return;
91
- await session.output(`--- ${before ? quote("a/" + path) : "/dev/null"}\n+++ ${after ? quote("b/" + path) : "/dev/null"}\n`);
92
- const spans = [];
93
- for (let offset = 0; offset < changes.length; offset++) {
94
- await session.step();
95
- if (changes[offset].kind === " ")
96
- continue;
97
- const start = Math.max(0, offset - parsed.context), end = Math.min(changes.length, offset + parsed.context + 1);
98
- const last = spans.at(-1);
99
- if (last && start <= last.end)
100
- last.end = Math.max(last.end, end);
101
- else
102
- spans.push({ start, end });
103
- }
104
- let offset = 0, oldLine = 1, newLine = 1;
105
- for (const span of spans) {
106
- while (offset < span.start) {
107
- const edit = changes[offset++];
108
- if (edit.kind !== "+")
109
- oldLine++;
110
- if (edit.kind !== "-")
111
- newLine++;
112
- }
113
- let oldCount = 0, newCount = 0;
114
- for (let position = span.start; position < span.end; position++) {
115
- if (changes[position].kind !== "+")
116
- oldCount++;
117
- if (changes[position].kind !== "-")
118
- newCount++;
119
- }
120
- await session.output(`@@ -${range(oldLine, oldCount)} +${range(newLine, newCount)} @@\n`);
121
- while (offset < span.end) {
122
- const edit = changes[offset++];
123
- await session.output(edit.kind + edit.text + (edit.text.endsWith("\n") ? "" : "\n\\n"));
124
- if (edit.kind !== "+")
125
- oldLine++;
126
- if (edit.kind !== "-")
127
- newLine++;
128
- }
129
- }
130
- }
131
- //# sourceMappingURL=diff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/commands/git/diff.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { Session } from "./io.js";
2
- type Token = {
3
- kind: "literal";
4
- byte: number;
5
- } | {
6
- kind: "star" | "dirs" | "all" | "any";
7
- } | {
8
- kind: "class";
9
- bytes: ReadonlySet<number>;
10
- negative: boolean;
11
- };
12
- export interface IgnoreRule {
13
- readonly base: string;
14
- readonly tokens: readonly Token[];
15
- readonly directory: boolean;
16
- readonly include: boolean;
17
- readonly anchored: boolean;
18
- }
19
- export declare function ignoreFile(session: Session, path: string, base: string): Promise<IgnoreRule[]>;
20
- export declare function ignored(session: Session, rules: readonly IgnoreRule[], name: string, directory: boolean): Promise<boolean>;
21
- export {};
22
- //# sourceMappingURL=ignore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../../src/commands/git/ignore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9J,MAAM,WAAW,UAAU;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAsC5K,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA6BpG;AAwBD,wBAAsB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAUhI"}
@@ -1,153 +0,0 @@
1
- import { GIT_LIMITS, demand } from "./limits.js";
2
- async function tokens(session, pattern) {
3
- session.reserve(pattern.length * 32);
4
- const result = [];
5
- for (let offset = 0; offset < pattern.length; offset++) {
6
- await session.step();
7
- const byte = pattern[offset];
8
- if (byte === 92) {
9
- demand(offset + 1 < pattern.length, "invalid ignore escape");
10
- result.push({ kind: "literal", byte: pattern[++offset] });
11
- }
12
- else if (byte === 63)
13
- result.push({ kind: "any" });
14
- else if (byte === 42) {
15
- if (pattern[offset + 1] === 42 && (offset === 0 || pattern[offset - 1] === 47) && (offset + 2 === pattern.length || pattern[offset + 2] === 47)) {
16
- offset++;
17
- if (pattern[offset + 1] === 47) {
18
- result.push({ kind: "dirs" });
19
- offset++;
20
- }
21
- else
22
- result.push({ kind: "all" });
23
- }
24
- else {
25
- demand(pattern[offset + 1] !== 42, "unsupported ignore wildcard sequence");
26
- result.push({ kind: "star" });
27
- }
28
- }
29
- else if (byte === 91) {
30
- const bytes = new Set();
31
- let negative = false;
32
- if (pattern[offset + 1] === 33 || pattern[offset + 1] === 94) {
33
- negative = true;
34
- offset++;
35
- }
36
- let closed = false;
37
- while (++offset < pattern.length) {
38
- await session.step();
39
- const start = pattern[offset];
40
- if (start === 93 && bytes.size) {
41
- closed = true;
42
- break;
43
- }
44
- demand(start < 128 && start !== 91 && start !== 92 && start !== 47, "unsupported ignore bracket class");
45
- if (pattern[offset + 1] === 45 && pattern[offset + 2] !== 93) {
46
- const end = pattern[offset + 2];
47
- demand(end !== undefined && end >= start && end < 128 && end !== 47, "invalid ignore range");
48
- for (let value = start; value <= end; value++)
49
- bytes.add(value);
50
- offset += 2;
51
- }
52
- else
53
- bytes.add(start);
54
- }
55
- demand(closed, "unterminated ignore bracket class");
56
- result.push({ kind: "class", bytes, negative });
57
- }
58
- else
59
- result.push({ kind: "literal", byte });
60
- }
61
- return result;
62
- }
63
- export async function ignoreFile(session, path, base) {
64
- const bytes = await session.read(path, GIT_LIMITS.maxMetadataBytes, true);
65
- if (!bytes)
66
- return [];
67
- try {
68
- const text = session.text(bytes);
69
- session.reserve(bytes.length * 2);
70
- const rules = [];
71
- for (let line of text.split("\n")) {
72
- await session.step(line.length + 1);
73
- if (line.endsWith("\r"))
74
- line = line.slice(0, -1);
75
- let end = line.length;
76
- while (end && line[end - 1] === " ") {
77
- let slash = end - 2;
78
- while (slash >= 0 && line[slash] === "\\")
79
- slash--;
80
- if ((end - 2 - slash) % 2)
81
- break;
82
- end--;
83
- }
84
- line = line.slice(0, end);
85
- if (!line || line.startsWith("#"))
86
- continue;
87
- demand(!line.includes("\0"), "NUL in ignore rule");
88
- const include = line.startsWith("!");
89
- if (include)
90
- line = line.slice(1);
91
- demand(line.length > 0, "empty ignore negation");
92
- const directory = line.endsWith("/");
93
- if (directory)
94
- line = line.slice(0, -1);
95
- const anchored = line.includes("/");
96
- if (line.startsWith("/"))
97
- line = line.slice(1);
98
- demand(line.length > 0, "empty ignore pattern");
99
- session.charge("maxEntries", 1);
100
- rules.push({ base, directory, include, anchored, tokens: await tokens(session, Buffer.from(line)) });
101
- }
102
- return rules;
103
- }
104
- finally {
105
- session.release(bytes);
106
- }
107
- }
108
- async function match(session, pattern, path) {
109
- let current = session.allocate(path.length + 1);
110
- current[0] = 1;
111
- try {
112
- for (const token of pattern) {
113
- const next = session.allocate(path.length + 1);
114
- let reachable = false;
115
- for (let offset = 0; offset <= path.length; offset++) {
116
- await session.step();
117
- if (token.kind === "star" || token.kind === "all")
118
- next[offset] = current[offset] || offset > 0 && (token.kind === "all" || path[offset - 1] !== 47) && next[offset - 1] ? 1 : 0;
119
- else if (token.kind === "dirs") {
120
- reachable ||= Boolean(current[offset]);
121
- next[offset] = current[offset] || reachable && offset > 0 && path[offset - 1] === 47 ? 1 : 0;
122
- }
123
- else if (offset < path.length && current[offset]) {
124
- const byte = path[offset];
125
- const accepted = token.kind === "literal" ? token.byte === byte : token.kind === "any" ? byte !== 47 : token.kind === "class" && byte !== 47 && token.bytes.has(byte) !== token.negative;
126
- if (accepted)
127
- next[offset + 1] = 1;
128
- }
129
- }
130
- session.release(current);
131
- current = next;
132
- }
133
- return Boolean(current[path.length]);
134
- }
135
- finally {
136
- session.release(current);
137
- }
138
- }
139
- export async function ignored(session, rules, name, directory) {
140
- let result = false;
141
- for (const rule of rules) {
142
- if (rule.directory && !directory)
143
- continue;
144
- if (rule.base && !name.startsWith(rule.base + "/"))
145
- continue;
146
- const relative = rule.base ? name.slice(rule.base.length + 1) : name;
147
- const candidate = rule.anchored ? relative : relative.slice(relative.lastIndexOf("/") + 1);
148
- if (await match(session, rule.tokens, Buffer.from(candidate)))
149
- result = !rule.include;
150
- }
151
- return result;
152
- }
153
- //# sourceMappingURL=ignore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../../src/commands/git/ignore.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { CommandDefinition, VirtualShellPlugin } from "../../contracts/index.js";
2
- import { type GitCommandsOptions } from "./limits.js";
3
- export type { GitCommandsOptions } from "./limits.js";
4
- export declare function createGitCommand(options?: GitCommandsOptions): CommandDefinition;
5
- export declare function createGitCommands(options?: GitCommandsOptions): readonly CommandDefinition[];
6
- export declare function gitCommands(options?: GitCommandsOptions): VirtualShellPlugin;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/git/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,EAAoD,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIxG,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAWtD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CAuBpF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,SAAS,iBAAiB,EAAE,CAEhG;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,kBAAkB,CAGhF"}
@@ -1,66 +0,0 @@
1
- import { argumentsFor } from "./arguments.js";
2
- import { Session } from "./io.js";
3
- import { ConsumerClosed, GIT_LIMITS, GitFailure, settings } from "./limits.js";
4
- import { query } from "./queries.js";
5
- import { Repository } from "./repository.js";
6
- async function diagnostic(context, error) {
7
- context.signal.throwIfAborted();
8
- const message = `git: ${error.message}\n`;
9
- if (Buffer.byteLength(message) > GIT_LIMITS.maxDiagnosticBytes)
10
- throw new Error("Git diagnostic limit exceeded");
11
- await context.stderr.write(Buffer.from(message));
12
- context.signal.throwIfAborted();
13
- return error.status;
14
- }
15
- export function createGitCommand(options = {}) {
16
- const configured = settings(options);
17
- return {
18
- name: "git",
19
- async execute(context) {
20
- context.signal.throwIfAborted();
21
- let parsed;
22
- try {
23
- parsed = argumentsFor(context.args, context.cwd);
24
- }
25
- catch (error) {
26
- if (error instanceof GitFailure)
27
- return { exitCode: await diagnostic(context, error) };
28
- throw error;
29
- }
30
- const session = new Session(context, configured.discoveryBoundary);
31
- let failed = false, failure, exitCode = 0, cleanupFailed = false, cleanupFailure;
32
- try {
33
- exitCode = await query(await Repository.discover(session, parsed.cwd), parsed);
34
- }
35
- catch (error) {
36
- failed = true;
37
- failure = error;
38
- }
39
- try {
40
- await session.operation.close();
41
- }
42
- catch (error) {
43
- cleanupFailed = true;
44
- cleanupFailure = error;
45
- }
46
- session.finish();
47
- context.signal.throwIfAborted();
48
- if (failed && !(failure instanceof GitFailure) && !(failure instanceof ConsumerClosed))
49
- throw failure;
50
- if (cleanupFailed)
51
- throw cleanupFailure;
52
- if (failed)
53
- exitCode = failure instanceof GitFailure ? await diagnostic(context, failure) : 141;
54
- return { exitCode };
55
- },
56
- };
57
- }
58
- export function createGitCommands(options = {}) {
59
- return Object.freeze([createGitCommand(options)]);
60
- }
61
- export function gitCommands(options = {}) {
62
- const configured = settings(options), commands = createGitCommands(configured);
63
- return { name: "git-commands", setup(host) { for (const command of commands)
64
- host.commands.register(command, { replace: configured.replace }); } };
65
- }
66
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/git/index.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- import { type CommandContext, type DirectoryEntry, type FileStat, type OutputOperation } from "../../contracts/index.js";
2
- import { GIT_LIMITS } from "./limits.js";
3
- export declare class Session {
4
- readonly context: CommandContext;
5
- readonly operation: OutputOperation;
6
- readonly boundary: string;
7
- private readonly owned;
8
- private readonly counts;
9
- private sinceYield;
10
- private resident;
11
- private readonly observations;
12
- private readonly extraObservations;
13
- private readonly finalizers;
14
- constructor(context: CommandContext, boundary: string);
15
- check(): void;
16
- charge(key: keyof typeof GIT_LIMITS, amount: number): void;
17
- step(amount?: number): Promise<void>;
18
- reserve(size: number): void;
19
- unreserve(size: number): void;
20
- allocate(size: number): Buffer;
21
- copy(bytes: Uint8Array): Buffer;
22
- release(bytes: Uint8Array): void;
23
- text(bytes: Uint8Array): string;
24
- hash(bytes: Uint8Array, type?: string): Promise<string>;
25
- path(base: string, name: string): string;
26
- call<Value>(start: () => Promise<Value>): Promise<Value>;
27
- stat(path: string): Promise<FileStat | undefined>;
28
- safe(path: string, leafLink?: boolean): Promise<void>;
29
- list(path: string): Promise<DirectoryEntry[]>;
30
- read(path: string, maximum: number, optional?: boolean, observe?: boolean): Promise<Buffer | undefined>;
31
- unchanged(): Promise<void>;
32
- observe(check: () => Promise<void>): void;
33
- onFinish(close: () => void): void;
34
- finish(): void;
35
- visitFile(path: string, maximum: number, consume: (bytes: Uint8Array, offset: number) => Promise<void>): Promise<void>;
36
- copyInto(target: Uint8Array, source: Uint8Array, offset?: number): Promise<void>;
37
- readExact(path: string, maximum: number): Promise<Buffer>;
38
- observeExact(path: string, maximum: number, body: Uint8Array): Promise<void>;
39
- output(bytes: Uint8Array | string): Promise<void>;
40
- sorted(paths: Iterable<string>): Promise<string[]>;
41
- }
42
- export declare function component(name: string): void;
43
- export declare function objectPath(name: string): void;
44
- export declare function compare(left: string, right: string): number;
45
- export declare function parent(path: string): string;
46
- //# sourceMappingURL=io.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/commands/git/io.ts"],"names":[],"mappings":"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"}