@neottia/repository-store 0.2.0 → 0.3.0

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.
Files changed (55) hide show
  1. package/README.md +8 -5
  2. package/binding.gyp +12 -2
  3. package/dist/files.d.ts.map +1 -1
  4. package/dist/files.js +2 -2
  5. package/dist/files.js.map +1 -1
  6. package/dist/internal/filesystem.d.ts +3 -1
  7. package/dist/internal/filesystem.d.ts.map +1 -1
  8. package/dist/internal/filesystem.js +95 -13
  9. package/dist/internal/filesystem.js.map +1 -1
  10. package/dist/internal/model.d.ts +1 -0
  11. package/dist/internal/model.d.ts.map +1 -1
  12. package/dist/internal/model.js.map +1 -1
  13. package/dist/internal/platform-backend.d.ts +24 -0
  14. package/dist/internal/platform-backend.d.ts.map +1 -0
  15. package/dist/internal/platform-backend.js +120 -0
  16. package/dist/internal/platform-backend.js.map +1 -0
  17. package/dist/internal/publication.d.ts.map +1 -1
  18. package/dist/internal/publication.js +28 -16
  19. package/dist/internal/publication.js.map +1 -1
  20. package/dist/lease.d.ts +3 -0
  21. package/dist/lease.d.ts.map +1 -1
  22. package/dist/lease.js +241 -52
  23. package/dist/lease.js.map +1 -1
  24. package/dist/paths.d.ts.map +1 -1
  25. package/dist/paths.js +4 -1
  26. package/dist/paths.js.map +1 -1
  27. package/dist/sqlite/adapter.d.ts +1 -0
  28. package/dist/sqlite/adapter.d.ts.map +1 -1
  29. package/dist/sqlite/adapter.js +9 -0
  30. package/dist/sqlite/adapter.js.map +1 -1
  31. package/dist/sqlite/cache-publication.d.ts.map +1 -1
  32. package/dist/sqlite/cache-publication.js +2 -2
  33. package/dist/sqlite/cache-publication.js.map +1 -1
  34. package/dist/sqlite/cache.d.ts.map +1 -1
  35. package/dist/sqlite/cache.js +1 -2
  36. package/dist/sqlite/cache.js.map +1 -1
  37. package/dist/transaction/apply.js +2 -2
  38. package/dist/transaction/apply.js.map +1 -1
  39. package/dist/transaction/journal.js +2 -2
  40. package/dist/transaction/journal.js.map +1 -1
  41. package/dist/transaction/recovery.js +2 -2
  42. package/dist/transaction/recovery.js.map +1 -1
  43. package/native/{rename_noreplace.cc → backend.cc} +47 -49
  44. package/native/freebsd_backend.cc +83 -0
  45. package/native/linux_backend.cc +45 -0
  46. package/native/macos_backend.cc +84 -0
  47. package/native/platform_backend.h +17 -0
  48. package/native/unsupported_backend.cc +28 -0
  49. package/native/windows_backend.cc +179 -0
  50. package/package.json +5 -5
  51. package/scripts/install-native.mjs +2 -2
  52. package/dist/internal/native-publication.d.ts +0 -9
  53. package/dist/internal/native-publication.d.ts.map +0 -1
  54. package/dist/internal/native-publication.js +0 -65
  55. package/dist/internal/native-publication.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { createHash } from 'node:crypto';
2
- import { closeSync, constants as fsConstants, lstatSync, mkdirSync, openSync, readdirSync, rmSync, rmdirSync, writeFileSync, } from 'node:fs';
2
+ import { closeSync, constants as fsConstants, mkdirSync, openSync, readdirSync, rmSync, rmdirSync, writeFileSync, } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { RecoveryError, ResourceLimitError } from '../errors.js';
5
5
  import { emitTransactionFault } from '../internal/fault-injection.js';
6
- import { assertSafeRegular, ensurePrivateDirectory, readRegularFile, syncDirectory, syncFileDescriptor, } from '../internal/filesystem.js';
6
+ import { assertSafeRegular, ensurePrivateDirectory, lstatSync, readRegularFile, syncDirectory, syncFileDescriptor, } from '../internal/filesystem.js';
7
7
  import { compareCanonicalPaths } from '../paths.js';
8
8
  import { isByteRevision } from '../revision.js';
9
9
  export function transactionRoot(authorityRoot, managedRootId) {
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/transaction/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/transaction/journal.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { lstatSync, readdirSync, renameSync } from 'node:fs';
1
+ import { readdirSync, renameSync } from 'node:fs';
2
2
  import { dirname, join } from 'node:path';
3
3
  import { RecoveryError } from '../errors.js';
4
4
  import { readManagedFileIfExists } from '../files.js';
5
5
  import { publishTransition } from './apply.js';
6
6
  import { cleanupIncompleteJournal, cleanupJournal, readArtifact, readManifest, transactionRoot, validateArtifacts, } from './journal.js';
7
7
  import { emitTransactionFault } from '../internal/fault-injection.js';
8
- import { assertSafeRegular, syncDirectory } from '../internal/filesystem.js';
8
+ import { assertSafeRegular, lstatSync, syncDirectory } from '../internal/filesystem.js';
9
9
  import { getPathState, getRootState } from '../internal/model.js';
10
10
  import { recoverExactPublication } from '../internal/publication.js';
11
11
  import { assertLiveLease, checkControl } from '../lease.js';
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/transaction/recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/transaction/recovery.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  #include <node_api.h>
2
2
 
3
3
  #include <cerrno>
4
+ #include <cstdint>
4
5
  #include <cstring>
6
+ #include <string>
7
+ #include <utility>
5
8
 
6
- #ifdef __linux__
7
- #include <fcntl.h>
8
- #include <linux/fs.h>
9
- #include <linux/magic.h>
10
- #include <stdio.h>
11
- #include <sys/vfs.h>
12
- #endif
9
+ #include "platform_backend.h"
13
10
 
14
11
  namespace {
15
12
 
@@ -31,6 +28,10 @@ const char* ErrnoCode(int value) {
31
28
  return "EPERM";
32
29
  case EACCES:
33
30
  return "EACCES";
31
+ case EBUSY:
32
+ return "EBUSY";
33
+ case EBADF:
34
+ return "EBADF";
34
35
  default:
35
36
  return "EIO";
36
37
  }
@@ -47,16 +48,14 @@ void ThrowErrno(napi_env env, int value) {
47
48
  napi_throw(env, error);
48
49
  }
49
50
 
50
- bool ReadPath(napi_env env, napi_value value, char** output) {
51
+ bool ReadPath(napi_env env, napi_value value, std::string* output) {
51
52
  size_t length = 0;
52
53
  if (napi_get_value_string_utf8(env, value, nullptr, 0, &length) != napi_ok) return false;
53
- *output = new char[length + 1];
54
+ std::string path(length + 1, '\0');
54
55
  size_t copied = 0;
55
- if (napi_get_value_string_utf8(env, value, *output, length + 1, &copied) != napi_ok) {
56
- delete[] *output;
57
- *output = nullptr;
58
- return false;
59
- }
56
+ if (napi_get_value_string_utf8(env, value, path.data(), length + 1, &copied) != napi_ok) return false;
57
+ path.resize(copied);
58
+ *output = std::move(path);
60
59
  return true;
61
60
  }
62
61
 
@@ -68,25 +67,15 @@ napi_value RenameNoReplace(napi_env env, napi_callback_info info) {
68
67
  napi_throw_type_error(env, nullptr, "renameNoReplace requires source and destination paths");
69
68
  return nullptr;
70
69
  }
71
- char* source = nullptr;
72
- char* destination = nullptr;
70
+ std::string source;
71
+ std::string destination;
73
72
  if (!ReadPath(env, argv[0], &source) || !ReadPath(env, argv[1], &destination)) {
74
- delete[] source;
75
- delete[] destination;
76
73
  napi_throw_type_error(env, nullptr, "renameNoReplace paths must be strings");
77
74
  return nullptr;
78
75
  }
79
- #ifdef __linux__
80
- const int result = renameat2(AT_FDCWD, source, AT_FDCWD, destination, RENAME_NOREPLACE);
81
- const int saved_errno = errno;
82
- #else
83
- const int result = -1;
84
- const int saved_errno = ENOSYS;
85
- #endif
86
- delete[] source;
87
- delete[] destination;
88
- if (result != 0) {
89
- ThrowErrno(env, saved_errno);
76
+ const int error = neottia::repository_store::RenameNoReplace(source.c_str(), destination.c_str());
77
+ if (error != 0) {
78
+ ThrowErrno(env, error);
90
79
  return nullptr;
91
80
  }
92
81
  napi_value undefined;
@@ -98,45 +87,54 @@ napi_value SupportsLocalPath(napi_env env, napi_callback_info info) {
98
87
  size_t argc = 1;
99
88
  napi_value argv[1];
100
89
  napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
101
- char* path = nullptr;
90
+ std::string path;
102
91
  if (argc != 1 || !ReadPath(env, argv[0], &path)) {
103
92
  napi_throw_type_error(env, nullptr, "supportsLocalPath requires one path");
104
93
  return nullptr;
105
94
  }
106
95
  bool supported = false;
107
- #ifdef __linux__
108
- struct statfs state;
109
- if (statfs(path, &state) != 0) {
110
- const int saved_errno = errno;
111
- delete[] path;
112
- ThrowErrno(env, saved_errno);
96
+ const int error = neottia::repository_store::SupportsLocalPath(path.c_str(), &supported);
97
+ if (error != 0) {
98
+ ThrowErrno(env, error);
113
99
  return nullptr;
114
100
  }
115
- switch (state.f_type) {
116
- case EXT4_SUPER_MAGIC:
117
- case XFS_SUPER_MAGIC:
118
- case BTRFS_SUPER_MAGIC:
119
- case TMPFS_MAGIC:
120
- case OVERLAYFS_SUPER_MAGIC:
121
- supported = true;
122
- break;
123
- default:
124
- supported = false;
125
- }
126
- #endif
127
- delete[] path;
128
101
  napi_value result;
129
102
  napi_get_boolean(env, supported, &result);
130
103
  return result;
131
104
  }
132
105
 
106
+ napi_value SyncDescriptor(napi_env env, napi_callback_info info) {
107
+ size_t argc = 1;
108
+ napi_value argv[1];
109
+ napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
110
+ std::int32_t descriptor = -1;
111
+ if (argc != 1 || napi_get_value_int32(env, argv[0], &descriptor) != napi_ok || descriptor < 0) {
112
+ napi_throw_type_error(env, nullptr, "syncDescriptor requires one non-negative file descriptor");
113
+ return nullptr;
114
+ }
115
+ const int error = neottia::repository_store::SyncDescriptor(descriptor);
116
+ if (error != 0) {
117
+ ThrowErrno(env, error);
118
+ return nullptr;
119
+ }
120
+ napi_value undefined;
121
+ napi_get_undefined(env, &undefined);
122
+ return undefined;
123
+ }
124
+
133
125
  napi_value Initialize(napi_env env, napi_value exports) {
126
+ napi_value platform;
127
+ napi_create_string_utf8(env, neottia::repository_store::Platform(), NAPI_AUTO_LENGTH, &platform);
128
+ napi_set_named_property(env, exports, "platform", platform);
134
129
  napi_value rename_function;
135
130
  napi_create_function(env, "renameNoReplace", NAPI_AUTO_LENGTH, RenameNoReplace, nullptr, &rename_function);
136
131
  napi_set_named_property(env, exports, "renameNoReplace", rename_function);
137
132
  napi_value supports_function;
138
133
  napi_create_function(env, "supportsLocalPath", NAPI_AUTO_LENGTH, SupportsLocalPath, nullptr, &supports_function);
139
134
  napi_set_named_property(env, exports, "supportsLocalPath", supports_function);
135
+ napi_value sync_function;
136
+ napi_create_function(env, "syncDescriptor", NAPI_AUTO_LENGTH, SyncDescriptor, nullptr, &sync_function);
137
+ napi_set_named_property(env, exports, "syncDescriptor", sync_function);
140
138
  return exports;
141
139
  }
142
140
 
@@ -0,0 +1,83 @@
1
+ #include "platform_backend.h"
2
+
3
+ #include <cerrno>
4
+ #include <cstring>
5
+ #include <fcntl.h>
6
+ #include <sys/mount.h>
7
+ #include <sys/stat.h>
8
+ #include <unistd.h>
9
+
10
+ namespace neottia::repository_store {
11
+ namespace {
12
+
13
+ int Sync(int descriptor) {
14
+ int result;
15
+ do {
16
+ result = fsync(descriptor);
17
+ } while (result != 0 && errno == EINTR);
18
+ return result == 0 ? 0 : errno;
19
+ }
20
+
21
+ int SupportsRequiredDurability(const char* path, bool* supported) {
22
+ const int descriptor = open(path, O_RDONLY | O_DIRECTORY | O_NOFOLLOW | O_CLOEXEC);
23
+ if (descriptor == -1) return errno;
24
+ const int sync_error = Sync(descriptor);
25
+ const int close_error = close(descriptor) == 0 ? 0 : errno;
26
+ if (sync_error == EINVAL || sync_error == ENOTSUP || sync_error == EOPNOTSUPP) {
27
+ *supported = false;
28
+ return 0;
29
+ }
30
+ return sync_error != 0 ? sync_error : close_error;
31
+ }
32
+
33
+ } // namespace
34
+
35
+ const char* Platform() { return "freebsd"; }
36
+
37
+ int RenameNoReplace(const char* source, const char* destination) {
38
+ struct stat source_state;
39
+ if (lstat(source, &source_state) != 0) return errno;
40
+ // FreeBSD 14 has no native no-replace directory rename. Repository Store
41
+ // therefore uses a regular-file authority lease on this backend.
42
+ if (!S_ISREG(source_state.st_mode) || source_state.st_nlink != 1) return EOPNOTSUPP;
43
+ if (link(source, destination) != 0) return errno;
44
+ if (unlink(source) == 0) return 0;
45
+
46
+ const int unlink_error = errno;
47
+ if (unlink_error == ENOENT) {
48
+ // Another process can finish a recognized interrupted publication by
49
+ // removing the source name. The move still succeeded when the published
50
+ // destination is the original inode.
51
+ struct stat published_state;
52
+ if (lstat(destination, &published_state) == 0 && published_state.st_dev == source_state.st_dev &&
53
+ published_state.st_ino == source_state.st_ino)
54
+ return 0;
55
+ }
56
+ // Roll back the new name when source cleanup fails. A process death between
57
+ // link and unlink leaves two names for one inode; higher-level recovery
58
+ // normalizes recognized package-owned states and otherwise fails closed.
59
+ if (unlink(destination) != 0) return EIO;
60
+ return unlink_error;
61
+ }
62
+
63
+ int SupportsLocalPath(const char* path, bool* supported) {
64
+ *supported = false;
65
+ struct statfs filesystem;
66
+ if (statfs(path, &filesystem) != 0) return errno;
67
+ if (std::strcmp(filesystem.f_fstypename, "ufs") != 0 || (filesystem.f_flags & MNT_LOCAL) == 0 ||
68
+ (filesystem.f_flags & MNT_RDONLY) != 0)
69
+ return 0;
70
+
71
+ // FreeBSD reports st_birthtim.tv_sec == -1 for UFS1 and reads the stored
72
+ // birth time for UFS2. This rejects UFS1 without reading the backing device.
73
+ struct stat state;
74
+ if (lstat(path, &state) != 0) return errno;
75
+ if (state.st_birthtim.tv_sec == -1) return 0;
76
+
77
+ *supported = true;
78
+ return SupportsRequiredDurability(path, supported);
79
+ }
80
+
81
+ int SyncDescriptor(int descriptor) { return Sync(descriptor); }
82
+
83
+ } // namespace neottia::repository_store
@@ -0,0 +1,45 @@
1
+ #include "platform_backend.h"
2
+
3
+ #include <cerrno>
4
+ #include <fcntl.h>
5
+ #include <linux/fs.h>
6
+ #include <linux/magic.h>
7
+ #include <stdio.h>
8
+ #include <sys/vfs.h>
9
+ #include <unistd.h>
10
+
11
+ namespace neottia::repository_store {
12
+
13
+ const char* Platform() { return "linux"; }
14
+
15
+ int RenameNoReplace(const char* source, const char* destination) {
16
+ if (renameat2(AT_FDCWD, source, AT_FDCWD, destination, RENAME_NOREPLACE) == 0) return 0;
17
+ return errno;
18
+ }
19
+
20
+ int SupportsLocalPath(const char* path, bool* supported) {
21
+ struct statfs state;
22
+ if (statfs(path, &state) != 0) return errno;
23
+ switch (state.f_type) {
24
+ case EXT4_SUPER_MAGIC:
25
+ case XFS_SUPER_MAGIC:
26
+ case BTRFS_SUPER_MAGIC:
27
+ case TMPFS_MAGIC:
28
+ case OVERLAYFS_SUPER_MAGIC:
29
+ *supported = true;
30
+ break;
31
+ default:
32
+ *supported = false;
33
+ }
34
+ return 0;
35
+ }
36
+
37
+ int SyncDescriptor(int descriptor) {
38
+ int result;
39
+ do {
40
+ result = fsync(descriptor);
41
+ } while (result != 0 && errno == EINTR);
42
+ return result == 0 ? 0 : errno;
43
+ }
44
+
45
+ } // namespace neottia::repository_store
@@ -0,0 +1,84 @@
1
+ #include "platform_backend.h"
2
+
3
+ #include <cerrno>
4
+ #include <cstddef>
5
+ #include <cstdint>
6
+ #include <cstring>
7
+ #include <fcntl.h>
8
+ #include <stdio.h>
9
+ #include <sys/attr.h>
10
+ #include <sys/mount.h>
11
+ #include <unistd.h>
12
+
13
+ namespace neottia::repository_store {
14
+ namespace {
15
+
16
+ struct CapabilityBuffer {
17
+ std::uint32_t length;
18
+ vol_capabilities_attr_t capabilities;
19
+ };
20
+
21
+ bool HasCapability(const vol_capabilities_attr_t& capabilities, std::size_t group, std::uint32_t flag) {
22
+ return (capabilities.valid[group] & flag) == flag && (capabilities.capabilities[group] & flag) == flag;
23
+ }
24
+
25
+ int SupportsRequiredDurability(const char* path, bool* supported) {
26
+ const int descriptor = open(path, O_RDONLY | O_DIRECTORY | O_NOFOLLOW | O_CLOEXEC);
27
+ if (descriptor == -1) return errno;
28
+ int sync_result;
29
+ do {
30
+ sync_result = fcntl(descriptor, F_FULLFSYNC, 0);
31
+ } while (sync_result != 0 && errno == EINTR);
32
+ if (sync_result == 0) {
33
+ const int close_result = close(descriptor);
34
+ return close_result == 0 ? 0 : errno;
35
+ }
36
+ const int sync_error = errno;
37
+ close(descriptor);
38
+ if (sync_error == EINVAL || sync_error == ENOTSUP || sync_error == EOPNOTSUPP) {
39
+ *supported = false;
40
+ return 0;
41
+ }
42
+ return sync_error;
43
+ }
44
+
45
+ } // namespace
46
+
47
+ const char* Platform() { return "darwin"; }
48
+
49
+ int RenameNoReplace(const char* source, const char* destination) {
50
+ if (renamex_np(source, destination, RENAME_EXCL) == 0) return 0;
51
+ return errno;
52
+ }
53
+
54
+ int SupportsLocalPath(const char* path, bool* supported) {
55
+ struct statfs state;
56
+ if (statfs(path, &state) != 0) return errno;
57
+ if (std::strcmp(state.f_fstypename, "apfs") != 0 || (state.f_flags & MNT_LOCAL) == 0) {
58
+ *supported = false;
59
+ return 0;
60
+ }
61
+
62
+ struct attrlist attributes = {};
63
+ attributes.bitmapcount = ATTR_BIT_MAP_COUNT;
64
+ attributes.volattr = ATTR_VOL_INFO | ATTR_VOL_CAPABILITIES;
65
+ CapabilityBuffer buffer = {};
66
+ if (getattrlist(path, &attributes, &buffer, sizeof(buffer), 0) != 0) return errno;
67
+
68
+ const std::uint32_t required_format = VOL_CAP_FMT_PERSISTENTOBJECTIDS | VOL_CAP_FMT_HARDLINKS;
69
+ const std::uint32_t required_interfaces = VOL_CAP_INT_RENAME_EXCL;
70
+ *supported = HasCapability(buffer.capabilities, VOL_CAPABILITIES_FORMAT, required_format) &&
71
+ HasCapability(buffer.capabilities, VOL_CAPABILITIES_INTERFACES, required_interfaces);
72
+ if (!*supported) return 0;
73
+ return SupportsRequiredDurability(path, supported);
74
+ }
75
+
76
+ int SyncDescriptor(int descriptor) {
77
+ int result;
78
+ do {
79
+ result = fcntl(descriptor, F_FULLFSYNC, 0);
80
+ } while (result != 0 && errno == EINTR);
81
+ return result == 0 ? 0 : errno;
82
+ }
83
+
84
+ } // namespace neottia::repository_store
@@ -0,0 +1,17 @@
1
+ #pragma once
2
+
3
+ namespace neottia::repository_store {
4
+
5
+ /** Returns the Node.js platform identifier implemented by this binary. */
6
+ const char* Platform();
7
+
8
+ /** Moves source to destination without replacing an existing destination. */
9
+ int RenameNoReplace(const char* source, const char* destination);
10
+
11
+ /** Reports whether path resides on a certified local filesystem. */
12
+ int SupportsLocalPath(const char* path, bool* supported);
13
+
14
+ /** Flushes an open file or directory descriptor with platform durability semantics. */
15
+ int SyncDescriptor(int descriptor);
16
+
17
+ } // namespace neottia::repository_store
@@ -0,0 +1,28 @@
1
+ #include "platform_backend.h"
2
+
3
+ #include <cerrno>
4
+
5
+ namespace neottia::repository_store {
6
+
7
+ const char* Platform() {
8
+ #if defined(_WIN32)
9
+ return "win32";
10
+ #elif defined(__APPLE__)
11
+ return "darwin";
12
+ #elif defined(__FreeBSD__)
13
+ return "freebsd";
14
+ #else
15
+ return "unsupported";
16
+ #endif
17
+ }
18
+
19
+ int RenameNoReplace(const char*, const char*) { return ENOSYS; }
20
+
21
+ int SupportsLocalPath(const char*, bool* supported) {
22
+ *supported = false;
23
+ return 0;
24
+ }
25
+
26
+ int SyncDescriptor(int) { return ENOSYS; }
27
+
28
+ } // namespace neottia::repository_store