@vibe-agent-toolkit/utils 0.2.0-rc.11 → 0.2.0-rc.12
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/README.md +111 -9
- package/dist/archive/archive.d.ts +129 -0
- package/dist/archive/archive.d.ts.map +1 -0
- package/dist/archive/archive.js +223 -0
- package/dist/archive/archive.js.map +1 -0
- package/dist/archive/entries.d.ts +132 -0
- package/dist/archive/entries.d.ts.map +1 -0
- package/dist/archive/entries.js +223 -0
- package/dist/archive/entries.js.map +1 -0
- package/dist/archive/limits.d.ts +39 -0
- package/dist/archive/limits.d.ts.map +1 -0
- package/dist/archive/limits.js +59 -0
- package/dist/archive/limits.js.map +1 -0
- package/dist/archive/records.d.ts +14 -0
- package/dist/archive/records.d.ts.map +1 -0
- package/dist/archive/records.js +3 -0
- package/dist/archive/records.js.map +1 -0
- package/dist/archive/tar-reader.d.ts +18 -0
- package/dist/archive/tar-reader.d.ts.map +1 -0
- package/dist/archive/tar-reader.js +173 -0
- package/dist/archive/tar-reader.js.map +1 -0
- package/dist/archive/zip-reader.d.ts +76 -0
- package/dist/archive/zip-reader.d.ts.map +1 -0
- package/dist/archive/zip-reader.js +376 -0
- package/dist/archive/zip-reader.js.map +1 -0
- package/dist/archive.d.ts +14 -0
- package/dist/archive.d.ts.map +1 -0
- package/dist/archive.js +12 -0
- package/dist/archive.js.map +1 -0
- package/dist/asset-reference.d.ts +17 -1
- package/dist/asset-reference.d.ts.map +1 -1
- package/dist/asset-reference.js +31 -7
- package/dist/asset-reference.js.map +1 -1
- package/dist/dirent-kind.d.ts +13 -40
- package/dist/dirent-kind.d.ts.map +1 -1
- package/dist/dirent-kind.js +21 -69
- package/dist/dirent-kind.js.map +1 -1
- package/dist/entrypoint.d.ts +2 -2
- package/dist/entrypoint.d.ts.map +1 -1
- package/dist/entrypoint.js +4 -3
- package/dist/entrypoint.js.map +1 -1
- package/dist/env-flag.d.ts +2 -0
- package/dist/env-flag.d.ts.map +1 -1
- package/dist/env-flag.js +2 -0
- package/dist/env-flag.js.map +1 -1
- package/dist/errors/confirmed-absent.d.ts +41 -0
- package/dist/errors/confirmed-absent.d.ts.map +1 -0
- package/dist/errors/confirmed-absent.js +43 -0
- package/dist/errors/confirmed-absent.js.map +1 -0
- package/dist/errors/errno-table.d.ts +177 -0
- package/dist/errors/errno-table.d.ts.map +1 -0
- package/dist/errors/errno-table.js +343 -0
- package/dist/errors/errno-table.js.map +1 -0
- package/dist/errors/fs-boundary.d.ts +36 -0
- package/dist/errors/fs-boundary.d.ts.map +1 -0
- package/dist/errors/fs-boundary.js +121 -0
- package/dist/errors/fs-boundary.js.map +1 -0
- package/dist/errors/fs-fault.d.ts +176 -0
- package/dist/errors/fs-fault.d.ts.map +1 -0
- package/dist/errors/fs-fault.js +215 -0
- package/dist/errors/fs-fault.js.map +1 -0
- package/dist/errors/git-errno.d.ts +13 -0
- package/dist/errors/git-errno.d.ts.map +1 -0
- package/dist/errors/git-errno.js +45 -0
- package/dist/errors/git-errno.js.map +1 -0
- package/dist/errors/path-present.d.ts +72 -0
- package/dist/errors/path-present.d.ts.map +1 -0
- package/dist/errors/path-present.js +110 -0
- package/dist/errors/path-present.js.map +1 -0
- package/dist/errors/rag-index-empty.d.ts +16 -0
- package/dist/errors/rag-index-empty.d.ts.map +1 -0
- package/dist/errors/rag-index-empty.js +16 -0
- package/dist/errors/rag-index-empty.js.map +1 -0
- package/dist/errors/suppressed-faults.d.ts +34 -0
- package/dist/errors/suppressed-faults.d.ts.map +1 -0
- package/dist/errors/suppressed-faults.js +66 -0
- package/dist/errors/suppressed-faults.js.map +1 -0
- package/dist/file-crawler.d.ts +13 -18
- package/dist/file-crawler.d.ts.map +1 -1
- package/dist/file-crawler.js +140 -24
- package/dist/file-crawler.js.map +1 -1
- package/dist/fs-utils.d.ts +75 -50
- package/dist/fs-utils.d.ts.map +1 -1
- package/dist/fs-utils.js +148 -158
- package/dist/fs-utils.js.map +1 -1
- package/dist/fs.d.ts +4 -4
- package/dist/fs.d.ts.map +1 -1
- package/dist/fs.js +4 -4
- package/dist/fs.js.map +1 -1
- package/dist/git-snapshot.d.ts +25 -17
- package/dist/git-snapshot.d.ts.map +1 -1
- package/dist/git-snapshot.js +65 -11
- package/dist/git-snapshot.js.map +1 -1
- package/dist/git-tracker.d.ts +11 -3
- package/dist/git-tracker.d.ts.map +1 -1
- package/dist/git-tracker.js +29 -6
- package/dist/git-tracker.js.map +1 -1
- package/dist/git-utils.d.ts.map +1 -1
- package/dist/git-utils.js +7 -35
- package/dist/git-utils.js.map +1 -1
- package/dist/git.d.ts +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +1 -1
- package/dist/git.js.map +1 -1
- package/dist/gitignore-checker.d.ts.map +1 -1
- package/dist/gitignore-checker.js +5 -4
- package/dist/gitignore-checker.js.map +1 -1
- package/dist/in-order.d.ts +93 -0
- package/dist/in-order.d.ts.map +1 -0
- package/dist/in-order.js +165 -0
- package/dist/in-order.js.map +1 -0
- package/dist/index.d.ts +20 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/kill-process-tree.d.ts +43 -0
- package/dist/kill-process-tree.d.ts.map +1 -0
- package/dist/kill-process-tree.js +48 -0
- package/dist/kill-process-tree.js.map +1 -0
- package/dist/link-following.d.ts +115 -0
- package/dist/link-following.d.ts.map +1 -0
- package/dist/link-following.js +283 -0
- package/dist/link-following.js.map +1 -0
- package/dist/listing-refusal.d.ts +44 -0
- package/dist/listing-refusal.d.ts.map +1 -1
- package/dist/listing-refusal.js +79 -2
- package/dist/listing-refusal.js.map +1 -1
- package/dist/name-fold.d.ts +25 -0
- package/dist/name-fold.d.ts.map +1 -0
- package/dist/name-fold.js +40 -0
- package/dist/name-fold.js.map +1 -0
- package/dist/path-containment.d.ts +3 -1
- package/dist/path-containment.d.ts.map +1 -1
- package/dist/path-containment.js +13 -7
- package/dist/path-containment.js.map +1 -1
- package/dist/path-utils.d.ts +14 -17
- package/dist/path-utils.d.ts.map +1 -1
- package/dist/path-utils.js +37 -55
- package/dist/path-utils.js.map +1 -1
- package/dist/process.d.ts +2 -0
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +2 -0
- package/dist/process.js.map +1 -1
- package/dist/project-utils.d.ts.map +1 -1
- package/dist/project-utils.js +8 -9
- package/dist/project-utils.js.map +1 -1
- package/dist/safe-exec.d.ts +6 -2
- package/dist/safe-exec.d.ts.map +1 -1
- package/dist/safe-exec.js +1 -1
- package/dist/safe-exec.js.map +1 -1
- package/dist/skill-targets.d.ts.map +1 -1
- package/dist/skill-targets.js +3 -1
- package/dist/skill-targets.js.map +1 -1
- package/dist/skill-test/spawn-claude.d.ts +0 -15
- package/dist/skill-test/spawn-claude.d.ts.map +1 -1
- package/dist/skill-test/spawn-claude.js +11 -50
- package/dist/skill-test/spawn-claude.js.map +1 -1
- package/dist/special-file.d.ts +18 -0
- package/dist/special-file.d.ts.map +1 -0
- package/dist/special-file.js +21 -0
- package/dist/special-file.js.map +1 -0
- package/dist/terminating-signals.d.ts +129 -0
- package/dist/terminating-signals.d.ts.map +1 -0
- package/dist/terminating-signals.js +210 -0
- package/dist/terminating-signals.js.map +1 -0
- package/dist/test-helpers.d.ts +9 -5
- package/dist/test-helpers.d.ts.map +1 -1
- package/dist/test-helpers.js +18 -21
- package/dist/test-helpers.js.map +1 -1
- package/dist/test-scratch-guard.d.ts +34 -0
- package/dist/test-scratch-guard.d.ts.map +1 -0
- package/dist/test-scratch-guard.js +45 -0
- package/dist/test-scratch-guard.js.map +1 -0
- package/dist/testing/archive-fixtures.d.ts +147 -0
- package/dist/testing/archive-fixtures.d.ts.map +1 -0
- package/dist/testing/archive-fixtures.js +449 -0
- package/dist/testing/archive-fixtures.js.map +1 -0
- package/dist/testing/executables.d.ts +6 -0
- package/dist/testing/executables.d.ts.map +1 -1
- package/dist/testing/executables.js +20 -9
- package/dist/testing/executables.js.map +1 -1
- package/dist/testing/fault-fs-preload.d.ts +16 -0
- package/dist/testing/fault-fs-preload.d.ts.map +1 -0
- package/dist/testing/fault-fs-preload.js +22 -0
- package/dist/testing/fault-fs-preload.js.map +1 -0
- package/dist/testing/fault-fs.d.ts +115 -0
- package/dist/testing/fault-fs.d.ts.map +1 -0
- package/dist/testing/fault-fs.js +411 -0
- package/dist/testing/fault-fs.js.map +1 -0
- package/dist/testing/fault-spec.d.ts +83 -0
- package/dist/testing/fault-spec.d.ts.map +1 -0
- package/dist/testing/fault-spec.js +132 -0
- package/dist/testing/fault-spec.js.map +1 -0
- package/dist/testing/hostile-tree.d.ts.map +1 -1
- package/dist/testing/hostile-tree.js +3 -4
- package/dist/testing/hostile-tree.js.map +1 -1
- package/dist/testing/platform-gates.d.ts +8 -0
- package/dist/testing/platform-gates.d.ts.map +1 -1
- package/dist/testing/platform-gates.js +24 -0
- package/dist/testing/platform-gates.js.map +1 -1
- package/dist/testing/temp-dir.d.ts +31 -0
- package/dist/testing/temp-dir.d.ts.map +1 -1
- package/dist/testing/temp-dir.js +63 -0
- package/dist/testing/temp-dir.js.map +1 -1
- package/dist/testing/tier-timeout.d.ts +34 -0
- package/dist/testing/tier-timeout.d.ts.map +1 -0
- package/dist/testing/tier-timeout.js +45 -0
- package/dist/testing/tier-timeout.js.map +1 -0
- package/dist/testing/tree-snapshot.d.ts +71 -0
- package/dist/testing/tree-snapshot.d.ts.map +1 -0
- package/dist/testing/tree-snapshot.js +163 -0
- package/dist/testing/tree-snapshot.js.map +1 -0
- package/dist/testing.d.ts +6 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +8 -1
- package/dist/testing.js.map +1 -1
- package/dist/text-file.d.ts +14 -1
- package/dist/text-file.d.ts.map +1 -1
- package/dist/text-file.js +41 -8
- package/dist/text-file.js.map +1 -1
- package/dist/timing-dump.d.ts.map +1 -1
- package/dist/timing-dump.js +2 -10
- package/dist/timing-dump.js.map +1 -1
- package/dist/tree-change/apply-decisions.d.ts +101 -0
- package/dist/tree-change/apply-decisions.d.ts.map +1 -0
- package/dist/tree-change/apply-decisions.js +139 -0
- package/dist/tree-change/apply-decisions.js.map +1 -0
- package/dist/tree-change/apply.d.ts +98 -0
- package/dist/tree-change/apply.d.ts.map +1 -0
- package/dist/tree-change/apply.js +364 -0
- package/dist/tree-change/apply.js.map +1 -0
- package/dist/tree-change/copy-decisions.d.ts +58 -0
- package/dist/tree-change/copy-decisions.d.ts.map +1 -0
- package/dist/tree-change/copy-decisions.js +66 -0
- package/dist/tree-change/copy-decisions.js.map +1 -0
- package/dist/tree-change/copy-tree.d.ts +125 -0
- package/dist/tree-change/copy-tree.d.ts.map +1 -0
- package/dist/tree-change/copy-tree.js +279 -0
- package/dist/tree-change/copy-tree.js.map +1 -0
- package/dist/tree-change/files.d.ts +167 -0
- package/dist/tree-change/files.d.ts.map +1 -0
- package/dist/tree-change/files.js +423 -0
- package/dist/tree-change/files.js.map +1 -0
- package/dist/tree-change/followed-walk.d.ts +54 -0
- package/dist/tree-change/followed-walk.d.ts.map +1 -0
- package/dist/tree-change/followed-walk.js +81 -0
- package/dist/tree-change/followed-walk.js.map +1 -0
- package/dist/tree-change/host-chain.d.ts +48 -0
- package/dist/tree-change/host-chain.d.ts.map +1 -0
- package/dist/tree-change/host-chain.js +85 -0
- package/dist/tree-change/host-chain.js.map +1 -0
- package/dist/tree-change/identity-compare.d.ts +61 -0
- package/dist/tree-change/identity-compare.d.ts.map +1 -0
- package/dist/tree-change/identity-compare.js +115 -0
- package/dist/tree-change/identity-compare.js.map +1 -0
- package/dist/tree-change/identity.d.ts +62 -0
- package/dist/tree-change/identity.d.ts.map +1 -0
- package/dist/tree-change/identity.js +152 -0
- package/dist/tree-change/identity.js.map +1 -0
- package/dist/tree-change/index.d.ts +24 -0
- package/dist/tree-change/index.d.ts.map +1 -0
- package/dist/tree-change/index.js +14 -0
- package/dist/tree-change/index.js.map +1 -0
- package/dist/tree-change/link-chain.d.ts +180 -0
- package/dist/tree-change/link-chain.d.ts.map +1 -0
- package/dist/tree-change/link-chain.js +377 -0
- package/dist/tree-change/link-chain.js.map +1 -0
- package/dist/tree-change/link-containment.d.ts +105 -0
- package/dist/tree-change/link-containment.d.ts.map +1 -0
- package/dist/tree-change/link-containment.js +196 -0
- package/dist/tree-change/link-containment.js.map +1 -0
- package/dist/tree-change/link-walk.d.ts +49 -0
- package/dist/tree-change/link-walk.d.ts.map +1 -0
- package/dist/tree-change/link-walk.js +69 -0
- package/dist/tree-change/link-walk.js.map +1 -0
- package/dist/tree-change/plan.d.ts +206 -0
- package/dist/tree-change/plan.d.ts.map +1 -0
- package/dist/tree-change/plan.js +320 -0
- package/dist/tree-change/plan.js.map +1 -0
- package/dist/tree-change/readable-tree.d.ts +44 -0
- package/dist/tree-change/readable-tree.d.ts.map +1 -0
- package/dist/tree-change/readable-tree.js +52 -0
- package/dist/tree-change/readable-tree.js.map +1 -0
- package/dist/tree-change/rollback-error.d.ts +29 -0
- package/dist/tree-change/rollback-error.d.ts.map +1 -0
- package/dist/tree-change/rollback-error.js +31 -0
- package/dist/tree-change/rollback-error.js.map +1 -0
- package/dist/tree-change/staging-names.d.ts +27 -0
- package/dist/tree-change/staging-names.d.ts.map +1 -0
- package/dist/tree-change/staging-names.js +40 -0
- package/dist/tree-change/staging-names.js.map +1 -0
- package/dist/tree-change/tree-walk.d.ts +81 -0
- package/dist/tree-change/tree-walk.d.ts.map +1 -0
- package/dist/tree-change/tree-walk.js +212 -0
- package/dist/tree-change/tree-walk.js.map +1 -0
- package/dist/win32-namespace.d.ts +24 -0
- package/dist/win32-namespace.d.ts.map +1 -0
- package/dist/win32-namespace.js +31 -0
- package/dist/win32-namespace.js.map +1 -0
- package/dist/yaml/surgical-yaml.d.ts +12 -3
- package/dist/yaml/surgical-yaml.d.ts.map +1 -1
- package/dist/yaml/surgical-yaml.js +16 -6
- package/dist/yaml/surgical-yaml.js.map +1 -1
- package/eslint/README.md +12 -4
- package/eslint/rules/fs-binding-scan.cjs +278 -0
- package/eslint/rules/no-adhoc-errno.cjs +364 -0
- package/eslint/rules/no-bare-symlink-in-tests.cjs +2 -3
- package/eslint/rules/no-blind-catch.cjs +1 -1
- package/eslint/rules/no-destructive-fs.cjs +359 -0
- package/eslint/rules/no-existssync.cjs +70 -0
- package/eslint/rules/no-fragile-entrypoint-guard.cjs +3 -2
- package/eslint/rules/no-link-following-fs.cjs +68 -0
- package/eslint/rules/no-literal-process-exit.cjs +3 -16
- package/eslint/rules/no-literal-test-timeout.cjs +214 -0
- package/eslint/rules/no-raw-signal-listener.cjs +224 -0
- package/eslint/rules/no-stdout-outside-writer.cjs +135 -0
- package/package.json +10 -2
- package/dist/errors/errno.d.ts +0 -51
- package/dist/errors/errno.d.ts.map +0 -1
- package/dist/errors/errno.js +0 -112
- package/dist/errors/errno.js.map +0 -1
- package/eslint/rules/no-fs-promises-cp.cjs +0 -43
package/dist/file-crawler.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import picomatch from 'picomatch';
|
|
3
|
+
import { requireConfirmedAbsent } from './errors/confirmed-absent.js';
|
|
4
|
+
import { fsFaultOf } from './errors/errno-table.js';
|
|
5
|
+
import { classifyFsFault } from './errors/fs-fault.js';
|
|
3
6
|
import { directoryRefusalFor, listingFailure, } from './fs-utils.js';
|
|
4
7
|
import { gitFindRoot, gitLsFiles } from './git-utils.js';
|
|
5
|
-
import {
|
|
8
|
+
import { promised } from './in-order.js';
|
|
9
|
+
import { edgeStatSync, followedStatSync, realpathNativeSync } from './link-following.js';
|
|
10
|
+
import { crawlSideOf, requireUnreadablePolicy, settleCrawlRefusal } from './listing-refusal.js';
|
|
6
11
|
import { toForwardSlash, safePath } from './path-utils.js';
|
|
12
|
+
export { rootListingRefusal } from './fs-utils.js';
|
|
7
13
|
// The refusal vocabulary lives in `listing-refusal.ts` so `git-utils.ts` can
|
|
8
14
|
// share it without importing this module (which imports that one). Re-exported
|
|
9
15
|
// here because `./crawl` is where every caller of the walk already looks.
|
|
10
|
-
export { DirectoryListingRefusedError, refusedListingMessage, settleRefusal, } from './listing-refusal.js';
|
|
16
|
+
export { DirectoryListingRefusedError, onCrawlOutput, refusedListingMessage, settleCrawlRefusal, settleRefusal, } from './listing-refusal.js';
|
|
11
17
|
/**
|
|
12
18
|
* Glob options shared by every pattern this module compiles.
|
|
13
19
|
*
|
|
@@ -120,10 +126,14 @@ export function crawlPathFilter(include, exclude) {
|
|
|
120
126
|
* baseDir: '/project',
|
|
121
127
|
* include: ['**\/*.md'],
|
|
122
128
|
* exclude: ['**\/node_modules/**'],
|
|
129
|
+
* unreadable: { refuse: { root: '/project', remedy: 'Fix the permissions.', side: 'source' } },
|
|
130
|
+
* outputs: [],
|
|
123
131
|
* });
|
|
124
132
|
*/
|
|
125
|
-
export
|
|
126
|
-
|
|
133
|
+
export function crawlDirectory(options) {
|
|
134
|
+
// Not `async`: there is nothing to await. A refusal still arrives as a
|
|
135
|
+
// rejection, never as a synchronous throw.
|
|
136
|
+
return promised(() => crawlDirectorySync(options));
|
|
127
137
|
}
|
|
128
138
|
/**
|
|
129
139
|
* Refuse a symlink observer on the `git ls-files` route.
|
|
@@ -154,11 +164,70 @@ function requireWalkForSymlinkObserver(observer, respectGitignore) {
|
|
|
154
164
|
* baseDir: '/project',
|
|
155
165
|
* include: ['**\/*.md'],
|
|
156
166
|
* exclude: ['**\/node_modules/**'],
|
|
167
|
+
* unreadable: { refuse: { root: '/project', remedy: 'Fix the permissions.', side: 'source' } },
|
|
168
|
+
* outputs: [],
|
|
157
169
|
* });
|
|
158
170
|
*/
|
|
171
|
+
/**
|
|
172
|
+
* Refuse omitted `outputs` by name: the runtime half of a required field, for the callers the
|
|
173
|
+
* type cannot reach (test files are not typechecked; a JavaScript adopter has no compiler).
|
|
174
|
+
* Without it a fault on what the verb writes would be classified as its input.
|
|
175
|
+
*/
|
|
176
|
+
function requireOutputs(outputs) {
|
|
177
|
+
if (outputs === undefined) {
|
|
178
|
+
throw new TypeError('crawlDirectory: `outputs` is required — the trees the calling verb writes, [] for none.');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* `stat` the crawl's base; every fault — an absent base too, as the walk's own listing of it answers — is
|
|
183
|
+
* classified on the context decided only then (see `crawlDirectorySync`).
|
|
184
|
+
*/
|
|
185
|
+
function statCrawlBase(base, context) {
|
|
186
|
+
try {
|
|
187
|
+
// The base is the operator's own input: its own link is the edge the kernel answers.
|
|
188
|
+
return edgeStatSync(base);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
throw classifyFsFault(error, context());
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Whether a member `git ls-files` listed may be handed on. A committed symbolic link (mode 120000)
|
|
196
|
+
* is read by its chain beneath the crawl's base first, as the walk's `processSymlink` reads one: a
|
|
197
|
+
* chain VAT will not follow, or a probe the OS refuses, is a gap settled by `settle` and the member
|
|
198
|
+
* is dropped, so no caller's `readFile` makes the kernel resolve it. A link that resolves to nothing
|
|
199
|
+
* stays a member (its read reports it); a non-link costs one `lstat`.
|
|
200
|
+
*
|
|
201
|
+
* @param fullPath - The member, absolute
|
|
202
|
+
* @param base - The crawl's base, the tree its links are read within
|
|
203
|
+
* @param settle - The walk's `settleLinkFault`: settles a fault on `fullPath` under the caller's policy
|
|
204
|
+
*/
|
|
205
|
+
function gitMemberHandedOn(fullPath, base, settle) {
|
|
206
|
+
try {
|
|
207
|
+
if (!fs.lstatSync(fullPath).isSymbolicLink())
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
if (fsFaultOf(error) === undefined)
|
|
212
|
+
throw error;
|
|
213
|
+
// Absent (a tracked file deleted from the working tree), or a member whose own `lstat` is refused —
|
|
214
|
+
// under a directory git already reported as unlistable: no kernel can follow what it cannot reach,
|
|
215
|
+
// so it stays a member, as it always was, and its read reports it.
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
followedStatSync(fullPath, base);
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
settle(error, fullPath);
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
159
227
|
export function crawlDirectorySync(options) {
|
|
160
|
-
const { baseDir, include = ['**/*'], exclude = DEFAULT_EXCLUDE, followSymlinks = false, absolute = true, filesOnly = true, respectGitignore = true, includeUntracked = false, unreadable, onSymlinkNotFollowed, } = options;
|
|
228
|
+
const { baseDir, include = ['**/*'], exclude = DEFAULT_EXCLUDE, followSymlinks = false, absolute = true, filesOnly = true, respectGitignore = true, includeUntracked = false, unreadable, onSymlinkNotFollowed, outputs, } = options;
|
|
161
229
|
requireUnreadablePolicy(unreadable, 'crawlDirectory');
|
|
230
|
+
requireOutputs(outputs);
|
|
162
231
|
requireWalkForSymlinkObserver(onSymlinkNotFollowed, respectGitignore);
|
|
163
232
|
const picoOptions = PICOMATCH_OPTIONS;
|
|
164
233
|
// Resolve base directory to absolute path
|
|
@@ -180,14 +249,14 @@ export function crawlDirectorySync(options) {
|
|
|
180
249
|
* over. Never a silent skip, on either route.
|
|
181
250
|
*/
|
|
182
251
|
function raiseRefusal(refusal) {
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
// Ensure base directory exists
|
|
186
|
-
if (!fs.existsSync(resolvedBaseDir)) {
|
|
187
|
-
throw new Error(`Base directory does not exist: ${resolvedBaseDir}`);
|
|
252
|
+
settleCrawlRefusal(unreadable, refusal, outputs);
|
|
188
253
|
}
|
|
189
|
-
//
|
|
190
|
-
|
|
254
|
+
// A refusal at the base is the destination's when the base is on what the verb writes, else
|
|
255
|
+
// the input's — the tree this crawl reads, whose content decides what is in it.
|
|
256
|
+
// Decided only once a fault needs it: deciding resolves paths, which a crawl that meets no fault never pays for.
|
|
257
|
+
const crawlBase = () => ({ side: crawlSideOf(resolvedBaseDir, outputs, unreadable), origin: 'content', action: `crawl ${resolvedBaseDir}`, path: resolvedBaseDir });
|
|
258
|
+
// Ensure base directory exists and is actually a directory
|
|
259
|
+
const baseStat = statCrawlBase(resolvedBaseDir, crawlBase);
|
|
191
260
|
if (!baseStat.isDirectory()) {
|
|
192
261
|
throw new Error(`Base path is not a directory: ${resolvedBaseDir}`);
|
|
193
262
|
}
|
|
@@ -246,6 +315,7 @@ export function crawlDirectorySync(options) {
|
|
|
246
315
|
const isMember = crawlPathFilter(include, exclude);
|
|
247
316
|
return gitFiles
|
|
248
317
|
.filter((relativePath) => isMember(relativePath))
|
|
318
|
+
.filter((relativePath) => gitMemberHandedOn(safePath.resolve(resolvedBaseDir, relativePath), resolvedBaseDir, settleLinkFault))
|
|
249
319
|
.map((relativePath) => {
|
|
250
320
|
// git ls-files returns paths relative to cwd
|
|
251
321
|
return absolute ? safePath.resolve(resolvedBaseDir, relativePath) : relativePath;
|
|
@@ -286,11 +356,15 @@ export function crawlDirectorySync(options) {
|
|
|
286
356
|
/**
|
|
287
357
|
* What a failed `readdirSync` / `statSync` means for the walk.
|
|
288
358
|
*
|
|
289
|
-
* Absence (`ENOENT` / `ENOTDIR`) is
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
359
|
+
* Absence (`ENOENT` / `ENOTDIR`) is believed only when the parent's listing
|
|
360
|
+
* agrees ({@link vanished}): an entry that vanished between being enumerated by
|
|
361
|
+
* its parent and being asked about itself is not in the population, nothing to
|
|
362
|
+
* report; one the parent still names was refused, and is a GAP like any other.
|
|
363
|
+
* The BASE has no parent listing: it was just found to exist, so its absence is
|
|
364
|
+
* a classified source fault, never an empty population. Anything else is a
|
|
365
|
+
* refusal, and a refusal is a GAP: handed to the caller if it asked, thrown
|
|
366
|
+
* otherwise. Never a silent `return` — that is the shorter list this walk used
|
|
367
|
+
* to hand back.
|
|
294
368
|
*
|
|
295
369
|
* @param error - What the filesystem threw
|
|
296
370
|
* @param target - The directory (or link) it was asked about
|
|
@@ -298,12 +372,49 @@ export function crawlDirectorySync(options) {
|
|
|
298
372
|
*/
|
|
299
373
|
function reportOrSkip(error, target) {
|
|
300
374
|
const listing = listingFailure(error);
|
|
375
|
+
if (listing.outcome === 'absent' && target === resolvedBaseDir)
|
|
376
|
+
throw classifyFsFault(error, crawlBase());
|
|
301
377
|
if (listing.outcome === 'absent')
|
|
302
|
-
return
|
|
378
|
+
return vanished(error, target);
|
|
303
379
|
if (listing.outcome === 'unreadable')
|
|
304
380
|
raiseRefusal(directoryRefusalFor(listing, target));
|
|
305
381
|
return false;
|
|
306
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Settle a symbolic link whose chain could not be followed — a probe the OS refused, or a chain VAT
|
|
385
|
+
* will not hand the kernel — on either route. A link is not a directory, so under `refuse` it is the
|
|
386
|
+
* classified fault on the link itself (its side from the crawl's one rule), never a "listing
|
|
387
|
+
* refused" for a path that was never listed; under `degrade` it is the gap the caller records.
|
|
388
|
+
*
|
|
389
|
+
* @param error - What following the link threw
|
|
390
|
+
* @param link - The link, absolute
|
|
391
|
+
*/
|
|
392
|
+
function settleLinkFault(error, link) {
|
|
393
|
+
if ('refuse' in unreadable) {
|
|
394
|
+
throw classifyFsFault(error, { side: crawlSideOf(link, outputs, unreadable), origin: 'content', action: 'follow the symbolic link', path: link });
|
|
395
|
+
}
|
|
396
|
+
reportOrSkip(error, link);
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Whether `target`, whose probe answered absent, really is gone: the parent's
|
|
400
|
+
* listing is the second witness (`requireConfirmedAbsent`). A link the parent
|
|
401
|
+
* names is gone when its target is (the probe followed it). An entry the parent
|
|
402
|
+
* still names — or a parent that will not list — is a refused listing,
|
|
403
|
+
* raised under the caller's policy like any other gap.
|
|
404
|
+
*/
|
|
405
|
+
function vanished(error, target) {
|
|
406
|
+
try {
|
|
407
|
+
requireConfirmedAbsent(target, error, { origin: 'content', action: `crawl ${target}` }, { follows: true, sideOf: (refused) => crawlSideOf(refused, outputs, unreadable) });
|
|
408
|
+
return true;
|
|
409
|
+
}
|
|
410
|
+
catch (error_) {
|
|
411
|
+
const facts = fsFaultOf(error_);
|
|
412
|
+
if (facts === undefined)
|
|
413
|
+
throw error_;
|
|
414
|
+
raiseRefusal(directoryRefusalFor({ outcome: 'unreadable', code: facts.errno }, facts.path ?? target));
|
|
415
|
+
return false;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
307
418
|
/**
|
|
308
419
|
* Record a directory as walked, reporting whether it had already been seen.
|
|
309
420
|
*
|
|
@@ -322,7 +433,9 @@ export function crawlDirectorySync(options) {
|
|
|
322
433
|
function alreadyWalked(dir) {
|
|
323
434
|
let realPath;
|
|
324
435
|
try {
|
|
325
|
-
|
|
436
|
+
// The one native fallback rule (`realpathNativeSync`): a volume that cannot answer a
|
|
437
|
+
// final-path query is asked of the JS walk rather than reported as a refused directory.
|
|
438
|
+
realPath = realpathNativeSync(dir, resolvedBaseDir);
|
|
326
439
|
}
|
|
327
440
|
catch (error) {
|
|
328
441
|
reportOrSkip(error, dir);
|
|
@@ -344,17 +457,20 @@ export function crawlDirectorySync(options) {
|
|
|
344
457
|
}
|
|
345
458
|
return;
|
|
346
459
|
}
|
|
347
|
-
// Resolve symlink and check if it's a directory or file
|
|
460
|
+
// Resolve symlink and check if it's a directory or file: its chain is read beneath the base
|
|
461
|
+
// first, so the kernel never follows a text VAT has not read.
|
|
348
462
|
let targetStat;
|
|
349
463
|
try {
|
|
350
|
-
targetStat =
|
|
464
|
+
targetStat = followedStatSync(fullPath, resolvedBaseDir);
|
|
351
465
|
}
|
|
352
466
|
catch (error) {
|
|
353
|
-
// A
|
|
354
|
-
|
|
355
|
-
reportOrSkip(error, fullPath);
|
|
467
|
+
// A target the OS refused to stat, or a chain VAT will not follow: the link's own fault.
|
|
468
|
+
settleLinkFault(error, fullPath);
|
|
356
469
|
return;
|
|
357
470
|
}
|
|
471
|
+
// A broken symlink (or a cycle) is absence and is skipped.
|
|
472
|
+
if (targetStat === undefined)
|
|
473
|
+
return;
|
|
358
474
|
if (targetStat.isDirectory()) {
|
|
359
475
|
walkDirectory(fullPath);
|
|
360
476
|
}
|
package/dist/file-crawler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-crawler.js","sourceRoot":"","sources":["../src/file-crawler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-crawler.js","sourceRoot":"","sources":["../src/file-crawler.ts"],"names":[],"mappings":"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"}
|
package/dist/fs-utils.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Filesystem utilities
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { type FsFaultClass } from './errors/errno-table.js';
|
|
5
5
|
/**
|
|
6
6
|
* What one path looked like the first time this run asked.
|
|
7
7
|
*
|
|
8
8
|
* The two fields are deliberately NOT collapsed into a single `stat` result:
|
|
9
|
-
* they record
|
|
9
|
+
* they record whether anything resolves there and what the `stat` said *separately*,
|
|
10
10
|
* because callers distinguish three states and only two of them are "the stat
|
|
11
11
|
* worked". See {@link FsLookupCache.probe}.
|
|
12
12
|
*/
|
|
13
13
|
export interface PathProbe {
|
|
14
|
-
/**
|
|
14
|
+
/** Whether the path resolves (its chain read first) — a dangling link or a cycle reads as absent. */
|
|
15
15
|
readonly exists: boolean;
|
|
16
16
|
/**
|
|
17
17
|
* `statSync().isDirectory()`.
|
|
@@ -62,7 +62,7 @@ export type DirectoryListing =
|
|
|
62
62
|
/**
|
|
63
63
|
* Turn a `readdir` rejection into the failure it actually is.
|
|
64
64
|
*
|
|
65
|
-
* ⚠️ **`
|
|
65
|
+
* ⚠️ **`fsFaultOf` is deliberately NOT used here, and that is not
|
|
66
66
|
* an oversight.** It answers a different question — *"is this the environment's
|
|
67
67
|
* fault or a bug in our code?"* — and to answer it, it deliberately groups
|
|
68
68
|
* `ENOENT` together with `EACCES`. That grouping IS the conflation this function
|
|
@@ -79,7 +79,7 @@ export type DirectoryListing =
|
|
|
79
79
|
*/
|
|
80
80
|
export declare function listingFailure(error: unknown): DirectoryListing;
|
|
81
81
|
/**
|
|
82
|
-
* The clause a finding prints about a refusal {@link
|
|
82
|
+
* The clause a finding prints about a refusal {@link isTransientListingCode}
|
|
83
83
|
* calls transient — owned here, beside the list, so it describes every member.
|
|
84
84
|
*
|
|
85
85
|
* 🪤 Both consumers of `AbsenceCause.transient` used to write their own: "`X`
|
|
@@ -132,6 +132,8 @@ export interface PathProbeStats {
|
|
|
132
132
|
*/
|
|
133
133
|
export declare class FsLookupCache {
|
|
134
134
|
#private;
|
|
135
|
+
/** @param within - The tree this run's paths are crawled in — a project or skill root the operator named */
|
|
136
|
+
constructor(within: string);
|
|
135
137
|
/**
|
|
136
138
|
* The three-way spelling index over this cache's listings — one per run, for
|
|
137
139
|
* the same reason the listings themselves are.
|
|
@@ -159,12 +161,12 @@ export declare class FsLookupCache {
|
|
|
159
161
|
/**
|
|
160
162
|
* Does this path exist, and is it a directory — asked once per run.
|
|
161
163
|
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* `
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
164
|
+
* One followed `stat`, its link chain read beneath this cache's tree first
|
|
165
|
+
* (`followedStatSync`): a path that resolves to nothing — absent, dangling, a
|
|
166
|
+
* cycle — is `{ exists: false }`; a probe the OS refused, or a chain VAT will not
|
|
167
|
+
* hand the kernel (a link to a network or device path), is present with NO
|
|
168
|
+
* answer (`isDirectory: null`), which the link walker reports as an unreadable
|
|
169
|
+
* target — so the refusal is SEEN, never read as "not there".
|
|
168
170
|
*
|
|
169
171
|
* Synchronous, unlike this class's other two lookups, because its caller (the
|
|
170
172
|
* skill link-graph walker) is synchronous throughout. One oracle answering
|
|
@@ -210,9 +212,16 @@ export declare class FsLookupCache {
|
|
|
210
212
|
* is idempotent at a root (`'/'` on posix, `'C:/'` for a drive, `'//server/share/'`
|
|
211
213
|
* for a UNC share), so without it the walk never terminates.
|
|
212
214
|
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
215
|
+
* Every filesystem failure walks up, and the row says which kind it was
|
|
216
|
+
* ({@link linkResolutionFault}, the one predicate): a path that resolves to
|
|
217
|
+
* nothing (ENOENT, ELOOP on a cycle, …) carries `fault: null`, and one the OS
|
|
218
|
+
* DECLINED (`EACCES`/`EPERM`) or could not look at carries the fault — errno
|
|
219
|
+
* and class — for the judge to report against that ONE target. Never a
|
|
220
|
+
* rejection: this column is filled over every link target in one
|
|
221
|
+
* `Promise.all`, and one refused target must not abort the run and lose every
|
|
222
|
+
* other finding. The ancestor answer is still the containment answer: a
|
|
223
|
+
* target outside the root is outside whatever refused beneath it. A bug
|
|
224
|
+
* (no errno) rejects as itself.
|
|
216
225
|
*
|
|
217
226
|
* ⚠️ **`promisify(nodeFs.realpath)` — NOT `fs/promises.realpath`. Node ships two
|
|
218
227
|
* different realpaths and they do not agree.** `fs.realpathSync` and the
|
|
@@ -250,15 +259,16 @@ export declare class FsLookupCache {
|
|
|
250
259
|
* The wrapper is allocated only on a cache MISS, i.e. once per actual syscall.
|
|
251
260
|
*
|
|
252
261
|
* @param targetPath - Path to canonicalize
|
|
253
|
-
* @returns
|
|
262
|
+
* @returns The canonical path with forward slashes on every platform, and the
|
|
263
|
+
* fault (or `null`) that sent the answer to an ancestor
|
|
254
264
|
*/
|
|
255
|
-
realpath(targetPath: string): Promise<
|
|
265
|
+
realpath(targetPath: string): Promise<RealpathRow>;
|
|
256
266
|
/**
|
|
257
267
|
* What `dirPath` holds, or which of the two ways the question went unanswered.
|
|
258
268
|
*
|
|
259
269
|
* A *stable* failure is cached like a success: re-asking a directory whose
|
|
260
270
|
* mode bits refuse us, or whose path is a symlink cycle, is the same failed
|
|
261
|
-
* syscall. A **transient** one is not — see {@link
|
|
271
|
+
* syscall. A **transient** one is not — see {@link isTransientListingCode}.
|
|
262
272
|
*
|
|
263
273
|
* ⚠️ **The transient entry is dropped only once the promise has SETTLED, and
|
|
264
274
|
* that timing is the whole design.** Deleting the row up front, or refusing to
|
|
@@ -281,30 +291,6 @@ export declare class FsLookupCache {
|
|
|
281
291
|
*/
|
|
282
292
|
readdir(dirPath: string): Promise<DirectoryListing>;
|
|
283
293
|
}
|
|
284
|
-
/** Thrown when a link inside the tree being copied points outside it. */
|
|
285
|
-
export declare class CopyLinkEscapesSourceError extends VatError {
|
|
286
|
-
constructor(link: string, src: string);
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Recursively copy a directory, following symlinks — contained to `src`.
|
|
290
|
-
*
|
|
291
|
-
* A link is copied as what it points at (a linked directory as its tree, a
|
|
292
|
-
* linked file as its bytes; a dangling link fails loudly in `stat`). Two
|
|
293
|
-
* refusals bound that: a link whose target is not under `src` throws
|
|
294
|
-
* {@link CopyLinkEscapesSourceError} — `scripts/etc -> /etc` used to copy
|
|
295
|
-
* `/etc` into `dist` — and a link that leads the walk back into a directory
|
|
296
|
-
* it already entered throws `DirectoryWalkRevisitedError` (`scripts/loop -> .`
|
|
297
|
-
* used to create `dest/loop/loop/…` until `ENAMETOOLONG`, writing every file
|
|
298
|
-
* at every level first). Adopter-authored trees reach this through
|
|
299
|
-
* `vat agent build`, so neither shape is exotic.
|
|
300
|
-
*
|
|
301
|
-
* @param src - Source directory path
|
|
302
|
-
* @param dest - Destination directory path
|
|
303
|
-
*
|
|
304
|
-
* @example
|
|
305
|
-
* await copyDirectory('/source/dir', '/dest/dir');
|
|
306
|
-
*/
|
|
307
|
-
export declare function copyDirectory(src: string, dest: string): Promise<void>;
|
|
308
294
|
/**
|
|
309
295
|
* Which spelling rule matched a name, and therefore how faithfully the
|
|
310
296
|
* asked-for spelling matches disk.
|
|
@@ -405,7 +391,7 @@ export type AbsenceCause =
|
|
|
405
391
|
readonly directory: string;
|
|
406
392
|
/**
|
|
407
393
|
* Whether re-running could get a different answer — see
|
|
408
|
-
* {@link
|
|
394
|
+
* {@link isTransientListingCode}.
|
|
409
395
|
*
|
|
410
396
|
* Derived once, here, rather than by each consumer: two lanes write a
|
|
411
397
|
* "re-run before investigating" remedy off this fact, and a second errno
|
|
@@ -432,6 +418,18 @@ export type DirectoryRefusal = Extract<AbsenceCause, {
|
|
|
432
418
|
export declare function directoryRefusalFor(listing: Extract<DirectoryListing, {
|
|
433
419
|
outcome: 'unreadable';
|
|
434
420
|
}>, directory: string): DirectoryRefusal;
|
|
421
|
+
/**
|
|
422
|
+
* The refusal a failed `stat` or `readdir` of a scan ROOT stands for, or
|
|
423
|
+
* `undefined` when the root is simply absent (`ENOENT`/`ENOTDIR`).
|
|
424
|
+
*
|
|
425
|
+
* For a caller that must decide whether a root exists before it scans it: an
|
|
426
|
+
* `existsSync` answers `false` for an untraversable parent too, and the root
|
|
427
|
+
* then reads as scanned and empty.
|
|
428
|
+
*
|
|
429
|
+
* @param error - What the `stat` or `readdir` of `directory` threw
|
|
430
|
+
* @param directory - The root that was asked about
|
|
431
|
+
*/
|
|
432
|
+
export declare function rootListingRefusal(error: unknown, directory: string): DirectoryRefusal | undefined;
|
|
435
433
|
/** What one directory entry name matched, and how the directory spells it. */
|
|
436
434
|
export type ComponentMatch = {
|
|
437
435
|
match: Exclude<FilenameMatch, 'absent'>;
|
|
@@ -621,22 +619,48 @@ export declare function fillPathSpellings(requests: Iterable<PathSpellingRequest
|
|
|
621
619
|
*/
|
|
622
620
|
export declare function pathSpellingFrom(table: PathSpellingTable, referrer: string, target: string): PathSpelling;
|
|
623
621
|
/**
|
|
624
|
-
*
|
|
622
|
+
* Why a path's canonical answer came from an ancestor although something is
|
|
623
|
+
* there to resolve: the OS declined (`EACCES`, `EPERM`), ran short or could not
|
|
624
|
+
* look. Carried on the row so a judge reports it against that ONE target.
|
|
625
|
+
*/
|
|
626
|
+
export interface RealpathFault {
|
|
627
|
+
readonly errno: string;
|
|
628
|
+
readonly faultClass: FsFaultClass;
|
|
629
|
+
/** The resolution's own error — what a caller classifies when the path is the run's own (the project root), not a target. */
|
|
630
|
+
readonly error: unknown;
|
|
631
|
+
}
|
|
632
|
+
/** One row of the realpath column. */
|
|
633
|
+
export interface RealpathRow {
|
|
634
|
+
/** The canonical path, forward-slashed — from the deepest ancestor that resolved when the path itself did not. */
|
|
635
|
+
readonly path: string;
|
|
636
|
+
/**
|
|
637
|
+
* `null` when the path resolved, or resolves to nothing (dangling, a cycle);
|
|
638
|
+
* otherwise the fault that kept it from resolving. Required, never optional,
|
|
639
|
+
* so every WRITER of a row must decide it. The type does not make a reader ask:
|
|
640
|
+
* one that uses `path` alone still compiles, and reads a faulted row as the
|
|
641
|
+
* nearest ancestor that resolved. Every judge of a link target reads `fault`
|
|
642
|
+
* before it trusts `path` (`gitIgnoreSafetyIssue` beside `isWithinProjectFrom`).
|
|
643
|
+
*/
|
|
644
|
+
readonly fault: RealpathFault | null;
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* The materialized realpath column: path → its canonical path and the fault, if
|
|
648
|
+
* any, that kept it from resolving.
|
|
625
649
|
*
|
|
626
|
-
* Every filled row is a
|
|
650
|
+
* Every filled row is a {@link RealpathRow} — never `null`, never `undefined`.
|
|
627
651
|
* {@link FsLookupCache.realpath} answers a path it cannot canonicalize from that
|
|
628
652
|
* path's deepest existing ancestor rather than failing, because a path that does
|
|
629
653
|
* not exist has no realpath and a caller comparing paths still needs an answer.
|
|
630
654
|
* That fallback IS the contract, and it is what lets `undefined` out of this map
|
|
631
|
-
* mean exactly one thing: *absent key*. See {@link
|
|
655
|
+
* mean exactly one thing: *absent key*. See {@link realpathRowFrom}.
|
|
632
656
|
*/
|
|
633
|
-
export type RealpathTable = ReadonlyMap<string,
|
|
657
|
+
export type RealpathTable = ReadonlyMap<string, RealpathRow>;
|
|
634
658
|
/**
|
|
635
659
|
* Canonicalize every path in `paths` — the only place I/O is legal for this
|
|
636
660
|
* fact, and the pass that must run *before* any judging.
|
|
637
661
|
*
|
|
638
662
|
* ⚠️ **Rows are keyed by the input path string exactly as given** — not a
|
|
639
|
-
* dirname, not a re-resolved form. {@link
|
|
663
|
+
* dirname, not a re-resolved form. {@link realpathRowFrom} looks that same string
|
|
640
664
|
* up, so any normalization applied here and not there is a silent miss (a loud
|
|
641
665
|
* one, in fact: the judge throws). Contrast {@link fillPathSpellings}, which
|
|
642
666
|
* keys by (walk root, target) *because* many references share one walk; here the
|
|
@@ -655,7 +679,8 @@ export type RealpathTable = ReadonlyMap<string, string>;
|
|
|
655
679
|
*/
|
|
656
680
|
export declare function fillRealpaths(paths: Iterable<string>, fsCache: FsLookupCache): Promise<RealpathTable>;
|
|
657
681
|
/**
|
|
658
|
-
* Read the
|
|
682
|
+
* Read the row for `filePath` — its canonical path and the fault, if any, that
|
|
683
|
+
* kept it from resolving — out of an already-filled table. Pure.
|
|
659
684
|
*
|
|
660
685
|
* **A miss throws rather than degrading to a recomputed realpath.** The fill set
|
|
661
686
|
* is derived from exactly the paths the judge will be asked about, so a missing
|
|
@@ -678,8 +703,8 @@ export declare function fillRealpaths(paths: Iterable<string>, fsCache: FsLookup
|
|
|
678
703
|
*
|
|
679
704
|
* @param table - Table filled by {@link fillRealpaths}
|
|
680
705
|
* @param filePath - Path being asked about, as it was handed to the fill
|
|
681
|
-
* @returns The canonical path, with forward slashes on every platform
|
|
706
|
+
* @returns The row: the canonical path, with forward slashes on every platform, and its fault
|
|
682
707
|
* @throws If `table` holds no row for `filePath`
|
|
683
708
|
*/
|
|
684
|
-
export declare function
|
|
709
|
+
export declare function realpathRowFrom(table: RealpathTable, filePath: string): RealpathRow;
|
|
685
710
|
//# sourceMappingURL=fs-utils.d.ts.map
|
package/dist/fs-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../src/fs-utils.ts"],"names":[],"mappings":"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"}
|