codequill 0.8.1-beta.0 → 0.8.1-beta.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.
- package/dist/commands/wait.js +1 -9
- package/dist/commands/wait.js.map +1 -1
- package/dist/launcher.js +0 -0
- package/dist/services/git.js +42 -8
- package/dist/services/git.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/wait.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { colors } from '../services/ui.js';
|
|
2
2
|
import { waitForTxConfirmation } from '../services/txWaiter.js';
|
|
3
|
-
|
|
4
|
-
* Handle the "wait" command
|
|
5
|
-
*/
|
|
6
|
-
async function handleWait(txHash, opts) {
|
|
3
|
+
export async function handleWait(txHash, opts) {
|
|
7
4
|
const confTarget = Math.max(1, Number(opts.confirmations ?? 1));
|
|
8
5
|
try {
|
|
9
6
|
await waitForTxConfirmation({
|
|
@@ -14,15 +11,10 @@ async function handleWait(txHash, opts) {
|
|
|
14
11
|
console.log(colors.success(`✓ Confirmed on-chain (${confTarget} confirmation${confTarget > 1 ? 's' : ''}).`));
|
|
15
12
|
}
|
|
16
13
|
catch (e) {
|
|
17
|
-
// waitForTxConfirmation already handles some spinner error output,
|
|
18
|
-
// but we catch to ensure we report the error and set exit code.
|
|
19
14
|
console.error(colors.error(String(e?.message || e)));
|
|
20
15
|
process.exitCode = 1;
|
|
21
16
|
}
|
|
22
17
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Register the "wait" command
|
|
25
|
-
*/
|
|
26
18
|
export function registerWaitCommand(program) {
|
|
27
19
|
program
|
|
28
20
|
.command('wait <tx_hash>')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/commands/wait.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/commands/wait.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,IAAkD;IAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC;QACD,MAAM,qBAAqB,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,UAAU;YACzB,SAAS,EAAE,IAAI,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,UAAU,gBAAgB,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAClH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,OAAO;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC9F,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACzF,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAY,EAAE,EAAE;QAC3C,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACX,CAAC"}
|
package/dist/launcher.js
CHANGED
|
File without changes
|
package/dist/services/git.js
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { spawn, execFileSync } from 'node:child_process';
|
|
4
4
|
import { normalizePath } from "./merkle.js";
|
|
5
5
|
export function runGit(args, opts) {
|
|
6
6
|
return new Promise((resolve) => {
|
|
7
|
-
const child =
|
|
7
|
+
const child = spawn('git', ['-C', opts.cwd, ...args], { windowsHide: true });
|
|
8
8
|
const chunksOut = [];
|
|
9
9
|
const chunksErr = [];
|
|
10
10
|
child.stdout?.on('data', (c) => chunksOut.push(c));
|
|
11
11
|
child.stderr?.on('data', (c) => chunksErr.push(c));
|
|
12
|
-
child.on('
|
|
12
|
+
child.on('error', (err) => {
|
|
13
|
+
// Handle cases where the executable doesn't exist etc.
|
|
14
|
+
resolve({
|
|
15
|
+
stdout: Buffer.concat(chunksOut),
|
|
16
|
+
stderr: Buffer.from(err.message),
|
|
17
|
+
code: -1
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
child.on('close', (code) => {
|
|
21
|
+
resolve({ stdout: Buffer.concat(chunksOut), stderr: Buffer.concat(chunksErr), code });
|
|
22
|
+
});
|
|
13
23
|
});
|
|
14
24
|
}
|
|
15
25
|
function tryGit(args, opts) {
|
|
@@ -111,11 +121,35 @@ export async function listFilesForWorkingTree(repoRoot) {
|
|
|
111
121
|
return res.stdout.toString('utf8').split('\u0000').filter(Boolean).map(normalizePath);
|
|
112
122
|
}
|
|
113
123
|
export async function readFileAtCommit(repoRoot, commitHash, filePath) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
124
|
+
// Resolve blob OID for that path at that commit (use -- to avoid path being interpreted as rev/path syntax)
|
|
125
|
+
const ls = await runGit(['ls-tree', '-r', commitHash, '--', filePath], { cwd: repoRoot, encoding: null });
|
|
126
|
+
if (ls.code !== 0) {
|
|
127
|
+
const errTxt = ls.stderr.toString('utf8').trim();
|
|
128
|
+
throw new Error(`Git error resolving blob for ${filePath} at ${commitHash}: ${errTxt || 'unknown error'}`);
|
|
129
|
+
}
|
|
130
|
+
const line = ls.stdout.toString('utf8').trim();
|
|
131
|
+
if (!line) {
|
|
132
|
+
throw new Error(`Git error: file not found in tree: ${filePath} at ${commitHash}`);
|
|
133
|
+
}
|
|
134
|
+
// Expected format: "<mode> <type> <oid>\t<path>"
|
|
135
|
+
// Example: "100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\tREADME.md"
|
|
136
|
+
const tabIdx = line.indexOf('\t');
|
|
137
|
+
const header = tabIdx >= 0 ? line.slice(0, tabIdx) : line;
|
|
138
|
+
const parts = header.split(' ');
|
|
139
|
+
if (parts.length < 3) {
|
|
140
|
+
throw new Error(`Git error: unexpected ls-tree output for ${filePath}: ${line}`);
|
|
141
|
+
}
|
|
142
|
+
const type = parts[1];
|
|
143
|
+
const oid = parts[2];
|
|
144
|
+
if (type !== 'blob' || !/^[0-9a-f]{40}$/i.test(oid)) {
|
|
145
|
+
throw new Error(`Git error: expected blob oid for ${filePath}, got: ${line}`);
|
|
146
|
+
}
|
|
147
|
+
// Read blob bytes (raw, safe for binaries)
|
|
148
|
+
const cat = await runGit(['cat-file', '-p', oid], { cwd: repoRoot, encoding: null });
|
|
149
|
+
if (cat.code !== 0) {
|
|
150
|
+
const errTxt = cat.stderr.toString('utf8').trim();
|
|
151
|
+
throw new Error(`Git error reading blob ${oid} for ${filePath} at ${commitHash}: ${errTxt || 'unknown error'}`);
|
|
118
152
|
}
|
|
119
|
-
return
|
|
153
|
+
return cat.stdout;
|
|
120
154
|
}
|
|
121
155
|
//# sourceMappingURL=git.js.map
|
package/dist/services/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/services/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/services/git.ts"],"names":[],"mappings":"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"}
|