prolog-trace-viz 2.6.4 → 2.6.6
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/LICENSE +21 -0
- package/dist/build-info.d.ts +3 -3
- package/dist/build-info.js +3 -3
- package/dist/cli.d.ts +3 -3
- package/dist/executor.d.ts +4 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +4 -3
- package/dist/executor.js.map +1 -1
- package/dist/index.js +22 -4
- package/dist/index.js.map +1 -1
- package/dist/update-notifier.d.ts +4 -3
- package/dist/update-notifier.d.ts.map +1 -1
- package/dist/update-notifier.js +49 -9
- package/dist/update-notifier.js.map +1 -1
- package/dist/updater.js +1 -1
- package/dist/updater.js.map +1 -1
- package/dist/wrapper.d.ts +5 -1
- package/dist/wrapper.d.ts.map +1 -1
- package/dist/wrapper.js +8 -4
- package/dist/wrapper.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Textology Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/build-info.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const BUILD_INFO: {
|
|
2
|
-
readonly version: "2.6.
|
|
2
|
+
readonly version: "2.6.6";
|
|
3
3
|
readonly name: "prolog-trace-viz";
|
|
4
4
|
readonly description: "Generate enhanced visual trace diagrams for Prolog query execution";
|
|
5
5
|
readonly author: "Johnny Jarecsni <johnny.jarecsni@icloud.com>";
|
|
6
6
|
readonly license: "MIT";
|
|
7
|
-
readonly buildTimestamp: "2026-05-
|
|
8
|
-
readonly gitCommit: "
|
|
7
|
+
readonly buildTimestamp: "2026-05-25T12:21:44.192Z";
|
|
8
|
+
readonly gitCommit: "265f415";
|
|
9
9
|
readonly gitBranch: "main";
|
|
10
10
|
readonly nodeVersion: "v22.17.0";
|
|
11
11
|
readonly platform: "darwin";
|
package/dist/build-info.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// This file is auto-generated during build
|
|
2
2
|
// Do not edit manually - regenerated on each build
|
|
3
3
|
export const BUILD_INFO = {
|
|
4
|
-
"version": "2.6.
|
|
4
|
+
"version": "2.6.6",
|
|
5
5
|
"name": "prolog-trace-viz",
|
|
6
6
|
"description": "Generate enhanced visual trace diagrams for Prolog query execution",
|
|
7
7
|
"author": "Johnny Jarecsni <johnny.jarecsni@icloud.com>",
|
|
8
8
|
"license": "MIT",
|
|
9
|
-
"buildTimestamp": "2026-05-
|
|
10
|
-
"gitCommit": "
|
|
9
|
+
"buildTimestamp": "2026-05-25T12:21:44.192Z",
|
|
10
|
+
"gitCommit": "265f415",
|
|
11
11
|
"gitBranch": "main",
|
|
12
12
|
"nodeVersion": "v22.17.0",
|
|
13
13
|
"platform": "darwin",
|
package/dist/cli.d.ts
CHANGED
|
@@ -27,13 +27,13 @@ export declare function getHelpText(): string;
|
|
|
27
27
|
export declare function getVersion(): string;
|
|
28
28
|
export declare function getCopyright(): string;
|
|
29
29
|
export declare function getBuildInfo(): {
|
|
30
|
-
readonly version: "2.6.
|
|
30
|
+
readonly version: "2.6.6";
|
|
31
31
|
readonly name: "prolog-trace-viz";
|
|
32
32
|
readonly description: "Generate enhanced visual trace diagrams for Prolog query execution";
|
|
33
33
|
readonly author: "Johnny Jarecsni <johnny.jarecsni@icloud.com>";
|
|
34
34
|
readonly license: "MIT";
|
|
35
|
-
readonly buildTimestamp: "2026-05-
|
|
36
|
-
readonly gitCommit: "
|
|
35
|
+
readonly buildTimestamp: "2026-05-25T12:21:44.192Z";
|
|
36
|
+
readonly gitCommit: "265f415";
|
|
37
37
|
readonly gitBranch: "main";
|
|
38
38
|
readonly nodeVersion: "v22.17.0";
|
|
39
39
|
readonly platform: "darwin";
|
package/dist/executor.d.ts
CHANGED
|
@@ -16,7 +16,10 @@ export declare function checkDependencies(): Promise<DependencyStatus>;
|
|
|
16
16
|
/**
|
|
17
17
|
* Executes the custom tracer with the given wrapper file and captures the JSON output.
|
|
18
18
|
*/
|
|
19
|
-
export declare function executeTracer(wrapperPath: string
|
|
19
|
+
export declare function executeTracer(wrapperPath: string, opts?: {
|
|
20
|
+
cwd?: string;
|
|
21
|
+
jsonPath?: string;
|
|
22
|
+
}): Promise<ExecutionResult>;
|
|
20
23
|
/**
|
|
21
24
|
* Legacy function for backward compatibility.
|
|
22
25
|
* @deprecated Use executeTracer instead.
|
package/dist/executor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAwCD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyBnE;AAED;;GAEG;AACH,wBAAsB,aAAa,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAwCD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyBnE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,OAAO,CAAC,eAAe,CAAC,CAgD1B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpF"}
|
package/dist/executor.js
CHANGED
|
@@ -62,12 +62,13 @@ export async function checkDependencies() {
|
|
|
62
62
|
/**
|
|
63
63
|
* Executes the custom tracer with the given wrapper file and captures the JSON output.
|
|
64
64
|
*/
|
|
65
|
-
export async function executeTracer(wrapperPath) {
|
|
65
|
+
export async function executeTracer(wrapperPath, opts = {}) {
|
|
66
66
|
const wrapperDir = path.dirname(wrapperPath);
|
|
67
|
-
const jsonPath = path.join(wrapperDir, 'trace.json');
|
|
67
|
+
const jsonPath = opts.jsonPath || path.join(wrapperDir, 'trace.json');
|
|
68
|
+
const cwd = opts.cwd || wrapperDir;
|
|
68
69
|
return new Promise((resolve, reject) => {
|
|
69
70
|
const proc = spawn('swipl', [wrapperPath], {
|
|
70
|
-
cwd
|
|
71
|
+
cwd,
|
|
71
72
|
});
|
|
72
73
|
let stderr = '';
|
|
73
74
|
proc.stderr.on('data', (data) => {
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAa,MAAM,aAAa,CAAC;AAchE;;GAEG;AACH,KAAK,UAAU,UAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,8DAA8D;gBAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAChE,OAAO,CAAC;oBACN,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBACpD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,KAAK,IAAI,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;YACL,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE,WAAW,CAChB,SAAS,CAAC,sBAAsB,EAChC,sBAAsB,OAAO,0EAA0E,CACxG;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,OAAO;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as fs from 'node:fs/promises';
|
|
3
|
+
import * as os from 'node:os';
|
|
3
4
|
import { parseArgs, getHelpText, getVersion, getCopyright } from './cli.js';
|
|
4
5
|
import { formatError } from './errors.js';
|
|
5
6
|
import { createTempWrapper } from './wrapper.js';
|
|
@@ -64,6 +65,12 @@ async function main() {
|
|
|
64
65
|
process.exit(1);
|
|
65
66
|
}
|
|
66
67
|
const options = result.options;
|
|
68
|
+
// Nudge for updates *before* the command. If the user accepts, the notifier
|
|
69
|
+
// installs the new version and re-execs ptv with the same arguments, so
|
|
70
|
+
// the user's command runs transparently on the freshly installed binary.
|
|
71
|
+
// Throttled (once/day) and silent on non-TTY, so the delay is typically zero.
|
|
72
|
+
const { notifyAndMaybeUpdate } = await import('./update-notifier.js');
|
|
73
|
+
await notifyAndMaybeUpdate({ quiet: options.quiet });
|
|
67
74
|
try {
|
|
68
75
|
await run(options);
|
|
69
76
|
}
|
|
@@ -71,9 +78,6 @@ async function main() {
|
|
|
71
78
|
logError(`Unexpected error: ${err instanceof Error ? err.message : String(err)}`);
|
|
72
79
|
process.exit(1);
|
|
73
80
|
}
|
|
74
|
-
// After the command succeeds, run the automatic (throttled) update check.
|
|
75
|
-
const { notifyAndMaybeUpdate } = await import('./update-notifier.js');
|
|
76
|
-
await notifyAndMaybeUpdate({ quiet: options.quiet });
|
|
77
81
|
}
|
|
78
82
|
async function run(options) {
|
|
79
83
|
logVerbose(`Processing ${options.prologFile} with query: ${options.query}`, options);
|
|
@@ -102,6 +106,15 @@ async function run(options) {
|
|
|
102
106
|
const sourceClauseMap = buildSourceClauseMap(prologContent);
|
|
103
107
|
// Get absolute path to tracer.pl from package installation
|
|
104
108
|
const tracerPath = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', 'tracer.pl');
|
|
109
|
+
// Resolve the source file's directory so relative consult() paths in the
|
|
110
|
+
// user's code work the same as if they ran swipl directly on the file.
|
|
111
|
+
const sourceAbsPath = path.resolve(options.prologFile);
|
|
112
|
+
const sourceDir = path.dirname(sourceAbsPath);
|
|
113
|
+
// Pre-create the temp dir so we can compute an absolute trace.json path
|
|
114
|
+
// and bake it into the wrapper. cwd will be the source dir (so relative
|
|
115
|
+
// consult() paths resolve), so trace.json needs an absolute path.
|
|
116
|
+
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'prolog-trace-viz-'));
|
|
117
|
+
const absTraceJson = path.join(tempDir, 'trace.json');
|
|
105
118
|
// Create wrapper (no instrumentation needed)
|
|
106
119
|
logVerbose('Creating tracer wrapper...', options);
|
|
107
120
|
const tempFile = await createTempWrapper({
|
|
@@ -109,11 +122,16 @@ async function run(options) {
|
|
|
109
122
|
query: options.query,
|
|
110
123
|
depth: options.depth,
|
|
111
124
|
tracerPath,
|
|
125
|
+
tracePath: absTraceJson,
|
|
126
|
+
tempDir,
|
|
112
127
|
});
|
|
113
128
|
try {
|
|
114
129
|
// Execute custom tracer
|
|
115
130
|
logVerbose('Executing custom tracer...', options);
|
|
116
|
-
const execResult = await executeTracer(tempFile.path
|
|
131
|
+
const execResult = await executeTracer(tempFile.path, {
|
|
132
|
+
cwd: sourceDir,
|
|
133
|
+
jsonPath: absTraceJson,
|
|
134
|
+
});
|
|
117
135
|
logVerbose(`Tracer exit code: ${execResult.exitCode}`, options);
|
|
118
136
|
logVerbose(`JSON length: ${execResult.json?.length || 0}`, options);
|
|
119
137
|
logVerbose(`Stderr: ${execResult.stderr}`, options);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,9 +30,10 @@ export interface NotifyOptions {
|
|
|
30
30
|
quiet: boolean;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Automatic update nudge.
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* Automatic update nudge. Runs *before* the main command so the user can
|
|
34
|
+
* update first; on a "yes" answer we install, then re-exec ptv with the
|
|
35
|
+
* same arguments so the trace runs on the new version transparently.
|
|
36
|
+
* Silent and non-fatal on any error.
|
|
36
37
|
*/
|
|
37
38
|
export declare function notifyAndMaybeUpdate(options: NotifyOptions): Promise<void>;
|
|
38
39
|
//# sourceMappingURL=update-notifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-notifier.d.ts","sourceRoot":"","sources":["../src/update-notifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"update-notifier.d.ts","sourceRoot":"","sources":["../src/update-notifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAAsB,CAAC;AAErD,wCAAwC;AACxC,eAAO,MAAM,UAAU,QAAkD,CAAC;AAE1E,MAAM,WAAW,WAAW;IAC1B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,IAAI,GAAE,MAAmB,GAAG,WAAW,GAAG,IAAI,CAUvE;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,GAAE,MAAmB,GAAG,IAAI,CAM9E;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CACxB,KAAK,EAAE,WAAW,GAAG,IAAI,EACzB,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAA0B,GACrC,OAAO,CAGT;AAuBD,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;CAChB;AA2BD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChF"}
|
package/dist/update-notifier.js
CHANGED
|
@@ -12,9 +12,16 @@
|
|
|
12
12
|
import * as fs from 'node:fs';
|
|
13
13
|
import * as os from 'node:os';
|
|
14
14
|
import * as path from 'node:path';
|
|
15
|
+
import { spawn } from 'node:child_process';
|
|
15
16
|
import { BUILD_INFO } from './build-info.js';
|
|
16
17
|
import { compareVersions, fetchLatestVersion, installUpdate } from './updater.js';
|
|
17
18
|
import { promptYesNo } from './prompt.js';
|
|
19
|
+
/**
|
|
20
|
+
* Env var set on the re-run child after a successful update. Prevents the
|
|
21
|
+
* newly installed process from running the update check again (which could
|
|
22
|
+
* otherwise loop if anything ever went sideways).
|
|
23
|
+
*/
|
|
24
|
+
const SKIP_CHECK_ENV = 'PTV_SKIP_UPDATE_CHECK';
|
|
18
25
|
/** How long a registry check result stays fresh: once per day. */
|
|
19
26
|
export const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
20
27
|
/** Where the throttling cache lives. */
|
|
@@ -53,9 +60,11 @@ export function isCheckDue(cache, now, intervalMs = CHECK_INTERVAL_MS) {
|
|
|
53
60
|
*/
|
|
54
61
|
async function resolveLatestVersion(now) {
|
|
55
62
|
const cache = readCache();
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
63
|
+
// TEMP (v2.6.5): once-per-day throttle disabled so every run exercises
|
|
64
|
+
// the npm registry check. Re-enable by uncommenting the block below.
|
|
65
|
+
// if (!isCheckDue(cache, now)) {
|
|
66
|
+
// return cache!.latest;
|
|
67
|
+
// }
|
|
59
68
|
try {
|
|
60
69
|
const latest = await fetchLatestVersion();
|
|
61
70
|
writeCache({ checkedAt: now, latest });
|
|
@@ -67,12 +76,38 @@ async function resolveLatestVersion(now) {
|
|
|
67
76
|
}
|
|
68
77
|
}
|
|
69
78
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
79
|
+
* Re-exec ptv with the user's original arguments, inheriting stdio so the
|
|
80
|
+
* command runs as if the user had invoked it directly on the freshly
|
|
81
|
+
* installed version. This function never returns - it exits the current
|
|
82
|
+
* process with the child's exit code (or 1 on spawn failure).
|
|
83
|
+
*/
|
|
84
|
+
async function rerunWithNewBinary() {
|
|
85
|
+
process.stderr.write('Re-running on the new version...\n\n');
|
|
86
|
+
return new Promise(() => {
|
|
87
|
+
const child = spawn(process.execPath, [process.argv[1], ...process.argv.slice(2)], {
|
|
88
|
+
stdio: 'inherit',
|
|
89
|
+
env: { ...process.env, [SKIP_CHECK_ENV]: '1' },
|
|
90
|
+
});
|
|
91
|
+
child.on('close', code => process.exit(code ?? 0));
|
|
92
|
+
child.on('error', err => {
|
|
93
|
+
process.stderr.write(`Re-run failed: ${err.message}\n`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Automatic update nudge. Runs *before* the main command so the user can
|
|
100
|
+
* update first; on a "yes" answer we install, then re-exec ptv with the
|
|
101
|
+
* same arguments so the trace runs on the new version transparently.
|
|
102
|
+
* Silent and non-fatal on any error.
|
|
73
103
|
*/
|
|
74
104
|
export async function notifyAndMaybeUpdate(options) {
|
|
75
105
|
try {
|
|
106
|
+
// Skip the check on the child we spawned after a successful update -
|
|
107
|
+
// it would just see the version it already is, but guard explicitly to
|
|
108
|
+
// be safe against any "always nudges" misconfiguration.
|
|
109
|
+
if (process.env[SKIP_CHECK_ENV] === '1')
|
|
110
|
+
return;
|
|
76
111
|
if (options.quiet)
|
|
77
112
|
return;
|
|
78
113
|
// Only nudge a real interactive session - we need stdout to show the
|
|
@@ -84,13 +119,18 @@ export async function notifyAndMaybeUpdate(options) {
|
|
|
84
119
|
return;
|
|
85
120
|
if (compareVersions(latest, BUILD_INFO.version) <= 0)
|
|
86
121
|
return;
|
|
87
|
-
process.stderr.write(
|
|
122
|
+
process.stderr.write(`A new version of ptv is available: v${BUILD_INFO.version} → v${latest}\n`);
|
|
88
123
|
const proceed = await promptYesNo('Update now?', { defaultYes: true });
|
|
89
124
|
if (!proceed) {
|
|
90
|
-
process.stderr.write('Skipped - you will be reminded again later.\n');
|
|
125
|
+
process.stderr.write('Skipped - you will be reminded again later.\n\n');
|
|
91
126
|
return;
|
|
92
127
|
}
|
|
93
|
-
await installUpdate(latest);
|
|
128
|
+
const installCode = await installUpdate(latest);
|
|
129
|
+
if (installCode === 0) {
|
|
130
|
+
await rerunWithNewBinary(); // never returns
|
|
131
|
+
}
|
|
132
|
+
// Install failed - fall through and run the command on the old binary
|
|
133
|
+
// rather than punish the user with an error after they tried to help.
|
|
94
134
|
}
|
|
95
135
|
catch {
|
|
96
136
|
// An update nudge must never disrupt or fail the actual command.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-notifier.js","sourceRoot":"","sources":["../src/update-notifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErD,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;AAS1E,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,OAAe,UAAU;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5E,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,KAAkB,EAAE,OAAe,UAAU;IACtE,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;IACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CACxB,KAAyB,EACzB,GAAW,EACX,aAAqB,iBAAiB;IAEtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"update-notifier.js","sourceRoot":"","sources":["../src/update-notifier.ts"],"names":[],"mappings":"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"}
|
package/dist/updater.js
CHANGED
|
@@ -87,7 +87,7 @@ export async function installUpdate(latest) {
|
|
|
87
87
|
console.error(` Try updating manually: npm install --global ${name}@latest`);
|
|
88
88
|
return 1;
|
|
89
89
|
}
|
|
90
|
-
spinner.succeed(`Updated ptv to v${latest}
|
|
90
|
+
spinner.succeed(`Updated ptv to v${latest}.`);
|
|
91
91
|
return 0;
|
|
92
92
|
}
|
|
93
93
|
//# sourceMappingURL=updater.js.map
|
package/dist/updater.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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"}
|
package/dist/wrapper.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export interface WrapperConfig {
|
|
|
3
3
|
query: string;
|
|
4
4
|
depth?: number;
|
|
5
5
|
tracerPath: string;
|
|
6
|
+
/** Absolute path for the trace.json output. Defaults to 'trace.json' (cwd-relative). */
|
|
7
|
+
tracePath?: string;
|
|
6
8
|
}
|
|
7
9
|
export interface TempFile {
|
|
8
10
|
path: string;
|
|
@@ -28,7 +30,9 @@ export declare function calculateLineOffset(prologContent: string): number;
|
|
|
28
30
|
* Maps a line number from the wrapper file back to the original source file.
|
|
29
31
|
*/
|
|
30
32
|
export declare function mapWrapperLineToSource(wrapperLine: number, prologContent: string): number;
|
|
31
|
-
export declare function createTempWrapper(config: WrapperConfig
|
|
33
|
+
export declare function createTempWrapper(config: WrapperConfig & {
|
|
34
|
+
tempDir?: string;
|
|
35
|
+
}): Promise<TempFile>;
|
|
32
36
|
/**
|
|
33
37
|
* Serializes a wrapper back to its component parts (for testing round-trips).
|
|
34
38
|
* Returns null if the content doesn't match expected wrapper format.
|
package/dist/wrapper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAoC7D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAcjE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMzF;AACD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA2BlE"}
|
package/dist/wrapper.js
CHANGED
|
@@ -11,8 +11,12 @@ import * as os from 'node:os';
|
|
|
11
11
|
* - Tracer cleanup
|
|
12
12
|
*/
|
|
13
13
|
export function generateWrapper(config) {
|
|
14
|
-
const { prologContent, query, depth, tracerPath } = config;
|
|
14
|
+
const { prologContent, query, depth, tracerPath, tracePath } = config;
|
|
15
15
|
const maxDepth = depth || 100; // Default to 100 if not specified
|
|
16
|
+
// Strip trailing '.' from the query - it's a clause terminator that breaks
|
|
17
|
+
// when the query is inlined as a sub-goal of run_trace.
|
|
18
|
+
const cleanQuery = query.trim().replace(/\.\s*$/, '');
|
|
19
|
+
const traceOutPath = (tracePath || 'trace.json').replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
16
20
|
const lines = [
|
|
17
21
|
`% Load custom tracer`,
|
|
18
22
|
`:- ['${tracerPath}'].`,
|
|
@@ -28,9 +32,9 @@ export function generateWrapper(config) {
|
|
|
28
32
|
lines.push('run_trace :-');
|
|
29
33
|
lines.push(` install_tracer(${maxDepth}),`);
|
|
30
34
|
lines.push(' catch(');
|
|
31
|
-
lines.push(` (${
|
|
35
|
+
lines.push(` (${cleanQuery}, export_trace_json('${traceOutPath}')),`);
|
|
32
36
|
lines.push(' Error,');
|
|
33
|
-
lines.push(` (format('Error: ~w~n', [Error]), export_trace_json('
|
|
37
|
+
lines.push(` (format('Error: ~w~n', [Error]), export_trace_json('${traceOutPath}'))`);
|
|
34
38
|
lines.push(' ),');
|
|
35
39
|
lines.push(' remove_tracer.');
|
|
36
40
|
lines.push('');
|
|
@@ -68,7 +72,7 @@ export function mapWrapperLineToSource(wrapperLine, prologContent) {
|
|
|
68
72
|
}
|
|
69
73
|
export async function createTempWrapper(config) {
|
|
70
74
|
const content = generateWrapper(config);
|
|
71
|
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'prolog-trace-viz-'));
|
|
75
|
+
const tempDir = config.tempDir ?? await fs.mkdtemp(path.join(os.tmpdir(), 'prolog-trace-viz-'));
|
|
72
76
|
const wrapperPath = path.join(tempDir, 'wrapper.pl');
|
|
73
77
|
await fs.writeFile(wrapperPath, content, 'utf-8');
|
|
74
78
|
return {
|
package/dist/wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"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"}
|