dsh-repro-audit 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.
- package/CHANGELOG.md +5 -1
- package/README-zh.md +1 -1
- package/README.md +1 -1
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js +6 -2
- package/lib/runtime.js.map +1 -1
- package/lib/scan.d.ts +4 -2
- package/lib/scan.d.ts.map +1 -1
- package/lib/scan.js +24 -4
- package/lib/scan.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/runtime.ts +6 -2
- package/src/scan.ts +24 -4
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,10 +4,14 @@ All notable changes to this project are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.1.1] - 2026-11-08
|
|
8
8
|
|
|
9
9
|
### Fixed
|
|
10
10
|
|
|
11
|
+
- Canonicalise the scan root and ignored paths with native `realpath` and
|
|
12
|
+
compare them case-insensitively on Windows, so the tool's own record store is
|
|
13
|
+
excluded even when the workspace is reached through `/var` (macOS) or an
|
|
14
|
+
8.3/short path (Windows).
|
|
11
15
|
- `repro_check` resolves a saved manifest through `realpath` and rejects a
|
|
12
16
|
symlink that escapes the workspace (`PATH_ESCAPE`).
|
|
13
17
|
- Malformed saved manifests (invalid JSON, `null`, or missing required arrays)
|
package/README-zh.md
CHANGED
|
@@ -97,7 +97,7 @@ dsh --profile <name> --dump-config | grep dsh-repro-audit
|
|
|
97
97
|
|
|
98
98
|
## 评测
|
|
99
99
|
|
|
100
|
-
**
|
|
100
|
+
**26 个测试**:扫描(lockfile/数据/图表/seed/命令/运行时、跳过 `node_modules`、符号链接跳过但报告、项目配置不计为数据、小写 `.r` 脚本、文件数上限、排除自身存储(包括通过符号链接/短路径访问的工作区)、不执行 fsmonitor hook、忽略继承的 `GIT_*`)、清单级别(干净 → reproducible、无 seed → partial、无 git → not_reproducible、有未提交改动 → partial、空项目的缺口集合)、漂移(数据变化 + 图表缺失、干净重查)、运行时(合法 REP 记录、内联清单、带项目路径的已保存清单、拒绝格式错误的已保存清单并报 `INVALID_MANIFEST`、拒绝符号链接清单逃逸、路径逃逸)、tools(schema、manifest→check→card 端到端、失败分支、格式错误的 card 输入)、包契约。
|
|
101
101
|
|
|
102
102
|
人工样例矩阵(不声称基准测试结果 —— 产物集合基于规则,而非学习得到):
|
|
103
103
|
|
package/README.md
CHANGED
|
@@ -103,7 +103,7 @@ Ignored directories: `.git`, `node_modules`, `.venv`, `dist`, `build`, `target`,
|
|
|
103
103
|
|
|
104
104
|
## Evaluation
|
|
105
105
|
|
|
106
|
-
**
|
|
106
|
+
**26 tests**: scanning (lockfiles/data/figures/seeds/commands/runtimes, `node_modules` skipped, symlinks skipped but reported, project config not counted as data, lowercase `.r` scripts, file cap, own store excluded (including through symlinked/short workspace paths), fsmonitor hook not executed, inherited GIT_* ignored), manifest levels (clean → reproducible, no seed → partial, no git → not_reproducible, dirty → partial, empty project gap set), drift (changed data + missing figure, clean re-check), runtime (valid REP record, inline manifest, saved manifest with project path, malformed saved manifests rejected with `INVALID_MANIFEST`, symlinked manifest escape rejected, path escape), tools (schemas, manifest→check→card end-to-end, failure branch, malformed card input), package contract.
|
|
107
107
|
|
|
108
108
|
Manual sample matrix (no benchmark claimed — the artifact set is rule-based, not learned):
|
|
109
109
|
|
package/lib/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAkC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAMtH,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,aAAa,CAAA;AAEnI,uBAAuB;AACvB,qBAAa,UAAW,SAAQ,KAAK;IACnC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;gBAEjB,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM;CAKlD;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAmBD,wDAAwD;AACxD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgCpE;AAED,mBAAmB;AACnB,qBAAa,iBAAiB;;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;gBAGnB,OAAO,EAAE,wBAAwB;IAK7C,6BAA6B;IAC7B,GAAG,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAkC,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAMtH,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,aAAa,CAAA;AAEnI,uBAAuB;AACvB,qBAAa,UAAW,SAAQ,KAAK;IACnC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;gBAEjB,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM;CAKlD;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAmBD,wDAAwD;AACxD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgCpE;AAED,mBAAmB;AACnB,qBAAa,iBAAiB;;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;gBAGnB,OAAO,EAAE,wBAAwB;IAK7C,6BAA6B;IAC7B,GAAG,IAAI,MAAM;IAsBb,wDAAwD;IAClD,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBjF;;;;OAIG;IACG,QAAQ,CAAC,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBxE;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;CAgD/G"}
|
package/lib/runtime.js
CHANGED
|
@@ -12,7 +12,7 @@ import path from 'node:path';
|
|
|
12
12
|
import { promisify } from 'node:util';
|
|
13
13
|
import { stableId, validateRep } from '@perrylink/dsh-research-core';
|
|
14
14
|
import { buildManifest, compareManifest } from "./manifest.js";
|
|
15
|
-
import { isInside, scanProject } from "./scan.js";
|
|
15
|
+
import { canonicalPath, isInside, scanProject } from "./scan.js";
|
|
16
16
|
import { VERSION } from "./version.js";
|
|
17
17
|
const execFileAsync = promisify(execFile);
|
|
18
18
|
/** A typed failure. */
|
|
@@ -97,7 +97,11 @@ export class ReproAuditRuntime {
|
|
|
97
97
|
#scanOptions(root) {
|
|
98
98
|
// If root IS the project, only the generated records/ directory can be
|
|
99
99
|
// excluded; excluding the project root would scan nothing.
|
|
100
|
-
|
|
100
|
+
// Compare canonical paths: on macOS /var is a symlink to /private/var and
|
|
101
|
+
// the configured root may use either spelling.
|
|
102
|
+
const configuredRoot = canonicalPath(this.config.root);
|
|
103
|
+
const sameRoot = process.platform === 'win32' ? configuredRoot.toLowerCase() === root.toLowerCase() : configuredRoot === root;
|
|
104
|
+
const ignore = sameRoot ? path.join(root, 'records') : configuredRoot;
|
|
101
105
|
const inside = ignore !== root && isInside(root, ignore);
|
|
102
106
|
return {
|
|
103
107
|
maxFiles: this.config.maxFiles,
|
package/lib/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAuB,MAAM,8BAA8B,CAAA;AAEzF,OAAO,EAAE,aAAa,EAAE,eAAe,EAA0D,MAAM,eAAe,CAAA;AACtH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/lib/scan.d.ts
CHANGED
|
@@ -58,7 +58,9 @@ export interface ScanOptions {
|
|
|
58
58
|
/** Absolute paths (and their descendants) to leave out of the scan. */
|
|
59
59
|
readonly ignorePaths?: readonly string[];
|
|
60
60
|
}
|
|
61
|
-
/**
|
|
61
|
+
/** Canonicalize a path whose leaf may not exist yet (realpath the ancestor). */
|
|
62
|
+
export declare function canonicalPath(input: string): string;
|
|
63
|
+
/** True when `candidate` is inside `root` (case-insensitive on Windows). */
|
|
62
64
|
export declare function isInside(root: string, candidate: string): boolean;
|
|
63
65
|
/**
|
|
64
66
|
* Scan a project directory.
|
|
@@ -66,5 +68,5 @@ export declare function isInside(root: string, candidate: string): boolean;
|
|
|
66
68
|
* @param options - bounds.
|
|
67
69
|
* @returns the scan result.
|
|
68
70
|
*/
|
|
69
|
-
export declare function scanProject(
|
|
71
|
+
export declare function scanProject(inputRoot: string, options?: ScanOptions): Promise<ScanResult>;
|
|
70
72
|
//# sourceMappingURL=scan.d.ts.map
|
package/lib/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqDH,uBAAuB;AACvB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,4BAA4B;AAC5B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,uBAAuB;AACvB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAOD,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQnD;AAOD,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIjE;AAqED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAyHnG"}
|
package/lib/scan.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* @module dsh-repro-audit/scan
|
|
10
10
|
*/
|
|
11
11
|
import { createHash } from 'node:crypto';
|
|
12
|
+
import { realpathSync } from 'node:fs';
|
|
12
13
|
import { readFile, readdir, stat } from 'node:fs/promises';
|
|
13
14
|
import path from 'node:path';
|
|
14
15
|
/** Directories never descended into. */
|
|
@@ -53,9 +54,27 @@ const SEED_PATTERNS = [
|
|
|
53
54
|
function sha256(buffer) {
|
|
54
55
|
return `sha256:${createHash('sha256').update(buffer).digest('hex')}`;
|
|
55
56
|
}
|
|
56
|
-
/**
|
|
57
|
+
/** Canonicalize a path whose leaf may not exist yet (realpath the ancestor). */
|
|
58
|
+
export function canonicalPath(input) {
|
|
59
|
+
try {
|
|
60
|
+
return realpathSync.native(input);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
const parent = path.dirname(input);
|
|
64
|
+
if (parent === input)
|
|
65
|
+
return input;
|
|
66
|
+
return path.join(canonicalPath(parent), path.basename(input));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Case folding for path comparison (Windows is case-insensitive). */
|
|
70
|
+
function foldPath(value) {
|
|
71
|
+
return process.platform === 'win32' ? value.toLowerCase() : value;
|
|
72
|
+
}
|
|
73
|
+
/** True when `candidate` is inside `root` (case-insensitive on Windows). */
|
|
57
74
|
export function isInside(root, candidate) {
|
|
58
|
-
|
|
75
|
+
const foldedRoot = foldPath(root);
|
|
76
|
+
const foldedCandidate = foldPath(candidate);
|
|
77
|
+
return foldedCandidate === foldedRoot || foldedCandidate.startsWith(foldedRoot.endsWith(path.sep) ? foldedRoot : `${foldedRoot}${path.sep}`);
|
|
59
78
|
}
|
|
60
79
|
/** Read a small text file, or undefined. */
|
|
61
80
|
async function readSmall(file, limit = 1024 * 1024) {
|
|
@@ -138,11 +157,12 @@ function classify(relative) {
|
|
|
138
157
|
* @param options - bounds.
|
|
139
158
|
* @returns the scan result.
|
|
140
159
|
*/
|
|
141
|
-
export async function scanProject(
|
|
160
|
+
export async function scanProject(inputRoot, options = {}) {
|
|
161
|
+
const root = canonicalPath(inputRoot);
|
|
142
162
|
const maxFiles = options.maxFiles ?? 2000;
|
|
143
163
|
const maxDepth = options.maxDepth ?? 6;
|
|
144
164
|
const maxFileBytes = options.maxFileBytes ?? 8 * 1024 * 1024;
|
|
145
|
-
const ignorePaths = (options.ignorePaths ?? []).map(item =>
|
|
165
|
+
const ignorePaths = (options.ignorePaths ?? []).map(item => canonicalPath(item));
|
|
146
166
|
const isIgnored = (absolute) => ignorePaths.some(ignore => absolute === ignore || isInside(ignore, absolute));
|
|
147
167
|
const lockfiles = [];
|
|
148
168
|
const envFiles = [];
|
package/lib/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-repro-audit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Reproducibility evidence for DeepSeek Harness: a bounded read-only scan records the git commit and dirty state, dependency lockfiles, environment pins, input-data hashes, figures, notebooks, explicit seeds and runnable commands, derives gap severities and a reproducible/partial/not_reproducible level, compares a recorded manifest against the current tree for drift, and renders a report card with Markdown and SARIF.",
|
|
5
5
|
"author": "dsh-statcheck contributors",
|
|
6
6
|
"repository": {
|
package/src/runtime.ts
CHANGED
|
@@ -14,7 +14,7 @@ import { promisify } from 'node:util'
|
|
|
14
14
|
import { stableId, validateRep, type ResearchRecord } from '@perrylink/dsh-research-core'
|
|
15
15
|
import type { ResolvedConfig } from './config.ts'
|
|
16
16
|
import { buildManifest, compareManifest, type DriftReport, type GitEvidence, type ReproManifest } from './manifest.ts'
|
|
17
|
-
import { isInside, scanProject, type ScanOptions } from './scan.ts'
|
|
17
|
+
import { canonicalPath, isInside, scanProject, type ScanOptions } from './scan.ts'
|
|
18
18
|
import { VERSION } from './version.ts'
|
|
19
19
|
|
|
20
20
|
const execFileAsync = promisify(execFile)
|
|
@@ -117,7 +117,11 @@ export class ReproAuditRuntime {
|
|
|
117
117
|
#scanOptions(root: string): ScanOptions {
|
|
118
118
|
// If root IS the project, only the generated records/ directory can be
|
|
119
119
|
// excluded; excluding the project root would scan nothing.
|
|
120
|
-
|
|
120
|
+
// Compare canonical paths: on macOS /var is a symlink to /private/var and
|
|
121
|
+
// the configured root may use either spelling.
|
|
122
|
+
const configuredRoot = canonicalPath(this.config.root)
|
|
123
|
+
const sameRoot = process.platform === 'win32' ? configuredRoot.toLowerCase() === root.toLowerCase() : configuredRoot === root
|
|
124
|
+
const ignore = sameRoot ? path.join(root, 'records') : configuredRoot
|
|
121
125
|
const inside = ignore !== root && isInside(root, ignore)
|
|
122
126
|
return {
|
|
123
127
|
maxFiles: this.config.maxFiles,
|
package/src/scan.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { createHash } from 'node:crypto'
|
|
13
|
+
import { realpathSync } from 'node:fs'
|
|
13
14
|
import { readFile, readdir, stat } from 'node:fs/promises'
|
|
14
15
|
import path from 'node:path'
|
|
15
16
|
|
|
@@ -116,9 +117,27 @@ function sha256(buffer: Buffer): string {
|
|
|
116
117
|
return `sha256:${createHash('sha256').update(buffer).digest('hex')}`
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
/**
|
|
120
|
+
/** Canonicalize a path whose leaf may not exist yet (realpath the ancestor). */
|
|
121
|
+
export function canonicalPath(input: string): string {
|
|
122
|
+
try {
|
|
123
|
+
return realpathSync.native(input)
|
|
124
|
+
} catch {
|
|
125
|
+
const parent = path.dirname(input)
|
|
126
|
+
if (parent === input) return input
|
|
127
|
+
return path.join(canonicalPath(parent), path.basename(input))
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Case folding for path comparison (Windows is case-insensitive). */
|
|
132
|
+
function foldPath(value: string): string {
|
|
133
|
+
return process.platform === 'win32' ? value.toLowerCase() : value
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** True when `candidate` is inside `root` (case-insensitive on Windows). */
|
|
120
137
|
export function isInside(root: string, candidate: string): boolean {
|
|
121
|
-
|
|
138
|
+
const foldedRoot = foldPath(root)
|
|
139
|
+
const foldedCandidate = foldPath(candidate)
|
|
140
|
+
return foldedCandidate === foldedRoot || foldedCandidate.startsWith(foldedRoot.endsWith(path.sep) ? foldedRoot : `${foldedRoot}${path.sep}`)
|
|
122
141
|
}
|
|
123
142
|
|
|
124
143
|
/** Read a small text file, or undefined. */
|
|
@@ -194,11 +213,12 @@ function classify(relative: string): 'lockfile' | 'env' | 'data' | 'figure' | 'n
|
|
|
194
213
|
* @param options - bounds.
|
|
195
214
|
* @returns the scan result.
|
|
196
215
|
*/
|
|
197
|
-
export async function scanProject(
|
|
216
|
+
export async function scanProject(inputRoot: string, options: ScanOptions = {}): Promise<ScanResult> {
|
|
217
|
+
const root = canonicalPath(inputRoot)
|
|
198
218
|
const maxFiles = options.maxFiles ?? 2000
|
|
199
219
|
const maxDepth = options.maxDepth ?? 6
|
|
200
220
|
const maxFileBytes = options.maxFileBytes ?? 8 * 1024 * 1024
|
|
201
|
-
const ignorePaths = (options.ignorePaths ?? []).map(item =>
|
|
221
|
+
const ignorePaths = (options.ignorePaths ?? []).map(item => canonicalPath(item))
|
|
202
222
|
const isIgnored = (absolute: string): boolean => ignorePaths.some(ignore => absolute === ignore || isInside(ignore, absolute))
|
|
203
223
|
const lockfiles: ScannedFile[] = []
|
|
204
224
|
const envFiles: ScannedFile[] = []
|
package/src/version.ts
CHANGED