@neottia/repository-store 0.2.0 → 0.2.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/README.md +6 -4
- package/binding.gyp +11 -2
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +2 -2
- package/dist/files.js.map +1 -1
- package/dist/internal/filesystem.d.ts +3 -1
- package/dist/internal/filesystem.d.ts.map +1 -1
- package/dist/internal/filesystem.js +63 -5
- package/dist/internal/filesystem.js.map +1 -1
- package/dist/internal/platform-backend.d.ts +23 -0
- package/dist/internal/platform-backend.d.ts.map +1 -0
- package/dist/internal/platform-backend.js +110 -0
- package/dist/internal/platform-backend.js.map +1 -0
- package/dist/internal/publication.d.ts.map +1 -1
- package/dist/internal/publication.js +28 -16
- package/dist/internal/publication.js.map +1 -1
- package/dist/lease.d.ts.map +1 -1
- package/dist/lease.js +44 -23
- package/dist/lease.js.map +1 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +4 -1
- package/dist/paths.js.map +1 -1
- package/dist/sqlite/adapter.d.ts +1 -0
- package/dist/sqlite/adapter.d.ts.map +1 -1
- package/dist/sqlite/adapter.js +9 -0
- package/dist/sqlite/adapter.js.map +1 -1
- package/dist/sqlite/cache-publication.d.ts.map +1 -1
- package/dist/sqlite/cache-publication.js +2 -2
- package/dist/sqlite/cache-publication.js.map +1 -1
- package/dist/sqlite/cache.d.ts.map +1 -1
- package/dist/sqlite/cache.js +1 -2
- package/dist/sqlite/cache.js.map +1 -1
- package/dist/transaction/apply.js +2 -2
- package/dist/transaction/apply.js.map +1 -1
- package/dist/transaction/journal.js +2 -2
- package/dist/transaction/journal.js.map +1 -1
- package/dist/transaction/recovery.js +2 -2
- package/dist/transaction/recovery.js.map +1 -1
- package/native/{rename_noreplace.cc → backend.cc} +47 -49
- package/native/linux_backend.cc +45 -0
- package/native/macos_backend.cc +84 -0
- package/native/platform_backend.h +17 -0
- package/native/unsupported_backend.cc +28 -0
- package/native/windows_backend.cc +179 -0
- package/package.json +5 -5
- package/scripts/install-native.mjs +2 -2
- package/dist/internal/native-publication.d.ts +0 -9
- package/dist/internal/native-publication.d.ts.map +0 -1
- package/dist/internal/native-publication.js +0 -65
- package/dist/internal/native-publication.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,11 +14,13 @@ The package owns byte-safe paths, SHA-256 revisions, one cross-process authority
|
|
|
14
14
|
|
|
15
15
|
- Node.js 22.16 or newer, using `node:sqlite`.
|
|
16
16
|
- Bun 1.3.13 or newer, using `bun:sqlite`.
|
|
17
|
-
- Linux x64 or arm64 with libc/kernel support for `renameat2(..., RENAME_NOREPLACE)
|
|
18
|
-
-
|
|
19
|
-
-
|
|
17
|
+
- Linux x64 or arm64 with libc/kernel support for `renameat2(..., RENAME_NOREPLACE)` and a recognized local ext4, XFS, Btrfs, tmpfs, or overlay filesystem.
|
|
18
|
+
- macOS 15 or 26 on x64 or arm64 with a local APFS volume that reports hard-link, persistent-identity, and exclusive-rename capabilities.
|
|
19
|
+
- Windows Server 2022 or 2025 on x64 with a fixed local NTFS volume that reports stable file-identity and hard-link capabilities.
|
|
20
|
+
- Same-volume regular-file hard links.
|
|
21
|
+
- A C++17 compiler, Python, Make, and the platform development headers required to build the Node-API addon during installation.
|
|
20
22
|
|
|
21
|
-
The addon is built from architecture-neutral source and is loaded lazily by both Node and Bun. Repository authority acquisition
|
|
23
|
+
The addon is built from architecture-neutral source and is loaded lazily by both Node and Bun. Linux uses `renameat2(..., RENAME_NOREPLACE)` and `fsync`. macOS uses `renamex_np(..., RENAME_EXCL)` and `F_FULLFSYNC`. Windows uses `SetFileInformationByHandle(..., FileRenameInfoEx)` without replacement and the Node/Bun `fsyncSync` descriptor barrier; NTFS journals same-volume namespace mutations because Windows does not expose an unprivileged directory-descriptor flush through Node.js. Repository authority acquisition checks the addon and filesystem capabilities before it creates claim or lease artifacts. FreeBSD, Windows arm64, ReFS, FAT, remote or removable Windows volumes, missing or unloadable addon builds, unavailable native operations, uncertified filesystems, and shared or network filesystems return `UNSUPPORTED_RUNTIME`. Leased canonical and cache operations, including read-only operations, are unavailable in those environments.
|
|
22
24
|
|
|
23
25
|
## Canonical files
|
|
24
26
|
|
package/binding.gyp
CHANGED
|
@@ -2,8 +2,17 @@
|
|
|
2
2
|
"targets": [
|
|
3
3
|
{
|
|
4
4
|
"target_name": "repository_store_native",
|
|
5
|
-
"sources": ["native/
|
|
6
|
-
"
|
|
5
|
+
"sources": ["native/backend.cc"],
|
|
6
|
+
"conditions": [
|
|
7
|
+
["OS == 'linux'", { "sources": ["native/linux_backend.cc"] }],
|
|
8
|
+
["OS == 'mac'", { "sources": ["native/macos_backend.cc"] }],
|
|
9
|
+
["OS == 'win'", { "sources": ["native/windows_backend.cc"] }],
|
|
10
|
+
["OS != 'linux' and OS != 'mac' and OS != 'win'", { "sources": ["native/unsupported_backend.cc"] }]
|
|
11
|
+
],
|
|
12
|
+
"cflags_cc": ["-std=c++17"],
|
|
13
|
+
"defines": ["_WIN32_WINNT=0x0A00"],
|
|
14
|
+
"xcode_settings": { "CLANG_CXX_LANGUAGE_STANDARD": "c++17" },
|
|
15
|
+
"msvs_settings": { "VCCLCompilerTool": { "AdditionalOptions": ["/std:c++17"] } }
|
|
7
16
|
}
|
|
8
17
|
]
|
|
9
18
|
}
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAWA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAiC,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElF,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGvE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD;AAGD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAgCjC;AAGD,wBAAsB,eAAe,CACnC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC,CActB;AAGD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAOlC;AAGD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAG9E"}
|
package/dist/files.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readdirSync } from 'node:fs';
|
|
2
2
|
import { join, relative } from 'node:path';
|
|
3
3
|
import { PathSafetyError, ResourceLimitError } from './errors.js';
|
|
4
|
-
import { assertSafeRegular, captureDirectories, hasCode, readRegularFile, revalidateDirectories, } from './internal/filesystem.js';
|
|
4
|
+
import { assertSafeRegular, captureDirectories, hasCode, lstatSync, readRegularFile, revalidateDirectories, } from './internal/filesystem.js';
|
|
5
5
|
import { getPathState, getRootState, managedPathBelongsToRoot, } from './internal/model.js';
|
|
6
6
|
import { assertLiveLease, checkControl } from './lease.js';
|
|
7
7
|
import { portablePathKey, resolveManagedPath } from './paths.js';
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { type Stats } from 'node:fs';
|
|
1
|
+
import { type PathLike, type Stats } from 'node:fs';
|
|
2
2
|
export interface DirectoryIdentity {
|
|
3
3
|
readonly path: string;
|
|
4
4
|
readonly stat: Stats;
|
|
5
5
|
}
|
|
6
|
+
export declare function lstatSync(path: PathLike): Stats;
|
|
7
|
+
export declare function fstatSync(descriptor: number): Stats;
|
|
6
8
|
export declare function noFollowFlag(): number;
|
|
7
9
|
export declare function hasCode(error: unknown, code: string): boolean;
|
|
8
10
|
export declare function sameIdentity(left: Stats, right: Stats): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/internal/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/internal/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,QAAQ,EACb,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AAOjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB;AAUD,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAG/C;AAGD,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAGnD;AAGD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAGD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAM/D;AAsCD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA0B3D;AAGD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,EAAE,CASzE;AAQD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,CAWpF;AAGD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC/D,UAAU,CAEZ;AAGD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC/D;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CA+C1D;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjE;AAUD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWzE;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAclD;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAqBhD"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import { closeSync, constants as fsConstants, fstatSync
|
|
1
|
+
import { closeSync, constants as fsConstants, fstatSync as nodeFstatSync, lstatSync as nodeLstatSync, mkdirSync, openSync, readSync, } from 'node:fs';
|
|
2
2
|
import { basename, dirname, join, resolve } from 'node:path';
|
|
3
|
-
import { DurabilityError, PathSafetyError, ResourceLimitError } from '../errors.js';
|
|
3
|
+
import { DurabilityError, PathSafetyError, ResourceLimitError, UnsupportedRuntimeError } from '../errors.js';
|
|
4
4
|
import { emitFilesystemFault } from './fault-injection.js';
|
|
5
|
+
import { requireRepositoryPlatformBackend } from './platform-backend.js';
|
|
6
|
+
const exactIdentity = Symbol('repository-store-exact-identity');
|
|
7
|
+
const WINDOWS = 'win32';
|
|
8
|
+
export function lstatSync(path) {
|
|
9
|
+
if (process.platform !== WINDOWS)
|
|
10
|
+
return nodeLstatSync(path);
|
|
11
|
+
return projectWindowsStat(nodeLstatSync(path, { bigint: true }));
|
|
12
|
+
}
|
|
13
|
+
export function fstatSync(descriptor) {
|
|
14
|
+
if (process.platform !== WINDOWS)
|
|
15
|
+
return nodeFstatSync(descriptor);
|
|
16
|
+
return projectWindowsStat(nodeFstatSync(descriptor, { bigint: true }));
|
|
17
|
+
}
|
|
5
18
|
export function noFollowFlag() {
|
|
6
19
|
return typeof fsConstants.O_NOFOLLOW === 'number' ? fsConstants.O_NOFOLLOW : 0;
|
|
7
20
|
}
|
|
@@ -9,8 +22,46 @@ export function hasCode(error, code) {
|
|
|
9
22
|
return error instanceof Error && 'code' in error && error.code === code;
|
|
10
23
|
}
|
|
11
24
|
export function sameIdentity(left, right) {
|
|
25
|
+
const exactLeft = left[exactIdentity];
|
|
26
|
+
const exactRight = right[exactIdentity];
|
|
27
|
+
if (exactLeft !== undefined && exactRight !== undefined)
|
|
28
|
+
return exactLeft.dev === exactRight.dev && exactLeft.ino === exactRight.ino;
|
|
12
29
|
return left.dev === right.dev && left.ino === right.ino;
|
|
13
30
|
}
|
|
31
|
+
function projectWindowsStat(exact) {
|
|
32
|
+
const milliseconds = (value) => Number(value);
|
|
33
|
+
const stat = {
|
|
34
|
+
atime: new Date(milliseconds(exact.atimeMs)),
|
|
35
|
+
atimeMs: milliseconds(exact.atimeMs),
|
|
36
|
+
birthtime: new Date(milliseconds(exact.birthtimeMs)),
|
|
37
|
+
birthtimeMs: milliseconds(exact.birthtimeMs),
|
|
38
|
+
blksize: Number(exact.blksize),
|
|
39
|
+
blocks: Number(exact.blocks),
|
|
40
|
+
ctime: new Date(milliseconds(exact.ctimeMs)),
|
|
41
|
+
ctimeMs: milliseconds(exact.ctimeMs),
|
|
42
|
+
dev: Number(exact.dev),
|
|
43
|
+
gid: Number(exact.gid),
|
|
44
|
+
ino: Number(exact.ino),
|
|
45
|
+
isBlockDevice: () => exact.isBlockDevice(),
|
|
46
|
+
isCharacterDevice: () => exact.isCharacterDevice(),
|
|
47
|
+
isDirectory: () => exact.isDirectory(),
|
|
48
|
+
isFIFO: () => exact.isFIFO(),
|
|
49
|
+
isFile: () => exact.isFile(),
|
|
50
|
+
isSocket: () => exact.isSocket(),
|
|
51
|
+
isSymbolicLink: () => exact.isSymbolicLink(),
|
|
52
|
+
mode: Number(exact.mode),
|
|
53
|
+
mtime: new Date(milliseconds(exact.mtimeMs)),
|
|
54
|
+
mtimeMs: milliseconds(exact.mtimeMs),
|
|
55
|
+
nlink: Number(exact.nlink),
|
|
56
|
+
rdev: Number(exact.rdev),
|
|
57
|
+
size: Number(exact.size),
|
|
58
|
+
uid: Number(exact.uid),
|
|
59
|
+
};
|
|
60
|
+
Object.defineProperty(stat, exactIdentity, {
|
|
61
|
+
value: { dev: exact.dev, ino: exact.ino },
|
|
62
|
+
});
|
|
63
|
+
return stat;
|
|
64
|
+
}
|
|
14
65
|
export function ensurePrivateDirectory(target) {
|
|
15
66
|
const missing = [];
|
|
16
67
|
let current = resolve(target);
|
|
@@ -81,6 +132,8 @@ export function readRegularFileWithIdentity(path, maxBytes, options = {}) {
|
|
|
81
132
|
const allowedLinkCounts = options.allowedLinkCounts ?? [1];
|
|
82
133
|
let descriptor;
|
|
83
134
|
try {
|
|
135
|
+
const pathBeforeOpen = lstatSync(path);
|
|
136
|
+
assertRegularWithLinks(pathBeforeOpen, path, allowedLinkCounts);
|
|
84
137
|
descriptor = openSync(path, fsConstants.O_RDONLY | noFollowFlag());
|
|
85
138
|
const before = fstatSync(descriptor);
|
|
86
139
|
assertRegularWithLinks(before, path, allowedLinkCounts);
|
|
@@ -140,9 +193,11 @@ function assertRegularWithLinks(stat, path, allowedLinkCounts) {
|
|
|
140
193
|
export function syncFileDescriptor(descriptor, path) {
|
|
141
194
|
try {
|
|
142
195
|
emitFilesystemFault('file-fsync', path);
|
|
143
|
-
|
|
196
|
+
requireRepositoryPlatformBackend().durability.syncDescriptor(descriptor);
|
|
144
197
|
}
|
|
145
198
|
catch (error) {
|
|
199
|
+
if (error instanceof UnsupportedRuntimeError)
|
|
200
|
+
throw error;
|
|
146
201
|
throw new DurabilityError(`Failed to synchronize file: ${path}`, {
|
|
147
202
|
cause: error,
|
|
148
203
|
evidence: { operation: 'file-fsync', path },
|
|
@@ -152,7 +207,8 @@ export function syncFileDescriptor(descriptor, path) {
|
|
|
152
207
|
export function syncRegularFile(path) {
|
|
153
208
|
let descriptor;
|
|
154
209
|
try {
|
|
155
|
-
|
|
210
|
+
const access = process.platform === 'win32' ? fsConstants.O_RDWR : fsConstants.O_RDONLY;
|
|
211
|
+
descriptor = openSync(path, access | noFollowFlag());
|
|
156
212
|
const opened = fstatSync(descriptor);
|
|
157
213
|
assertSafeRegular(opened, path);
|
|
158
214
|
syncFileDescriptor(descriptor, path);
|
|
@@ -176,9 +232,11 @@ export function syncDirectory(path) {
|
|
|
176
232
|
throw unsafe(`Unsafe directory: ${path}`);
|
|
177
233
|
try {
|
|
178
234
|
emitFilesystemFault('directory-fsync', path);
|
|
179
|
-
|
|
235
|
+
requireRepositoryPlatformBackend().durability.syncDescriptor(descriptor);
|
|
180
236
|
}
|
|
181
237
|
catch (error) {
|
|
238
|
+
if (error instanceof UnsupportedRuntimeError)
|
|
239
|
+
throw error;
|
|
182
240
|
throw new DurabilityError(`Failed to synchronize directory: ${path}`, {
|
|
183
241
|
cause: error,
|
|
184
242
|
evidence: { operation: 'directory-fsync', path },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/internal/filesystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/internal/filesystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ExactPublicationBackend {
|
|
2
|
+
renameNoReplace(source: string, destination: string): void;
|
|
3
|
+
}
|
|
4
|
+
export interface LocalFilesystemBackend {
|
|
5
|
+
supportsLocalPath(path: string): boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface DurabilityBackend {
|
|
8
|
+
syncDescriptor(descriptor: number): void;
|
|
9
|
+
}
|
|
10
|
+
export interface RepositoryPlatformBackend {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly platform: NodeJS.Platform;
|
|
13
|
+
readonly filesystemRequirement: string;
|
|
14
|
+
readonly publication: ExactPublicationBackend;
|
|
15
|
+
readonly filesystem: LocalFilesystemBackend;
|
|
16
|
+
readonly durability: DurabilityBackend;
|
|
17
|
+
}
|
|
18
|
+
export declare function requireRepositoryPlatformBackend(): RepositoryPlatformBackend;
|
|
19
|
+
export declare function platformRenameNoReplace(backend: RepositoryPlatformBackend, source: string, destination: string): void;
|
|
20
|
+
export declare function assertPlatformFilesystem(backend: RepositoryPlatformBackend, path: string): void;
|
|
21
|
+
export declare function setRepositoryPlatformBackendForTests(backend: RepositoryPlatformBackend | null | undefined): void;
|
|
22
|
+
export declare function isCertifiedRepositoryPlatform(platform: NodeJS.Platform, architecture: string): boolean;
|
|
23
|
+
//# sourceMappingURL=platform-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-backend.d.ts","sourceRoot":"","sources":["../../src/internal/platform-backend.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5D;AAGD,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1C;AAGD,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAGD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;CACxC;AA0CD,wBAAgB,gCAAgC,IAAI,yBAAyB,CA6B5E;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAQrH;AAGD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO/F;AAGD,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEhH;AAGD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAEtG"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { fsyncSync } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { UnsupportedRuntimeError } from '../errors.js';
|
|
5
|
+
const backendDefinitions = {
|
|
6
|
+
linux: {
|
|
7
|
+
id: 'linux-node-api',
|
|
8
|
+
platform: 'linux',
|
|
9
|
+
architectures: ['x64', 'arm64'],
|
|
10
|
+
filesystemRequirement: 'a certified Linux local filesystem',
|
|
11
|
+
},
|
|
12
|
+
darwin: {
|
|
13
|
+
id: 'macos-node-api',
|
|
14
|
+
platform: 'darwin',
|
|
15
|
+
architectures: ['x64', 'arm64'],
|
|
16
|
+
filesystemRequirement: 'a local APFS filesystem with certified publication and durability capabilities',
|
|
17
|
+
},
|
|
18
|
+
win32: {
|
|
19
|
+
id: 'windows-node-api',
|
|
20
|
+
platform: 'win32',
|
|
21
|
+
architectures: ['x64'],
|
|
22
|
+
filesystemRequirement: 'a local NTFS filesystem with stable identity and hard-link capabilities',
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
let injectedBackend;
|
|
26
|
+
let loadedBackend;
|
|
27
|
+
let loadFailure;
|
|
28
|
+
export function requireRepositoryPlatformBackend() {
|
|
29
|
+
if (injectedBackend !== undefined) {
|
|
30
|
+
if (injectedBackend !== null)
|
|
31
|
+
return injectedBackend;
|
|
32
|
+
throw unsupported('Repository platform backend is disabled for this operation.');
|
|
33
|
+
}
|
|
34
|
+
const definition = selectBackendDefinition(process.platform, process.arch);
|
|
35
|
+
if (definition === undefined)
|
|
36
|
+
throw unsupported(`Repository filesystem operations are unsupported on ${process.platform}.`);
|
|
37
|
+
if (loadedBackend !== undefined)
|
|
38
|
+
return loadedBackend;
|
|
39
|
+
if (loadFailure !== undefined)
|
|
40
|
+
throw unsupported('Repository platform backend could not be loaded.', loadFailure);
|
|
41
|
+
try {
|
|
42
|
+
const nativeModule = loadNativeModule();
|
|
43
|
+
if (nativeModule.platform !== definition.platform)
|
|
44
|
+
throw new Error(`Native addon platform ${JSON.stringify(nativeModule.platform)} does not match ${JSON.stringify(definition.platform)}.`);
|
|
45
|
+
loadedBackend = Object.freeze({
|
|
46
|
+
...definition,
|
|
47
|
+
publication: Object.freeze({ renameNoReplace: nativeModule.renameNoReplace.bind(nativeModule) }),
|
|
48
|
+
filesystem: Object.freeze({ supportsLocalPath: nativeModule.supportsLocalPath.bind(nativeModule) }),
|
|
49
|
+
durability: Object.freeze({
|
|
50
|
+
syncDescriptor: definition.platform === 'win32' ? fsyncSync : nativeModule.syncDescriptor.bind(nativeModule),
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
return loadedBackend;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
loadFailure = error;
|
|
57
|
+
throw unsupported('Repository platform backend could not be loaded.', error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function platformRenameNoReplace(backend, source, destination) {
|
|
61
|
+
try {
|
|
62
|
+
backend.publication.renameNoReplace(source, destination);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (['EINVAL', 'EXDEV', 'ENOSYS', 'ENOTSUP', 'EOPNOTSUPP'].some((code) => hasCode(error, code)))
|
|
66
|
+
throw unsupported(`No-replace publication is unsupported for ${source}.`, error);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export function assertPlatformFilesystem(backend, path) {
|
|
71
|
+
try {
|
|
72
|
+
if (backend.filesystem.supportsLocalPath(path))
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
throw unsupported(`Filesystem capability check failed for ${path}.`, error);
|
|
77
|
+
}
|
|
78
|
+
throw unsupported(`Repository Store requires ${backend.filesystemRequirement}: ${path}.`);
|
|
79
|
+
}
|
|
80
|
+
export function setRepositoryPlatformBackendForTests(backend) {
|
|
81
|
+
injectedBackend = backend;
|
|
82
|
+
}
|
|
83
|
+
export function isCertifiedRepositoryPlatform(platform, architecture) {
|
|
84
|
+
return selectBackendDefinition(platform, architecture) !== undefined;
|
|
85
|
+
}
|
|
86
|
+
function selectBackendDefinition(platform, architecture) {
|
|
87
|
+
const definition = backendDefinitions[platform];
|
|
88
|
+
return definition?.architectures.includes(architecture) === true ? definition : undefined;
|
|
89
|
+
}
|
|
90
|
+
function loadNativeModule() {
|
|
91
|
+
const require = createRequire(import.meta.url);
|
|
92
|
+
const packageRoot = fileURLToPath(new URL('../../', import.meta.url));
|
|
93
|
+
const candidate = require(`${packageRoot}build/Release/repository_store_native.node`);
|
|
94
|
+
if (typeof candidate.platform !== 'string' ||
|
|
95
|
+
typeof candidate.renameNoReplace !== 'function' ||
|
|
96
|
+
typeof candidate.supportsLocalPath !== 'function' ||
|
|
97
|
+
typeof candidate.syncDescriptor !== 'function')
|
|
98
|
+
throw new Error('Native addon does not expose the complete platform backend contract.');
|
|
99
|
+
return candidate;
|
|
100
|
+
}
|
|
101
|
+
function hasCode(error, code) {
|
|
102
|
+
return typeof error === 'object' && error !== null && 'code' in error && error.code === code;
|
|
103
|
+
}
|
|
104
|
+
function unsupported(message, cause) {
|
|
105
|
+
const error = new UnsupportedRuntimeError(message);
|
|
106
|
+
if (cause !== undefined)
|
|
107
|
+
Object.defineProperty(error, 'cause', { value: cause });
|
|
108
|
+
return error;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=platform-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-backend.js","sourceRoot":"","sources":["../../src/internal/platform-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/internal/publication.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"publication.d.ts","sourceRoot":"","sources":["../../src/internal/publication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkF,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrH,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAwBxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAOD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,GAAG,IAAI,EACxB,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EACzC,KAAK,EAAE,MAAM,GACZ,IAAI,CA2GN;AAID,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAClD,QAAQ,EAAE,MAAM,GACf,IAAI,CA2CN"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { closeSync, constants as fsConstants,
|
|
1
|
+
import { closeSync, constants as fsConstants, linkSync, openSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import { basename, dirname, join } from 'node:path';
|
|
3
3
|
import { PathSafetyError, RecoveryError, UnsupportedRuntimeError } from '../errors.js';
|
|
4
4
|
import { computeByteRevision } from '../revision.js';
|
|
5
5
|
import { emitFilesystemFault } from './fault-injection.js';
|
|
6
|
-
import { assertSafeRegular, captureDirectories, ensurePrivateDirectory, hasCode, noFollowFlag, readRegularFile, revalidateDirectories, sameIdentity, syncDirectory, syncFileDescriptor, } from './filesystem.js';
|
|
7
|
-
import {
|
|
6
|
+
import { assertSafeRegular, captureDirectories, ensurePrivateDirectory, fstatSync, hasCode, lstatSync, noFollowFlag, readRegularFile, revalidateDirectories, sameIdentity, syncDirectory, syncFileDescriptor, } from './filesystem.js';
|
|
7
|
+
import { assertPlatformFilesystem, platformRenameNoReplace, requireRepositoryPlatformBackend, } from './platform-backend.js';
|
|
8
8
|
export function publishExactRegularFile(path, bytes, expected, token) {
|
|
9
9
|
const parent = dirname(path);
|
|
10
10
|
ensurePrivateDirectory(parent);
|
|
11
11
|
const parents = captureDirectories(parent);
|
|
12
12
|
const temporary = join(parent, `.${basename(path)}.${token}.repository-store.tmp`);
|
|
13
13
|
const evacuated = join(parent, `.${basename(path)}.${token}.repository-store.evacuated`);
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
16
|
-
|
|
14
|
+
const platformBackend = expected === undefined ? undefined : requireRepositoryPlatformBackend();
|
|
15
|
+
if (platformBackend !== undefined)
|
|
16
|
+
assertPlatformFilesystem(platformBackend, parent);
|
|
17
17
|
let descriptor;
|
|
18
18
|
let temporaryIdentity;
|
|
19
19
|
let evacuatedIdentity;
|
|
@@ -35,17 +35,22 @@ export function publishExactRegularFile(path, bytes, expected, token) {
|
|
|
35
35
|
if (expected !== undefined) {
|
|
36
36
|
emitFilesystemFault(bytes === null ? 'before-exact-removal' : 'before-exact-publication', path);
|
|
37
37
|
emitFilesystemFault('before-exact-evacuation', evacuated);
|
|
38
|
-
moveNoReplace(
|
|
38
|
+
moveNoReplace(platformBackend, path, evacuated, 'evacuate destination');
|
|
39
39
|
emitFilesystemFault('destination-evacuated', path);
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
const observedIdentity = lstatSync(evacuated);
|
|
41
|
+
evacuatedIdentity = observedIdentity;
|
|
42
|
+
assertSafeRegular(observedIdentity, evacuated);
|
|
42
43
|
const evacuatedBytes = readRegularFile(evacuated, expected.maxBytes);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
restoreEvacuated(
|
|
44
|
+
const evacuatedRevision = computeByteRevision(evacuatedBytes);
|
|
45
|
+
if (!sameIdentity(expected.identity, observedIdentity) || evacuatedRevision !== expected.revision) {
|
|
46
|
+
restoreEvacuated(platformBackend, evacuated, path, parent);
|
|
46
47
|
evacuatedIdentity = undefined;
|
|
47
48
|
throw new PathSafetyError(`Destination changed during publication: ${path}`, 'IDENTITY_CHANGED', {
|
|
48
49
|
path,
|
|
50
|
+
expectedIdentity: identityEvidence(expected.identity),
|
|
51
|
+
observedIdentity: identityEvidence(observedIdentity),
|
|
52
|
+
expectedRevision: expected.revision,
|
|
53
|
+
observedRevision: evacuatedRevision,
|
|
49
54
|
});
|
|
50
55
|
}
|
|
51
56
|
revalidateDirectories(parents);
|
|
@@ -61,7 +66,7 @@ export function publishExactRegularFile(path, bytes, expected, token) {
|
|
|
61
66
|
catch (error) {
|
|
62
67
|
if (hasCode(error, 'EEXIST')) {
|
|
63
68
|
if (evacuatedIdentity !== undefined)
|
|
64
|
-
restoreEvacuated(
|
|
69
|
+
restoreEvacuated(platformBackend, evacuated, path, parent);
|
|
65
70
|
evacuatedIdentity = undefined;
|
|
66
71
|
throw new PathSafetyError(`Destination appeared during publication: ${path}`, 'IDENTITY_CHANGED');
|
|
67
72
|
}
|
|
@@ -125,7 +130,7 @@ export function recoverExactPublication(path, token, allowedRevisions, maxBytes)
|
|
|
125
130
|
throw error;
|
|
126
131
|
}
|
|
127
132
|
if (current === undefined) {
|
|
128
|
-
restoreEvacuated(
|
|
133
|
+
restoreEvacuated(requireRepositoryPlatformBackend(), evacuated, path, parent);
|
|
129
134
|
return;
|
|
130
135
|
}
|
|
131
136
|
if (sameIdentity(evidence, current)) {
|
|
@@ -175,7 +180,7 @@ function recoverTemporaryPublication(path, temporary, token, allowedRevisions, m
|
|
|
175
180
|
}
|
|
176
181
|
function restoreEvacuated(backend, evacuated, path, parent) {
|
|
177
182
|
try {
|
|
178
|
-
|
|
183
|
+
platformRenameNoReplace(backend, evacuated, path);
|
|
179
184
|
}
|
|
180
185
|
catch (error) {
|
|
181
186
|
if (hasCode(error, 'EEXIST'))
|
|
@@ -186,7 +191,7 @@ function restoreEvacuated(backend, evacuated, path, parent) {
|
|
|
186
191
|
}
|
|
187
192
|
function moveNoReplace(backend, source, destination, operation) {
|
|
188
193
|
try {
|
|
189
|
-
|
|
194
|
+
platformRenameNoReplace(backend, source, destination);
|
|
190
195
|
}
|
|
191
196
|
catch (error) {
|
|
192
197
|
if (hasCode(error, 'EEXIST'))
|
|
@@ -209,6 +214,13 @@ function unsupportedLink(error, path) {
|
|
|
209
214
|
return new UnsupportedRuntimeError(`Filesystem does not support exclusive regular-file publication: ${path}`);
|
|
210
215
|
return error;
|
|
211
216
|
}
|
|
217
|
+
function identityEvidence(identity) {
|
|
218
|
+
return {
|
|
219
|
+
birthtimeMs: identity.birthtimeMs,
|
|
220
|
+
dev: identity.dev,
|
|
221
|
+
ino: identity.ino,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
212
224
|
function artifactExists(path) {
|
|
213
225
|
try {
|
|
214
226
|
lstatSync(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publication.js","sourceRoot":"","sources":["../../src/internal/publication.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"publication.js","sourceRoot":"","sources":["../../src/internal/publication.ts"],"names":[],"mappings":"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"}
|
package/dist/lease.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lease.d.ts","sourceRoot":"","sources":["../src/lease.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"lease.d.ts","sourceRoot":"","sources":["../src/lease.ts"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AAmBjB,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AA0BD,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,CAAC,CAAC,CAqHZ;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAY/E;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUhG;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAI5D;AAufD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;CAChC;AAGD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,aAAa,CAAC,EAAE,kBAAkB,GACjC,IAAI,CA6CN;AAuRD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|