@melra/file-runtime 0.3.0-alpha.12 → 0.3.0-alpha.13
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/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +150 -9
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -3,14 +3,39 @@ export interface FileRuntimeOptions {
|
|
|
3
3
|
root: string;
|
|
4
4
|
maxFileBytes?: number;
|
|
5
5
|
maxEntries?: number;
|
|
6
|
+
/**
|
|
7
|
+
* Files and directories no operation may reach, even inside the root: the
|
|
8
|
+
* ones MELRA itself holds open or locked. Opening and closing one of those in
|
|
9
|
+
* this process would drop this process's POSIX locks on it. Recognised by
|
|
10
|
+
* the identity of the directory holding them and a case-insensitive name,
|
|
11
|
+
* not by spelling, so a firmlink, a bind mount or a case variant of that
|
|
12
|
+
* directory still reaches the same refusal.
|
|
13
|
+
*/
|
|
14
|
+
reserved?: string[];
|
|
6
15
|
}
|
|
7
16
|
export declare class FileRuntime {
|
|
8
17
|
readonly root: string;
|
|
9
18
|
readonly maxFileBytes: number;
|
|
10
19
|
readonly maxEntries: number;
|
|
20
|
+
private readonly reserved;
|
|
11
21
|
private constructor();
|
|
12
22
|
static create(options: FileRuntimeOptions): Promise<FileRuntime>;
|
|
13
|
-
|
|
23
|
+
/**
|
|
24
|
+
* `creating` refuses a path that is, or is inside, a git directory: a
|
|
25
|
+
* repository's config, attributes and hooks name programs git runs while
|
|
26
|
+
* serving a read that needs no approval, so content written there by an
|
|
27
|
+
* innocent-looking approved write would run later with none. Judged on the
|
|
28
|
+
* resolved path, by the filesystem's spelling, so a link or a case variant
|
|
29
|
+
* reaches the same refusal.
|
|
30
|
+
*
|
|
31
|
+
* ponytail: by name, so an NTFS stream spelling of `.git` is not caught; the
|
|
32
|
+
* reserved-file check has the same Windows follow-up.
|
|
33
|
+
*/
|
|
34
|
+
resolvePath(input: string, allowRoot?: boolean, creating?: boolean): Promise<string>;
|
|
35
|
+
/** Whether `path` is, or is inside, one of the reserved entries. */
|
|
36
|
+
isReserved(path: string): Promise<boolean>;
|
|
37
|
+
/** Whether `path` is a directory holding a reserved entry at any depth: a recursive reader given it reaches them unnamed. */
|
|
38
|
+
holdsReserved(path: string): Promise<boolean>;
|
|
14
39
|
execute(operation: FileOperation): Promise<Record<string, unknown>>;
|
|
15
40
|
}
|
|
16
41
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAmCD,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAEpC,OAAO;WAOM,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAatE;;;;;;;;;;OAUG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAmCtF,oEAAoE;IAC9D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDhD,6HAA6H;IACvH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB7C,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAkH1E"}
|
package/dist/index.js
CHANGED
|
@@ -2,17 +2,47 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import { lstat, mkdir, readFile, readdir, realpath, rename, rm, stat, writeFile, } from "node:fs/promises";
|
|
5
|
-
import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
5
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
6
6
|
function inside(root, candidate) {
|
|
7
7
|
const rel = relative(root, candidate);
|
|
8
8
|
return rel === "" || (!rel.startsWith(`..${sep}`) && rel !== ".." && !isAbsolute(rel));
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* A name as a case-insensitive filesystem, or Windows' trailing-dot rule, sees
|
|
12
|
+
* it. Upper then lower is closer to the filesystem's case folding than lower
|
|
13
|
+
* alone: it takes `ſ` to `s` and the Kelvin sign to `k`, as APFS does.
|
|
14
|
+
*/
|
|
15
|
+
function spelling(name) {
|
|
16
|
+
const lower = name.toUpperCase().toLowerCase();
|
|
17
|
+
if (process.platform !== "win32")
|
|
18
|
+
return lower;
|
|
19
|
+
// A loop, not /[. ]+$/: that pattern backtracks quadratically on a long
|
|
20
|
+
// run of spaces, and the name is the caller's.
|
|
21
|
+
let end = lower.length;
|
|
22
|
+
while (end > 0 && (lower[end - 1] === "." || lower[end - 1] === " "))
|
|
23
|
+
end -= 1;
|
|
24
|
+
return lower.slice(0, end);
|
|
25
|
+
}
|
|
26
|
+
function identity(entry) {
|
|
27
|
+
return `${entry.dev}:${entry.ino}`;
|
|
28
|
+
}
|
|
29
|
+
async function sameEntry(left, right) {
|
|
30
|
+
try {
|
|
31
|
+
const [a, b] = await Promise.all([stat(left, { bigint: true }), stat(right, { bigint: true })]);
|
|
32
|
+
return a.dev === b.dev && a.ino === b.ino;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
10
38
|
export class FileRuntime {
|
|
11
39
|
root;
|
|
12
40
|
maxFileBytes;
|
|
13
41
|
maxEntries;
|
|
42
|
+
reserved;
|
|
14
43
|
constructor(options, root) {
|
|
15
44
|
this.root = root;
|
|
45
|
+
this.reserved = (options.reserved ?? []).map((path) => resolve(path));
|
|
16
46
|
this.maxFileBytes = options.maxFileBytes ?? 10 * 1024 * 1024;
|
|
17
47
|
this.maxEntries = options.maxEntries ?? 1_000;
|
|
18
48
|
}
|
|
@@ -26,18 +56,34 @@ export class FileRuntime {
|
|
|
26
56
|
await mkdir(options.root, { recursive: true });
|
|
27
57
|
return new FileRuntime(options, await realpath(options.root));
|
|
28
58
|
}
|
|
29
|
-
|
|
59
|
+
/**
|
|
60
|
+
* `creating` refuses a path that is, or is inside, a git directory: a
|
|
61
|
+
* repository's config, attributes and hooks name programs git runs while
|
|
62
|
+
* serving a read that needs no approval, so content written there by an
|
|
63
|
+
* innocent-looking approved write would run later with none. Judged on the
|
|
64
|
+
* resolved path, by the filesystem's spelling, so a link or a case variant
|
|
65
|
+
* reaches the same refusal.
|
|
66
|
+
*
|
|
67
|
+
* ponytail: by name, so an NTFS stream spelling of `.git` is not caught; the
|
|
68
|
+
* reserved-file check has the same Windows follow-up.
|
|
69
|
+
*/
|
|
70
|
+
async resolvePath(input, allowRoot = false, creating = false) {
|
|
30
71
|
const lexical = resolve(this.root, input);
|
|
31
|
-
|
|
72
|
+
// "Is it the root" asked the way `inside` asks "is it within": through
|
|
73
|
+
// `relative`, which ignores case on Windows. A string compare let `..\\WS`
|
|
74
|
+
// past it for a root spelled `ws`, and a recursive delete took everything.
|
|
75
|
+
if (!inside(this.root, lexical) || (!allowRoot && relative(this.root, lexical) === "")) {
|
|
32
76
|
throw new Error("path_outside_workspace");
|
|
33
77
|
}
|
|
34
78
|
let probe = lexical;
|
|
79
|
+
let real = lexical;
|
|
35
80
|
while (true) {
|
|
36
81
|
try {
|
|
37
82
|
const actual = await realpath(probe);
|
|
38
83
|
if (!inside(this.root, actual)) {
|
|
39
84
|
throw new Error("path_outside_workspace");
|
|
40
85
|
}
|
|
86
|
+
real = join(actual, relative(probe, lexical));
|
|
41
87
|
break;
|
|
42
88
|
}
|
|
43
89
|
catch (error) {
|
|
@@ -50,10 +96,92 @@ export class FileRuntime {
|
|
|
50
96
|
probe = parent;
|
|
51
97
|
}
|
|
52
98
|
}
|
|
99
|
+
if (await this.isReserved(real))
|
|
100
|
+
throw new Error("path_reserved");
|
|
101
|
+
if (creating && relative(this.root, real).split(sep).some((part) => spelling(part) === ".git")) {
|
|
102
|
+
throw new Error("path_git_metadata");
|
|
103
|
+
}
|
|
53
104
|
return lexical;
|
|
54
105
|
}
|
|
106
|
+
/** Whether `path` is, or is inside, one of the reserved entries. */
|
|
107
|
+
async isReserved(path) {
|
|
108
|
+
// A descriptor path names whatever this process has open, MELRA's locked
|
|
109
|
+
// files included, and on macOS realpath leaves it under /dev/fd.
|
|
110
|
+
if (process.platform !== "win32" && inside("/dev/fd", resolve(path)))
|
|
111
|
+
return true;
|
|
112
|
+
// ponytail: one stat per name match, so `payload.key/` repeated 340 times
|
|
113
|
+
// across 100 arguments still costs about 0.9 s. Cache the reserved
|
|
114
|
+
// identities if that ever shows up.
|
|
115
|
+
for (let current = resolve(path);; current = dirname(current)) {
|
|
116
|
+
const name = spelling(basename(current));
|
|
117
|
+
for (const entry of this.reserved) {
|
|
118
|
+
// Only a matching name costs a stat, so ordinary paths cost nothing.
|
|
119
|
+
if (spelling(basename(entry)) === name && (await sameEntry(dirname(current), dirname(entry)))) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (dirname(current) === current)
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
// The same thing under another name: a hard link, or macOS's
|
|
127
|
+
// /.vol/<dev>/<ino>, which names a file or directory by its inode alone.
|
|
128
|
+
// So the target and each directory above it are compared by identity with
|
|
129
|
+
// every reserved entry and every file inside a reserved directory.
|
|
130
|
+
const identities = new Set();
|
|
131
|
+
for (const entry of this.reserved) {
|
|
132
|
+
const found = await stat(entry, { bigint: true }).catch(() => undefined);
|
|
133
|
+
if (found === undefined)
|
|
134
|
+
continue;
|
|
135
|
+
identities.add(identity(found));
|
|
136
|
+
if (!found.isDirectory())
|
|
137
|
+
continue;
|
|
138
|
+
for (const name of await readdir(entry).catch(() => [])) {
|
|
139
|
+
const file = await stat(join(entry, name), { bigint: true }).catch(() => undefined);
|
|
140
|
+
if (file !== undefined)
|
|
141
|
+
identities.add(identity(file));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (identities.size === 0)
|
|
145
|
+
return false;
|
|
146
|
+
// Root first, stopping at the first missing directory: nothing below it
|
|
147
|
+
// exists, and a 4 KB argument would otherwise cost thousands of failed stats.
|
|
148
|
+
const chain = [];
|
|
149
|
+
for (let current = resolve(path);; current = dirname(current)) {
|
|
150
|
+
chain.unshift(current);
|
|
151
|
+
if (dirname(current) === current)
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
for (const current of chain) {
|
|
155
|
+
const found = await stat(current, { bigint: true }).catch(() => undefined);
|
|
156
|
+
if (found !== undefined && identities.has(identity(found)))
|
|
157
|
+
return true;
|
|
158
|
+
// Except /.vol/<dev>, which never stats though /.vol/<dev>/<ino> below it does.
|
|
159
|
+
if (found === undefined && dirname(current) !== "/.vol")
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
/** Whether `path` is a directory holding a reserved entry at any depth: a recursive reader given it reaches them unnamed. */
|
|
165
|
+
async holdsReserved(path) {
|
|
166
|
+
const target = await stat(path, { bigint: true }).catch(() => undefined);
|
|
167
|
+
if (target?.isDirectory() !== true)
|
|
168
|
+
return false;
|
|
169
|
+
for (const holder of new Set(this.reserved.map((entry) => dirname(entry)))) {
|
|
170
|
+
// Lexically and through links, so a holder under a symlinked home is still found.
|
|
171
|
+
for (const start of new Set([holder, await realpath(holder).catch(() => holder)])) {
|
|
172
|
+
for (let current = start;; current = dirname(current)) {
|
|
173
|
+
const found = await stat(current, { bigint: true }).catch(() => undefined);
|
|
174
|
+
if (found !== undefined && identity(found) === identity(target))
|
|
175
|
+
return true;
|
|
176
|
+
if (dirname(current) === current)
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
55
183
|
async execute(operation) {
|
|
56
|
-
const path = await this.resolvePath(operation.path, operation.action === "list" && operation.path === ".");
|
|
184
|
+
const path = await this.resolvePath(operation.path, operation.action === "list" && operation.path === ".", operation.action === "write" || operation.action === "mkdir");
|
|
57
185
|
switch (operation.action) {
|
|
58
186
|
case "list": {
|
|
59
187
|
const entries = await readdir(path, { withFileTypes: true });
|
|
@@ -107,10 +235,14 @@ export class FileRuntime {
|
|
|
107
235
|
};
|
|
108
236
|
}
|
|
109
237
|
case "hash": {
|
|
110
|
-
|
|
111
|
-
|
|
238
|
+
// Checked before reading, as `read` does: hashing a 1.5 GB pack file
|
|
239
|
+
// read it all into memory first, and a FIFO blocked forever.
|
|
240
|
+
const metadata = await stat(path);
|
|
241
|
+
if (!metadata.isFile())
|
|
242
|
+
throw new Error("file_hash_requires_regular_file");
|
|
243
|
+
if (metadata.size > this.maxFileBytes)
|
|
112
244
|
throw new Error("file_size_limit_exceeded");
|
|
113
|
-
|
|
245
|
+
const buffer = await readFile(path);
|
|
114
246
|
return {
|
|
115
247
|
path: relative(this.root, path),
|
|
116
248
|
size: buffer.byteLength,
|
|
@@ -126,7 +258,16 @@ export class FileRuntime {
|
|
|
126
258
|
await mkdir(dirname(path), { recursive: true });
|
|
127
259
|
const temporary = `${path}.melra-${randomUUID()}.tmp`;
|
|
128
260
|
await writeFile(temporary, buffer, { flag: "wx" });
|
|
129
|
-
|
|
261
|
+
try {
|
|
262
|
+
await rename(temporary, path);
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
// A rename that failed (the target is a directory, or held open on
|
|
266
|
+
// Windows) would otherwise leave the content, secrets and all,
|
|
267
|
+
// beside it in the workspace, one copy per retry.
|
|
268
|
+
await rm(temporary, { force: true });
|
|
269
|
+
throw error;
|
|
270
|
+
}
|
|
130
271
|
return {
|
|
131
272
|
written: true,
|
|
132
273
|
path: relative(this.root, path),
|
|
@@ -138,7 +279,7 @@ export class FileRuntime {
|
|
|
138
279
|
if (operation.destination === undefined) {
|
|
139
280
|
throw new Error("file_move_requires_destination");
|
|
140
281
|
}
|
|
141
|
-
const destination = await this.resolvePath(operation.destination);
|
|
282
|
+
const destination = await this.resolvePath(operation.destination, false, true);
|
|
142
283
|
await mkdir(dirname(destination), { recursive: true });
|
|
143
284
|
await rename(path, destination);
|
|
144
285
|
return {
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@melra/file-runtime",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.13",
|
|
4
4
|
"description": "Workspace-confined file reference effect adapter for the MELRA kernel.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"dist"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@melra/protocol": "0.3.0-alpha.
|
|
24
|
+
"@melra/protocol": "0.3.0-alpha.13"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "tsc -p tsconfig.json",
|