@zenfs/core 2.2.2 → 2.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 (60) hide show
  1. package/dist/backends/backend.js +6 -9
  2. package/dist/backends/cow.js +4 -4
  3. package/dist/backends/fetch.js +8 -6
  4. package/dist/backends/memory.js +4 -2
  5. package/dist/backends/passthrough.js +2 -0
  6. package/dist/backends/port.d.ts +16 -89
  7. package/dist/backends/port.js +35 -171
  8. package/dist/backends/single_buffer.d.ts +4 -2
  9. package/dist/backends/single_buffer.js +169 -195
  10. package/dist/backends/store/fs.js +50 -73
  11. package/dist/backends/store/map.js +1 -2
  12. package/dist/backends/store/store.js +23 -27
  13. package/dist/config.js +2 -3
  14. package/dist/context.js +2 -2
  15. package/dist/internal/credentials.d.ts +6 -0
  16. package/dist/internal/credentials.js +10 -0
  17. package/dist/internal/devices.js +7 -10
  18. package/dist/internal/file_index.js +3 -8
  19. package/dist/internal/filesystem.js +19 -12
  20. package/dist/internal/index_fs.js +3 -4
  21. package/dist/internal/inode.d.ts +2 -0
  22. package/dist/internal/inode.js +148 -185
  23. package/dist/internal/rpc.d.ts +143 -0
  24. package/dist/internal/rpc.js +251 -0
  25. package/dist/mixins/async.js +5 -6
  26. package/dist/mixins/mutexed.js +16 -10
  27. package/dist/path.js +3 -4
  28. package/dist/polyfills.js +51 -22
  29. package/dist/readline.js +32 -30
  30. package/dist/utils.d.ts +3 -2
  31. package/dist/utils.js +11 -5
  32. package/dist/vfs/acl.d.ts +2 -0
  33. package/dist/vfs/acl.js +48 -66
  34. package/dist/vfs/async.js +4 -4
  35. package/dist/vfs/dir.d.ts +4 -3
  36. package/dist/vfs/dir.js +16 -10
  37. package/dist/vfs/file.js +22 -18
  38. package/dist/vfs/ioctl.js +39 -62
  39. package/dist/vfs/promises.d.ts +33 -25
  40. package/dist/vfs/promises.js +56 -47
  41. package/dist/vfs/shared.js +7 -7
  42. package/dist/vfs/stats.js +104 -77
  43. package/dist/vfs/streams.js +11 -8
  44. package/dist/vfs/sync.d.ts +22 -11
  45. package/dist/vfs/sync.js +24 -27
  46. package/dist/vfs/types.d.ts +3 -8
  47. package/dist/vfs/watchers.js +9 -3
  48. package/dist/vfs/xattr.js +6 -12
  49. package/package.json +2 -2
  50. package/scripts/test.js +14 -7
  51. package/tests/backend/fetch.test.ts +14 -14
  52. package/tests/backend/port.test.ts +25 -17
  53. package/tests/common/context.test.ts +14 -0
  54. package/tests/common/handle.test.ts +5 -3
  55. package/tests/fetch/run.sh +2 -1
  56. package/tests/fs/scaling.test.ts +32 -0
  57. package/tests/fs/watch.test.ts +2 -5
  58. package/tests/setup/single-buffer.ts +1 -1
  59. package/tests/tsconfig.json +3 -2
  60. package/types/uint8array.d.ts +64 -0
@@ -84,21 +84,6 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
84
84
  var e = new Error(message);
85
85
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
86
86
  });
87
- var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
88
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
89
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
90
- };
91
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
92
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
93
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
94
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
95
- };
96
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
97
- if (kind === "m") throw new TypeError("Private method is not writable");
98
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
99
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
100
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
101
- };
102
87
  import { withErrno } from 'kerium';
103
88
  import { alert, crit, err, warn } from 'kerium/log';
104
89
  import { field, offsetof, packed, sizeof, struct, types as t } from 'memium';
@@ -116,7 +101,6 @@ const { format } = new Intl.NumberFormat('en-US', {
116
101
  unitDisplay: 'narrow',
117
102
  });
118
103
  let MetadataEntry = (() => {
119
- var _MetadataEntry_id_accessor_storage, _MetadataEntry_offset__accessor_storage, _MetadataEntry_offset_accessor_storage, _MetadataEntry_size_accessor_storage;
120
104
  var _a, _b, _c, _d;
121
105
  let _classDecorators = [struct(packed)];
122
106
  let _classDescriptor;
@@ -135,52 +119,47 @@ let MetadataEntry = (() => {
135
119
  let _size_decorators;
136
120
  let _size_initializers = [];
137
121
  let _size_extraInitializers = [];
138
- var MetadataEntry = _classThis = class extends _classSuper {
122
+ var MetadataEntry = class extends _classSuper {
123
+ static { _classThis = this; }
124
+ static {
125
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
126
+ _id_decorators = [(_a = t).uint32.bind(_a)];
127
+ _offset__decorators = [(_b = t).uint32.bind(_b)];
128
+ _offset_decorators = [(_c = t).uint32.bind(_c)];
129
+ _size_decorators = [(_d = t).uint32.bind(_d)];
130
+ __esDecorate(this, null, _id_decorators, { kind: "accessor", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
131
+ __esDecorate(this, null, _offset__decorators, { kind: "accessor", name: "offset_", static: false, private: false, access: { has: obj => "offset_" in obj, get: obj => obj.offset_, set: (obj, value) => { obj.offset_ = value; } }, metadata: _metadata }, _offset__initializers, _offset__extraInitializers);
132
+ __esDecorate(this, null, _offset_decorators, { kind: "accessor", name: "offset", static: false, private: false, access: { has: obj => "offset" in obj, get: obj => obj.offset, set: (obj, value) => { obj.offset = value; } }, metadata: _metadata }, _offset_initializers, _offset_extraInitializers);
133
+ __esDecorate(this, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
134
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
135
+ MetadataEntry = _classThis = _classDescriptor.value;
136
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
137
+ __runInitializers(_classThis, _classExtraInitializers);
138
+ }
139
+ #id_accessor_storage = __runInitializers(this, _id_initializers, void 0);
139
140
  /** Inode or data ID */
140
- get id() { return __classPrivateFieldGet(this, _MetadataEntry_id_accessor_storage, "f"); }
141
- set id(value) { __classPrivateFieldSet(this, _MetadataEntry_id_accessor_storage, value, "f"); }
141
+ get id() { return this.#id_accessor_storage; }
142
+ set id(value) { this.#id_accessor_storage = value; }
143
+ #offset__accessor_storage = (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _offset__initializers, void 0));
142
144
  /** Reserved for 64-bit offset expansion */
143
- get offset_() { return __classPrivateFieldGet(this, _MetadataEntry_offset__accessor_storage, "f"); }
144
- set offset_(value) { __classPrivateFieldSet(this, _MetadataEntry_offset__accessor_storage, value, "f"); }
145
+ get offset_() { return this.#offset__accessor_storage; }
146
+ set offset_(value) { this.#offset__accessor_storage = value; }
147
+ #offset_accessor_storage = (__runInitializers(this, _offset__extraInitializers), __runInitializers(this, _offset_initializers, void 0));
145
148
  /** Offset into the buffer the data is stored at. */
146
- get offset() { return __classPrivateFieldGet(this, _MetadataEntry_offset_accessor_storage, "f"); }
147
- set offset(value) { __classPrivateFieldSet(this, _MetadataEntry_offset_accessor_storage, value, "f"); }
149
+ get offset() { return this.#offset_accessor_storage; }
150
+ set offset(value) { this.#offset_accessor_storage = value; }
151
+ #size_accessor_storage = (__runInitializers(this, _offset_extraInitializers), __runInitializers(this, _size_initializers, void 0));
148
152
  /** The size of the data */
149
- get size() { return __classPrivateFieldGet(this, _MetadataEntry_size_accessor_storage, "f"); }
150
- set size(value) { __classPrivateFieldSet(this, _MetadataEntry_size_accessor_storage, value, "f"); }
153
+ get size() { return this.#size_accessor_storage; }
154
+ set size(value) { this.#size_accessor_storage = value; }
151
155
  toString() {
152
156
  return `<MetadataEntry @ 0x${this.byteOffset.toString(16).padStart(8, '0')}>`;
153
157
  }
154
158
  constructor() {
155
159
  super(...arguments);
156
- _MetadataEntry_id_accessor_storage.set(this, __runInitializers(this, _id_initializers, void 0));
157
- _MetadataEntry_offset__accessor_storage.set(this, (__runInitializers(this, _id_extraInitializers), __runInitializers(this, _offset__initializers, void 0)));
158
- _MetadataEntry_offset_accessor_storage.set(this, (__runInitializers(this, _offset__extraInitializers), __runInitializers(this, _offset_initializers, void 0)));
159
- _MetadataEntry_size_accessor_storage.set(this, (__runInitializers(this, _offset_extraInitializers), __runInitializers(this, _size_initializers, void 0)));
160
160
  __runInitializers(this, _size_extraInitializers);
161
161
  }
162
162
  };
163
- _MetadataEntry_id_accessor_storage = new WeakMap();
164
- _MetadataEntry_offset__accessor_storage = new WeakMap();
165
- _MetadataEntry_offset_accessor_storage = new WeakMap();
166
- _MetadataEntry_size_accessor_storage = new WeakMap();
167
- __setFunctionName(_classThis, "MetadataEntry");
168
- (() => {
169
- var _a;
170
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
171
- _id_decorators = [(_a = t).uint32.bind(_a)];
172
- _offset__decorators = [(_b = t).uint32.bind(_b)];
173
- _offset_decorators = [(_c = t).uint32.bind(_c)];
174
- _size_decorators = [(_d = t).uint32.bind(_d)];
175
- __esDecorate(_classThis, null, _id_decorators, { kind: "accessor", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
176
- __esDecorate(_classThis, null, _offset__decorators, { kind: "accessor", name: "offset_", static: false, private: false, access: { has: obj => "offset_" in obj, get: obj => obj.offset_, set: (obj, value) => { obj.offset_ = value; } }, metadata: _metadata }, _offset__initializers, _offset__extraInitializers);
177
- __esDecorate(_classThis, null, _offset_decorators, { kind: "accessor", name: "offset", static: false, private: false, access: { has: obj => "offset" in obj, get: obj => obj.offset, set: (obj, value) => { obj.offset = value; } }, metadata: _metadata }, _offset_initializers, _offset_extraInitializers);
178
- __esDecorate(_classThis, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
179
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
180
- MetadataEntry = _classThis = _classDescriptor.value;
181
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
182
- __runInitializers(_classThis, _classExtraInitializers);
183
- })();
184
163
  return MetadataEntry = _classThis;
185
164
  })();
186
165
  /**
@@ -197,7 +176,6 @@ const max_lock_attempts = 5;
197
176
  * This is done since IDs are not guaranteed to be sequential.
198
177
  */
199
178
  let MetadataBlock = (() => {
200
- var _MetadataBlock_checksum_accessor_storage, _MetadataBlock_timestamp_accessor_storage, _MetadataBlock_previous_offset_accessor_storage, _MetadataBlock_items_accessor_storage, _MetadataBlock_locked_accessor_storage;
201
179
  var _a, _b, _c, _d;
202
180
  let _classDecorators = [struct(packed)];
203
181
  let _classDescriptor;
@@ -219,32 +197,54 @@ let MetadataBlock = (() => {
219
197
  let _locked_decorators;
220
198
  let _locked_initializers = [];
221
199
  let _locked_extraInitializers = [];
222
- var MetadataBlock = _classThis = class extends _classSuper {
200
+ var MetadataBlock = class extends _classSuper {
201
+ static { _classThis = this; }
202
+ static {
203
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
204
+ _checksum_decorators = [(_a = t).uint32.bind(_a)];
205
+ _timestamp_decorators = [(_b = t).uint64.bind(_b)];
206
+ _previous_offset_decorators = [(_c = t).uint32.bind(_c)];
207
+ _items_decorators = [field(MetadataEntry, { length: entries_per_block })];
208
+ _locked_decorators = [(_d = t).int32.bind(_d)];
209
+ __esDecorate(this, null, _checksum_decorators, { kind: "accessor", name: "checksum", static: false, private: false, access: { has: obj => "checksum" in obj, get: obj => obj.checksum, set: (obj, value) => { obj.checksum = value; } }, metadata: _metadata }, _checksum_initializers, _checksum_extraInitializers);
210
+ __esDecorate(this, null, _timestamp_decorators, { kind: "accessor", name: "timestamp", static: false, private: false, access: { has: obj => "timestamp" in obj, get: obj => obj.timestamp, set: (obj, value) => { obj.timestamp = value; } }, metadata: _metadata }, _timestamp_initializers, _timestamp_extraInitializers);
211
+ __esDecorate(this, null, _previous_offset_decorators, { kind: "accessor", name: "previous_offset", static: false, private: false, access: { has: obj => "previous_offset" in obj, get: obj => obj.previous_offset, set: (obj, value) => { obj.previous_offset = value; } }, metadata: _metadata }, _previous_offset_initializers, _previous_offset_extraInitializers);
212
+ __esDecorate(this, null, _items_decorators, { kind: "accessor", name: "items", static: false, private: false, access: { has: obj => "items" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);
213
+ __esDecorate(this, null, _locked_decorators, { kind: "accessor", name: "locked", static: false, private: false, access: { has: obj => "locked" in obj, get: obj => obj.locked, set: (obj, value) => { obj.locked = value; } }, metadata: _metadata }, _locked_initializers, _locked_extraInitializers);
214
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
215
+ MetadataBlock = _classThis = _classDescriptor.value;
216
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
217
+ }
218
+ static name = 'MetadataBlock';
219
+ #checksum_accessor_storage = __runInitializers(this, _checksum_initializers, void 0);
223
220
  /**
224
221
  * The crc32c checksum for the metadata block.
225
222
  * @privateRemarks Keep this first!
226
223
  */
227
- get checksum() { return __classPrivateFieldGet(this, _MetadataBlock_checksum_accessor_storage, "f"); }
228
- set checksum(value) { __classPrivateFieldSet(this, _MetadataBlock_checksum_accessor_storage, value, "f"); }
224
+ get checksum() { return this.#checksum_accessor_storage; }
225
+ set checksum(value) { this.#checksum_accessor_storage = value; }
226
+ #timestamp_accessor_storage = (__runInitializers(this, _checksum_extraInitializers), __runInitializers(this, _timestamp_initializers, BigInt(Date.now())));
229
227
  /** The (last) time this metadata block was updated */
230
- get timestamp() { return __classPrivateFieldGet(this, _MetadataBlock_timestamp_accessor_storage, "f"); }
231
- set timestamp(value) { __classPrivateFieldSet(this, _MetadataBlock_timestamp_accessor_storage, value, "f"); }
228
+ get timestamp() { return this.#timestamp_accessor_storage; }
229
+ set timestamp(value) { this.#timestamp_accessor_storage = value; }
230
+ #previous_offset_accessor_storage = (__runInitializers(this, _timestamp_extraInitializers), __runInitializers(this, _previous_offset_initializers, void 0));
232
231
  /** Offset to the previous metadata block */
233
- get previous_offset() { return __classPrivateFieldGet(this, _MetadataBlock_previous_offset_accessor_storage, "f"); }
234
- set previous_offset(value) { __classPrivateFieldSet(this, _MetadataBlock_previous_offset_accessor_storage, value, "f"); }
232
+ get previous_offset() { return this.#previous_offset_accessor_storage; }
233
+ set previous_offset(value) { this.#previous_offset_accessor_storage = value; }
234
+ _previous = __runInitializers(this, _previous_offset_extraInitializers);
235
235
  get previous() {
236
- var _a;
237
236
  if (!this.previous_offset)
238
237
  return;
239
- (_a = this._previous) !== null && _a !== void 0 ? _a : (this._previous = new MetadataBlock(this.buffer, this.previous_offset));
238
+ this._previous ??= new MetadataBlock(this.buffer, this.previous_offset);
240
239
  return this._previous;
241
240
  }
242
241
  get offsetHex() {
243
242
  return '0x' + this.byteOffset.toString(16).padStart(8, '0');
244
243
  }
244
+ #items_accessor_storage = __runInitializers(this, _items_initializers, void 0);
245
245
  /** Metadata entries. */
246
- get items() { return __classPrivateFieldGet(this, _MetadataBlock_items_accessor_storage, "f"); }
247
- set items(value) { __classPrivateFieldSet(this, _MetadataBlock_items_accessor_storage, value, "f"); }
246
+ get items() { return this.#items_accessor_storage; }
247
+ set items(value) { this.#items_accessor_storage = value; }
248
248
  toString(long = false) {
249
249
  if (!long)
250
250
  return `<MetadataBlock @ ${this.offsetHex}>`;
@@ -262,12 +262,13 @@ let MetadataBlock = (() => {
262
262
  }
263
263
  return text;
264
264
  }
265
+ #locked_accessor_storage = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _locked_initializers, void 0));
265
266
  /**
266
267
  * If non-zero, this block is locked for writing.
267
268
  * Note a int32 is used for `Atomics.wait`
268
269
  */
269
- get locked() { return __classPrivateFieldGet(this, _MetadataBlock_locked_accessor_storage, "f"); }
270
- set locked(value) { __classPrivateFieldSet(this, _MetadataBlock_locked_accessor_storage, value, "f"); }
270
+ get locked() { return this.#locked_accessor_storage; }
271
+ set locked(value) { this.#locked_accessor_storage = value; }
271
272
  /**
272
273
  * Wait for the block to be unlocked.
273
274
  */
@@ -301,54 +302,31 @@ let MetadataBlock = (() => {
301
302
  }
302
303
  constructor() {
303
304
  super(...arguments);
304
- _MetadataBlock_checksum_accessor_storage.set(this, __runInitializers(this, _checksum_initializers, void 0));
305
- _MetadataBlock_timestamp_accessor_storage.set(this, (__runInitializers(this, _checksum_extraInitializers), __runInitializers(this, _timestamp_initializers, BigInt(Date.now()))));
306
- _MetadataBlock_previous_offset_accessor_storage.set(this, (__runInitializers(this, _timestamp_extraInitializers), __runInitializers(this, _previous_offset_initializers, void 0)));
307
- this._previous = __runInitializers(this, _previous_offset_extraInitializers);
308
- _MetadataBlock_items_accessor_storage.set(this, __runInitializers(this, _items_initializers, void 0));
309
- _MetadataBlock_locked_accessor_storage.set(this, (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _locked_initializers, void 0)));
310
305
  __runInitializers(this, _locked_extraInitializers);
311
306
  }
307
+ static {
308
+ __runInitializers(_classThis, _classExtraInitializers);
309
+ }
312
310
  };
313
- _MetadataBlock_checksum_accessor_storage = new WeakMap();
314
- _MetadataBlock_timestamp_accessor_storage = new WeakMap();
315
- _MetadataBlock_previous_offset_accessor_storage = new WeakMap();
316
- _MetadataBlock_items_accessor_storage = new WeakMap();
317
- _MetadataBlock_locked_accessor_storage = new WeakMap();
318
- __setFunctionName(_classThis, "MetadataBlock");
319
- (() => {
320
- var _a;
321
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
322
- _checksum_decorators = [(_a = t).uint32.bind(_a)];
323
- _timestamp_decorators = [(_b = t).uint64.bind(_b)];
324
- _previous_offset_decorators = [(_c = t).uint32.bind(_c)];
325
- _items_decorators = [field(MetadataEntry, { length: entries_per_block })];
326
- _locked_decorators = [(_d = t).int32.bind(_d)];
327
- __esDecorate(_classThis, null, _checksum_decorators, { kind: "accessor", name: "checksum", static: false, private: false, access: { has: obj => "checksum" in obj, get: obj => obj.checksum, set: (obj, value) => { obj.checksum = value; } }, metadata: _metadata }, _checksum_initializers, _checksum_extraInitializers);
328
- __esDecorate(_classThis, null, _timestamp_decorators, { kind: "accessor", name: "timestamp", static: false, private: false, access: { has: obj => "timestamp" in obj, get: obj => obj.timestamp, set: (obj, value) => { obj.timestamp = value; } }, metadata: _metadata }, _timestamp_initializers, _timestamp_extraInitializers);
329
- __esDecorate(_classThis, null, _previous_offset_decorators, { kind: "accessor", name: "previous_offset", static: false, private: false, access: { has: obj => "previous_offset" in obj, get: obj => obj.previous_offset, set: (obj, value) => { obj.previous_offset = value; } }, metadata: _metadata }, _previous_offset_initializers, _previous_offset_extraInitializers);
330
- __esDecorate(_classThis, null, _items_decorators, { kind: "accessor", name: "items", static: false, private: false, access: { has: obj => "items" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);
331
- __esDecorate(_classThis, null, _locked_decorators, { kind: "accessor", name: "locked", static: false, private: false, access: { has: obj => "locked" in obj, get: obj => obj.locked, set: (obj, value) => { obj.locked = value; } }, metadata: _metadata }, _locked_initializers, _locked_extraInitializers);
332
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
333
- MetadataBlock = _classThis = _classDescriptor.value;
334
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
335
- __runInitializers(_classThis, _classExtraInitializers);
336
- })();
337
311
  return MetadataBlock = _classThis;
338
312
  })();
339
313
  export { MetadataBlock };
340
314
  const sb_magic = 0x62732e7a; // 'z.sb'
315
+ /**
316
+ * Shortcut for minor perf. bump
317
+ * @internal
318
+ */
319
+ const usedBytes = 2;
341
320
  /**
342
321
  * The super block structure for a single-buffer file system
343
322
  */
344
323
  let SuperBlock = (() => {
345
- var _SuperBlock_checksum_accessor_storage, _SuperBlock_magic_accessor_storage, _SuperBlock_version_accessor_storage, _SuperBlock_inode_format_accessor_storage, _SuperBlock_flags_accessor_storage, _SuperBlock_used_bytes_accessor_storage, _SuperBlock_total_bytes_accessor_storage, _SuperBlock_uuid_accessor_storage, _SuperBlock_metadata_block_size_accessor_storage, _SuperBlock_metadata_offset__accessor_storage, _SuperBlock_metadata_offset_accessor_storage, _SuperBlock_label_accessor_storage, _SuperBlock__padding_accessor_storage;
346
324
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
347
325
  let _classDecorators = [struct(packed)];
348
326
  let _classDescriptor;
349
327
  let _classExtraInitializers = [];
350
328
  let _classThis;
351
- let _classSuper = BufferView;
329
+ let _classSuper = BigUint64Array;
352
330
  let _checksum_decorators;
353
331
  let _checksum_initializers = [];
354
332
  let _checksum_extraInitializers = [];
@@ -388,23 +366,43 @@ let SuperBlock = (() => {
388
366
  let __padding_decorators;
389
367
  let __padding_initializers = [];
390
368
  let __padding_extraInitializers = [];
391
- var SuperBlock = _classThis = class extends _classSuper {
369
+ var SuperBlock = class extends _classSuper {
370
+ static { _classThis = this; }
371
+ static {
372
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
373
+ _checksum_decorators = [(_a = t).uint32.bind(_a)];
374
+ _magic_decorators = [(_b = t).uint32.bind(_b)];
375
+ _version_decorators = [(_c = t).uint16.bind(_c)];
376
+ _inode_format_decorators = [(_d = t).uint16.bind(_d)];
377
+ _flags_decorators = [(_e = t).uint32.bind(_e)];
378
+ _used_bytes_decorators = [(_f = t).uint64.bind(_f)];
379
+ _total_bytes_decorators = [(_g = t).uint64.bind(_g)];
380
+ _uuid_decorators = [t.uint8(16)];
381
+ _metadata_block_size_decorators = [(_h = t).uint32.bind(_h)];
382
+ _metadata_offset__decorators = [(_j = t).uint32.bind(_j)];
383
+ _metadata_offset_decorators = [(_k = t).uint32.bind(_k)];
384
+ _label_decorators = [t.char(64)];
385
+ __padding_decorators = [t.char(132)];
386
+ __esDecorate(this, null, _checksum_decorators, { kind: "accessor", name: "checksum", static: false, private: false, access: { has: obj => "checksum" in obj, get: obj => obj.checksum, set: (obj, value) => { obj.checksum = value; } }, metadata: _metadata }, _checksum_initializers, _checksum_extraInitializers);
387
+ __esDecorate(this, null, _magic_decorators, { kind: "accessor", name: "magic", static: false, private: false, access: { has: obj => "magic" in obj, get: obj => obj.magic, set: (obj, value) => { obj.magic = value; } }, metadata: _metadata }, _magic_initializers, _magic_extraInitializers);
388
+ __esDecorate(this, null, _version_decorators, { kind: "accessor", name: "version", static: false, private: false, access: { has: obj => "version" in obj, get: obj => obj.version, set: (obj, value) => { obj.version = value; } }, metadata: _metadata }, _version_initializers, _version_extraInitializers);
389
+ __esDecorate(this, null, _inode_format_decorators, { kind: "accessor", name: "inode_format", static: false, private: false, access: { has: obj => "inode_format" in obj, get: obj => obj.inode_format, set: (obj, value) => { obj.inode_format = value; } }, metadata: _metadata }, _inode_format_initializers, _inode_format_extraInitializers);
390
+ __esDecorate(this, null, _flags_decorators, { kind: "accessor", name: "flags", static: false, private: false, access: { has: obj => "flags" in obj, get: obj => obj.flags, set: (obj, value) => { obj.flags = value; } }, metadata: _metadata }, _flags_initializers, _flags_extraInitializers);
391
+ __esDecorate(this, null, _used_bytes_decorators, { kind: "accessor", name: "used_bytes", static: false, private: false, access: { has: obj => "used_bytes" in obj, get: obj => obj.used_bytes, set: (obj, value) => { obj.used_bytes = value; } }, metadata: _metadata }, _used_bytes_initializers, _used_bytes_extraInitializers);
392
+ __esDecorate(this, null, _total_bytes_decorators, { kind: "accessor", name: "total_bytes", static: false, private: false, access: { has: obj => "total_bytes" in obj, get: obj => obj.total_bytes, set: (obj, value) => { obj.total_bytes = value; } }, metadata: _metadata }, _total_bytes_initializers, _total_bytes_extraInitializers);
393
+ __esDecorate(this, null, _uuid_decorators, { kind: "accessor", name: "uuid", static: false, private: false, access: { has: obj => "uuid" in obj, get: obj => obj.uuid, set: (obj, value) => { obj.uuid = value; } }, metadata: _metadata }, _uuid_initializers, _uuid_extraInitializers);
394
+ __esDecorate(this, null, _metadata_block_size_decorators, { kind: "accessor", name: "metadata_block_size", static: false, private: false, access: { has: obj => "metadata_block_size" in obj, get: obj => obj.metadata_block_size, set: (obj, value) => { obj.metadata_block_size = value; } }, metadata: _metadata }, _metadata_block_size_initializers, _metadata_block_size_extraInitializers);
395
+ __esDecorate(this, null, _metadata_offset__decorators, { kind: "accessor", name: "metadata_offset_", static: false, private: false, access: { has: obj => "metadata_offset_" in obj, get: obj => obj.metadata_offset_, set: (obj, value) => { obj.metadata_offset_ = value; } }, metadata: _metadata }, _metadata_offset__initializers, _metadata_offset__extraInitializers);
396
+ __esDecorate(this, null, _metadata_offset_decorators, { kind: "accessor", name: "metadata_offset", static: false, private: false, access: { has: obj => "metadata_offset" in obj, get: obj => obj.metadata_offset, set: (obj, value) => { obj.metadata_offset = value; } }, metadata: _metadata }, _metadata_offset_initializers, _metadata_offset_extraInitializers);
397
+ __esDecorate(this, null, _label_decorators, { kind: "accessor", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
398
+ __esDecorate(this, null, __padding_decorators, { kind: "accessor", name: "_padding", static: false, private: false, access: { has: obj => "_padding" in obj, get: obj => obj._padding, set: (obj, value) => { obj._padding = value; } }, metadata: _metadata }, __padding_initializers, __padding_extraInitializers);
399
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
400
+ SuperBlock = _classThis = _classDescriptor.value;
401
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
402
+ }
403
+ static name = 'SuperBlock';
392
404
  constructor(...args) {
393
405
  super(...args);
394
- _SuperBlock_checksum_accessor_storage.set(this, __runInitializers(this, _checksum_initializers, void 0));
395
- _SuperBlock_magic_accessor_storage.set(this, (__runInitializers(this, _checksum_extraInitializers), __runInitializers(this, _magic_initializers, void 0)));
396
- _SuperBlock_version_accessor_storage.set(this, (__runInitializers(this, _magic_extraInitializers), __runInitializers(this, _version_initializers, void 0)));
397
- _SuperBlock_inode_format_accessor_storage.set(this, (__runInitializers(this, _version_extraInitializers), __runInitializers(this, _inode_format_initializers, void 0)));
398
- _SuperBlock_flags_accessor_storage.set(this, (__runInitializers(this, _inode_format_extraInitializers), __runInitializers(this, _flags_initializers, void 0)));
399
- _SuperBlock_used_bytes_accessor_storage.set(this, (__runInitializers(this, _flags_extraInitializers), __runInitializers(this, _used_bytes_initializers, void 0)));
400
- _SuperBlock_total_bytes_accessor_storage.set(this, (__runInitializers(this, _used_bytes_extraInitializers), __runInitializers(this, _total_bytes_initializers, void 0)));
401
- _SuperBlock_uuid_accessor_storage.set(this, (__runInitializers(this, _total_bytes_extraInitializers), __runInitializers(this, _uuid_initializers, void 0)));
402
- _SuperBlock_metadata_block_size_accessor_storage.set(this, (__runInitializers(this, _uuid_extraInitializers), __runInitializers(this, _metadata_block_size_initializers, void 0)));
403
- _SuperBlock_metadata_offset__accessor_storage.set(this, (__runInitializers(this, _metadata_block_size_extraInitializers), __runInitializers(this, _metadata_offset__initializers, void 0)));
404
- _SuperBlock_metadata_offset_accessor_storage.set(this, (__runInitializers(this, _metadata_offset__extraInitializers), __runInitializers(this, _metadata_offset_initializers, void 0)));
405
- this.metadata = __runInitializers(this, _metadata_offset_extraInitializers);
406
- _SuperBlock_label_accessor_storage.set(this, __runInitializers(this, _label_initializers, void 0));
407
- _SuperBlock__padding_accessor_storage.set(this, (__runInitializers(this, _label_extraInitializers), __runInitializers(this, __padding_initializers, void 0)));
408
406
  __runInitializers(this, __padding_extraInitializers);
409
407
  if (this.magic != sb_magic) {
410
408
  warn('sbfs: Invalid magic value, assuming this is a fresh super block');
@@ -434,51 +432,65 @@ let SuperBlock = (() => {
434
432
  if (this.metadata_block_size != sizeof(MetadataBlock))
435
433
  throw crit(withErrno('EIO', 'sbfs: metadata block size mismatch'));
436
434
  }
435
+ #checksum_accessor_storage = __runInitializers(this, _checksum_initializers, void 0);
437
436
  /**
438
437
  * The crc32c checksum for the super block.
439
438
  * @privateRemarks Keep this first!
440
439
  */
441
- get checksum() { return __classPrivateFieldGet(this, _SuperBlock_checksum_accessor_storage, "f"); }
442
- set checksum(value) { __classPrivateFieldSet(this, _SuperBlock_checksum_accessor_storage, value, "f"); }
440
+ get checksum() { return this.#checksum_accessor_storage; }
441
+ set checksum(value) { this.#checksum_accessor_storage = value; }
442
+ #magic_accessor_storage = (__runInitializers(this, _checksum_extraInitializers), __runInitializers(this, _magic_initializers, void 0));
443
443
  /** Signature for the superblock. */
444
- get magic() { return __classPrivateFieldGet(this, _SuperBlock_magic_accessor_storage, "f"); }
445
- set magic(value) { __classPrivateFieldSet(this, _SuperBlock_magic_accessor_storage, value, "f"); }
444
+ get magic() { return this.#magic_accessor_storage; }
445
+ set magic(value) { this.#magic_accessor_storage = value; }
446
+ #version_accessor_storage = (__runInitializers(this, _magic_extraInitializers), __runInitializers(this, _version_initializers, void 0));
446
447
  /** The version of the on-disk format */
447
- get version() { return __classPrivateFieldGet(this, _SuperBlock_version_accessor_storage, "f"); }
448
- set version(value) { __classPrivateFieldSet(this, _SuperBlock_version_accessor_storage, value, "f"); }
448
+ get version() { return this.#version_accessor_storage; }
449
+ set version(value) { this.#version_accessor_storage = value; }
450
+ #inode_format_accessor_storage = (__runInitializers(this, _version_extraInitializers), __runInitializers(this, _inode_format_initializers, void 0));
449
451
  /** Which format of `Inode` is used */
450
- get inode_format() { return __classPrivateFieldGet(this, _SuperBlock_inode_format_accessor_storage, "f"); }
451
- set inode_format(value) { __classPrivateFieldSet(this, _SuperBlock_inode_format_accessor_storage, value, "f"); }
452
+ get inode_format() { return this.#inode_format_accessor_storage; }
453
+ set inode_format(value) { this.#inode_format_accessor_storage = value; }
454
+ #flags_accessor_storage = (__runInitializers(this, _inode_format_extraInitializers), __runInitializers(this, _flags_initializers, void 0));
452
455
  /** Flags for the file system. Currently unused */
453
- get flags() { return __classPrivateFieldGet(this, _SuperBlock_flags_accessor_storage, "f"); }
454
- set flags(value) { __classPrivateFieldSet(this, _SuperBlock_flags_accessor_storage, value, "f"); }
456
+ get flags() { return this.#flags_accessor_storage; }
457
+ set flags(value) { this.#flags_accessor_storage = value; }
458
+ #used_bytes_accessor_storage = (__runInitializers(this, _flags_extraInitializers), __runInitializers(this, _used_bytes_initializers, void 0));
455
459
  /** The number of used bytes, including the super block and metadata */
456
- get used_bytes() { return __classPrivateFieldGet(this, _SuperBlock_used_bytes_accessor_storage, "f"); }
457
- set used_bytes(value) { __classPrivateFieldSet(this, _SuperBlock_used_bytes_accessor_storage, value, "f"); }
460
+ get used_bytes() { return this.#used_bytes_accessor_storage; }
461
+ set used_bytes(value) { this.#used_bytes_accessor_storage = value; }
462
+ #total_bytes_accessor_storage = (__runInitializers(this, _used_bytes_extraInitializers), __runInitializers(this, _total_bytes_initializers, void 0));
458
463
  /** The total size of the entire file system, including the super block and metadata */
459
- get total_bytes() { return __classPrivateFieldGet(this, _SuperBlock_total_bytes_accessor_storage, "f"); }
460
- set total_bytes(value) { __classPrivateFieldSet(this, _SuperBlock_total_bytes_accessor_storage, value, "f"); }
464
+ get total_bytes() { return this.#total_bytes_accessor_storage; }
465
+ set total_bytes(value) { this.#total_bytes_accessor_storage = value; }
466
+ #uuid_accessor_storage = (__runInitializers(this, _total_bytes_extraInitializers), __runInitializers(this, _uuid_initializers, void 0));
461
467
  /** A UUID for this file system */
462
- get uuid() { return __classPrivateFieldGet(this, _SuperBlock_uuid_accessor_storage, "f"); }
463
- set uuid(value) { __classPrivateFieldSet(this, _SuperBlock_uuid_accessor_storage, value, "f"); }
468
+ get uuid() { return this.#uuid_accessor_storage; }
469
+ set uuid(value) { this.#uuid_accessor_storage = value; }
470
+ #metadata_block_size_accessor_storage = (__runInitializers(this, _uuid_extraInitializers), __runInitializers(this, _metadata_block_size_initializers, void 0));
464
471
  /**
465
472
  * The size in bytes of a metadata block.
466
473
  * Not currently configurable.
467
474
  */
468
- get metadata_block_size() { return __classPrivateFieldGet(this, _SuperBlock_metadata_block_size_accessor_storage, "f"); }
469
- set metadata_block_size(value) { __classPrivateFieldSet(this, _SuperBlock_metadata_block_size_accessor_storage, value, "f"); }
475
+ get metadata_block_size() { return this.#metadata_block_size_accessor_storage; }
476
+ set metadata_block_size(value) { this.#metadata_block_size_accessor_storage = value; }
477
+ #metadata_offset__accessor_storage = (__runInitializers(this, _metadata_block_size_extraInitializers), __runInitializers(this, _metadata_offset__initializers, void 0));
470
478
  /** Reserved for 64-bit offset expansion */
471
- get metadata_offset_() { return __classPrivateFieldGet(this, _SuperBlock_metadata_offset__accessor_storage, "f"); }
472
- set metadata_offset_(value) { __classPrivateFieldSet(this, _SuperBlock_metadata_offset__accessor_storage, value, "f"); }
479
+ get metadata_offset_() { return this.#metadata_offset__accessor_storage; }
480
+ set metadata_offset_(value) { this.#metadata_offset__accessor_storage = value; }
481
+ #metadata_offset_accessor_storage = (__runInitializers(this, _metadata_offset__extraInitializers), __runInitializers(this, _metadata_offset_initializers, void 0));
473
482
  /** Offset of the current metadata block */
474
- get metadata_offset() { return __classPrivateFieldGet(this, _SuperBlock_metadata_offset_accessor_storage, "f"); }
475
- set metadata_offset(value) { __classPrivateFieldSet(this, _SuperBlock_metadata_offset_accessor_storage, value, "f"); }
483
+ get metadata_offset() { return this.#metadata_offset_accessor_storage; }
484
+ set metadata_offset(value) { this.#metadata_offset_accessor_storage = value; }
485
+ metadata = __runInitializers(this, _metadata_offset_extraInitializers);
486
+ #label_accessor_storage = __runInitializers(this, _label_initializers, void 0);
476
487
  /** An optional label for the file system */
477
- get label() { return __classPrivateFieldGet(this, _SuperBlock_label_accessor_storage, "f"); }
478
- set label(value) { __classPrivateFieldSet(this, _SuperBlock_label_accessor_storage, value, "f"); }
488
+ get label() { return this.#label_accessor_storage; }
489
+ set label(value) { this.#label_accessor_storage = value; }
490
+ #_padding_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, __padding_initializers, void 0));
479
491
  /** Padded to 256 bytes */
480
- get _padding() { return __classPrivateFieldGet(this, _SuperBlock__padding_accessor_storage, "f"); }
481
- set _padding(value) { __classPrivateFieldSet(this, _SuperBlock__padding_accessor_storage, value, "f"); }
492
+ get _padding() { return this.#_padding_accessor_storage; }
493
+ set _padding(value) { this.#_padding_accessor_storage = value; }
482
494
  /**
483
495
  * Rotate out the current metadata block.
484
496
  * Allocates a new metadata block, moves the current one to backup,
@@ -486,12 +498,14 @@ let SuperBlock = (() => {
486
498
  * @returns the new metadata block
487
499
  */
488
500
  rotateMetadata() {
489
- const metadata = new MetadataBlock(this.buffer, Number(this.used_bytes));
501
+ const padding = this.used_bytes % BigInt(4);
502
+ Atomics.add(this, usedBytes, padding);
503
+ const offset = Number(Atomics.add(this, usedBytes, BigInt(sizeof(MetadataBlock))));
504
+ const metadata = new MetadataBlock(this.buffer, offset);
490
505
  metadata.previous_offset = this.metadata_offset;
491
506
  this.metadata = metadata;
492
507
  this.metadata_offset = metadata.byteOffset;
493
508
  _update(metadata);
494
- this.used_bytes += BigInt(sizeof(MetadataBlock));
495
509
  _update(this);
496
510
  return metadata;
497
511
  }
@@ -519,55 +533,10 @@ let SuperBlock = (() => {
519
533
  }
520
534
  return true;
521
535
  }
536
+ static {
537
+ __runInitializers(_classThis, _classExtraInitializers);
538
+ }
522
539
  };
523
- _SuperBlock_checksum_accessor_storage = new WeakMap();
524
- _SuperBlock_magic_accessor_storage = new WeakMap();
525
- _SuperBlock_version_accessor_storage = new WeakMap();
526
- _SuperBlock_inode_format_accessor_storage = new WeakMap();
527
- _SuperBlock_flags_accessor_storage = new WeakMap();
528
- _SuperBlock_used_bytes_accessor_storage = new WeakMap();
529
- _SuperBlock_total_bytes_accessor_storage = new WeakMap();
530
- _SuperBlock_uuid_accessor_storage = new WeakMap();
531
- _SuperBlock_metadata_block_size_accessor_storage = new WeakMap();
532
- _SuperBlock_metadata_offset__accessor_storage = new WeakMap();
533
- _SuperBlock_metadata_offset_accessor_storage = new WeakMap();
534
- _SuperBlock_label_accessor_storage = new WeakMap();
535
- _SuperBlock__padding_accessor_storage = new WeakMap();
536
- __setFunctionName(_classThis, "SuperBlock");
537
- (() => {
538
- var _a;
539
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
540
- _checksum_decorators = [(_a = t).uint32.bind(_a)];
541
- _magic_decorators = [(_b = t).uint32.bind(_b)];
542
- _version_decorators = [(_c = t).uint16.bind(_c)];
543
- _inode_format_decorators = [(_d = t).uint16.bind(_d)];
544
- _flags_decorators = [(_e = t).uint32.bind(_e)];
545
- _used_bytes_decorators = [(_f = t).uint64.bind(_f)];
546
- _total_bytes_decorators = [(_g = t).uint64.bind(_g)];
547
- _uuid_decorators = [t.uint8(16)];
548
- _metadata_block_size_decorators = [(_h = t).uint32.bind(_h)];
549
- _metadata_offset__decorators = [(_j = t).uint32.bind(_j)];
550
- _metadata_offset_decorators = [(_k = t).uint32.bind(_k)];
551
- _label_decorators = [t.char(64)];
552
- __padding_decorators = [t.char(132)];
553
- __esDecorate(_classThis, null, _checksum_decorators, { kind: "accessor", name: "checksum", static: false, private: false, access: { has: obj => "checksum" in obj, get: obj => obj.checksum, set: (obj, value) => { obj.checksum = value; } }, metadata: _metadata }, _checksum_initializers, _checksum_extraInitializers);
554
- __esDecorate(_classThis, null, _magic_decorators, { kind: "accessor", name: "magic", static: false, private: false, access: { has: obj => "magic" in obj, get: obj => obj.magic, set: (obj, value) => { obj.magic = value; } }, metadata: _metadata }, _magic_initializers, _magic_extraInitializers);
555
- __esDecorate(_classThis, null, _version_decorators, { kind: "accessor", name: "version", static: false, private: false, access: { has: obj => "version" in obj, get: obj => obj.version, set: (obj, value) => { obj.version = value; } }, metadata: _metadata }, _version_initializers, _version_extraInitializers);
556
- __esDecorate(_classThis, null, _inode_format_decorators, { kind: "accessor", name: "inode_format", static: false, private: false, access: { has: obj => "inode_format" in obj, get: obj => obj.inode_format, set: (obj, value) => { obj.inode_format = value; } }, metadata: _metadata }, _inode_format_initializers, _inode_format_extraInitializers);
557
- __esDecorate(_classThis, null, _flags_decorators, { kind: "accessor", name: "flags", static: false, private: false, access: { has: obj => "flags" in obj, get: obj => obj.flags, set: (obj, value) => { obj.flags = value; } }, metadata: _metadata }, _flags_initializers, _flags_extraInitializers);
558
- __esDecorate(_classThis, null, _used_bytes_decorators, { kind: "accessor", name: "used_bytes", static: false, private: false, access: { has: obj => "used_bytes" in obj, get: obj => obj.used_bytes, set: (obj, value) => { obj.used_bytes = value; } }, metadata: _metadata }, _used_bytes_initializers, _used_bytes_extraInitializers);
559
- __esDecorate(_classThis, null, _total_bytes_decorators, { kind: "accessor", name: "total_bytes", static: false, private: false, access: { has: obj => "total_bytes" in obj, get: obj => obj.total_bytes, set: (obj, value) => { obj.total_bytes = value; } }, metadata: _metadata }, _total_bytes_initializers, _total_bytes_extraInitializers);
560
- __esDecorate(_classThis, null, _uuid_decorators, { kind: "accessor", name: "uuid", static: false, private: false, access: { has: obj => "uuid" in obj, get: obj => obj.uuid, set: (obj, value) => { obj.uuid = value; } }, metadata: _metadata }, _uuid_initializers, _uuid_extraInitializers);
561
- __esDecorate(_classThis, null, _metadata_block_size_decorators, { kind: "accessor", name: "metadata_block_size", static: false, private: false, access: { has: obj => "metadata_block_size" in obj, get: obj => obj.metadata_block_size, set: (obj, value) => { obj.metadata_block_size = value; } }, metadata: _metadata }, _metadata_block_size_initializers, _metadata_block_size_extraInitializers);
562
- __esDecorate(_classThis, null, _metadata_offset__decorators, { kind: "accessor", name: "metadata_offset_", static: false, private: false, access: { has: obj => "metadata_offset_" in obj, get: obj => obj.metadata_offset_, set: (obj, value) => { obj.metadata_offset_ = value; } }, metadata: _metadata }, _metadata_offset__initializers, _metadata_offset__extraInitializers);
563
- __esDecorate(_classThis, null, _metadata_offset_decorators, { kind: "accessor", name: "metadata_offset", static: false, private: false, access: { has: obj => "metadata_offset" in obj, get: obj => obj.metadata_offset, set: (obj, value) => { obj.metadata_offset = value; } }, metadata: _metadata }, _metadata_offset_initializers, _metadata_offset_extraInitializers);
564
- __esDecorate(_classThis, null, _label_decorators, { kind: "accessor", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
565
- __esDecorate(_classThis, null, __padding_decorators, { kind: "accessor", name: "_padding", static: false, private: false, access: { has: obj => "_padding" in obj, get: obj => obj._padding, set: (obj, value) => { obj._padding = value; } }, metadata: _metadata }, __padding_initializers, __padding_extraInitializers);
566
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
567
- SuperBlock = _classThis = _classDescriptor.value;
568
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
569
- __runInitializers(_classThis, _classExtraInitializers);
570
- })();
571
540
  return SuperBlock = _classThis;
572
541
  })();
573
542
  export { SuperBlock };
@@ -592,14 +561,20 @@ function _update(value) {
592
561
  * @category Stores and Transactions
593
562
  */
594
563
  export class SingleBufferStore extends BufferView {
564
+ flags = [];
565
+ name = 'sbfs';
566
+ type = 0x73626673; // 'sbfs'
595
567
  get uuid() {
596
568
  return decodeUUID(this.superblock.uuid);
597
569
  }
570
+ superblock;
571
+ /**
572
+ * @internal @hidden
573
+ */
574
+ _view;
575
+ _u8;
598
576
  constructor(...args) {
599
577
  super(...args);
600
- this.flags = [];
601
- this.name = 'sbfs';
602
- this.type = 0x73626673; // 'sbfs'
603
578
  if (this.byteLength < sizeof(SuperBlock) + sizeof(MetadataBlock))
604
579
  throw crit(withErrno('EINVAL', 'sbfs: Buffer is too small for a file system'));
605
580
  this._view = new DataView(this.buffer, this.byteOffset, this.byteLength);
@@ -652,11 +627,10 @@ export class SingleBufferStore extends BufferView {
652
627
  _update(block);
653
628
  return;
654
629
  }
655
- entry.offset = Number(this.superblock.used_bytes);
630
+ entry.offset = Number(Atomics.add(this.superblock, usedBytes, BigInt(data.length)));
656
631
  entry.size = data.length;
657
632
  this._u8.set(data, entry.offset);
658
633
  _update(block);
659
- this.superblock.used_bytes += BigInt(data.length);
660
634
  _update(this.superblock);
661
635
  return;
662
636
  }
@@ -675,12 +649,11 @@ export class SingleBufferStore extends BufferView {
675
649
  entry = this.superblock.metadata.items[0];
676
650
  }
677
651
  const lock = __addDisposableResource(env_1, this.superblock.metadata.lock(), false);
678
- const offset = Number(this.superblock.used_bytes);
652
+ const offset = Number(Atomics.add(this.superblock, usedBytes, BigInt(data.length)));
679
653
  entry.id = id;
680
654
  entry.offset = offset;
681
655
  entry.size = data.length;
682
656
  this._u8.set(data, offset);
683
- this.superblock.used_bytes += BigInt(data.length);
684
657
  _update(this.superblock.metadata);
685
658
  _update(this.superblock);
686
659
  }
@@ -706,12 +679,13 @@ export class SingleBufferStore extends BufferView {
706
679
  }
707
680
  }
708
681
  }
682
+ _fs;
709
683
  get fs() {
710
684
  return this._fs;
711
685
  }
712
686
  set fs(fs) {
713
687
  if (this.buffer.constructor.name === 'SharedArrayBuffer')
714
- fs === null || fs === void 0 ? void 0 : fs.attributes.set('no_id_tables', true);
688
+ fs?.attributes.set('no_id_tables', true);
715
689
  this._fs = fs;
716
690
  }
717
691
  sync() {