@zenfs/core 2.2.3 → 2.3.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.
Files changed (51) 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 +2 -2
  9. package/dist/backends/single_buffer.js +165 -198
  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/devices.js +7 -10
  16. package/dist/internal/file_index.js +3 -8
  17. package/dist/internal/filesystem.js +19 -12
  18. package/dist/internal/index_fs.js +3 -4
  19. package/dist/internal/inode.js +144 -187
  20. package/dist/internal/rpc.d.ts +143 -0
  21. package/dist/internal/rpc.js +251 -0
  22. package/dist/mixins/async.js +5 -6
  23. package/dist/mixins/mutexed.js +16 -10
  24. package/dist/path.js +3 -4
  25. package/dist/polyfills.js +51 -22
  26. package/dist/readline.js +32 -30
  27. package/dist/utils.d.ts +2 -0
  28. package/dist/utils.js +11 -5
  29. package/dist/vfs/acl.js +44 -68
  30. package/dist/vfs/async.js +4 -4
  31. package/dist/vfs/dir.js +12 -8
  32. package/dist/vfs/file.js +22 -18
  33. package/dist/vfs/ioctl.js +39 -62
  34. package/dist/vfs/promises.js +48 -39
  35. package/dist/vfs/shared.js +4 -5
  36. package/dist/vfs/stats.js +104 -77
  37. package/dist/vfs/streams.js +11 -8
  38. package/dist/vfs/sync.js +23 -26
  39. package/dist/vfs/watchers.js +9 -3
  40. package/dist/vfs/xattr.js +6 -12
  41. package/package.json +2 -2
  42. package/scripts/test.js +16 -7
  43. package/tests/backend/fetch.test.ts +14 -14
  44. package/tests/backend/port.test.ts +25 -17
  45. package/tests/common/handle.test.ts +5 -3
  46. package/tests/fetch/run.sh +2 -1
  47. package/tests/fs/scaling.test.ts +32 -0
  48. package/tests/fs/watch.test.ts +2 -5
  49. package/tests/setup/single-buffer.ts +1 -1
  50. package/tests/tsconfig.json +3 -2
  51. 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,9 +176,8 @@ 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
- let _classDecorators = [struct(packed)];
180
+ let _classDecorators = [struct(packed, { name: 'MetadataBlock' })];
203
181
  let _classDescriptor;
204
182
  let _classExtraInitializers = [];
205
183
  let _classThis;
@@ -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
+ __runInitializers(_classThis, _classExtraInitializers);
218
+ }
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,28 @@ 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
  }
312
307
  };
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
308
  return MetadataBlock = _classThis;
338
309
  })();
339
310
  export { MetadataBlock };
340
311
  const sb_magic = 0x62732e7a; // 'z.sb'
312
+ /**
313
+ * Shortcut for minor perf. bump
314
+ * @internal
315
+ */
316
+ const usedBytes = 2;
341
317
  /**
342
318
  * The super block structure for a single-buffer file system
343
319
  */
344
320
  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
321
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
347
- let _classDecorators = [struct(packed)];
322
+ let _classDecorators = [struct(packed, { name: 'SuperBlock' })];
348
323
  let _classDescriptor;
349
324
  let _classExtraInitializers = [];
350
325
  let _classThis;
351
- let _classSuper = BufferView;
326
+ let _classSuper = BigUint64Array;
352
327
  let _checksum_decorators;
353
328
  let _checksum_initializers = [];
354
329
  let _checksum_extraInitializers = [];
@@ -388,23 +363,43 @@ let SuperBlock = (() => {
388
363
  let __padding_decorators;
389
364
  let __padding_initializers = [];
390
365
  let __padding_extraInitializers = [];
391
- var SuperBlock = _classThis = class extends _classSuper {
366
+ var SuperBlock = class extends _classSuper {
367
+ static { _classThis = this; }
368
+ static {
369
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
370
+ _checksum_decorators = [(_a = t).uint32.bind(_a)];
371
+ _magic_decorators = [(_b = t).uint32.bind(_b)];
372
+ _version_decorators = [(_c = t).uint16.bind(_c)];
373
+ _inode_format_decorators = [(_d = t).uint16.bind(_d)];
374
+ _flags_decorators = [(_e = t).uint32.bind(_e)];
375
+ _used_bytes_decorators = [(_f = t).uint64.bind(_f)];
376
+ _total_bytes_decorators = [(_g = t).uint64.bind(_g)];
377
+ _uuid_decorators = [t.uint8(16)];
378
+ _metadata_block_size_decorators = [(_h = t).uint32.bind(_h)];
379
+ _metadata_offset__decorators = [(_j = t).uint32.bind(_j)];
380
+ _metadata_offset_decorators = [(_k = t).uint32.bind(_k)];
381
+ _label_decorators = [t.char(64)];
382
+ __padding_decorators = [t.char(132)];
383
+ __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);
384
+ __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);
385
+ __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);
386
+ __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);
387
+ __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);
388
+ __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);
389
+ __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);
390
+ __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);
391
+ __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);
392
+ __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);
393
+ __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);
394
+ __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);
395
+ __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);
396
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
397
+ SuperBlock = _classThis = _classDescriptor.value;
398
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
399
+ __runInitializers(_classThis, _classExtraInitializers);
400
+ }
392
401
  constructor(...args) {
393
402
  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
403
  __runInitializers(this, __padding_extraInitializers);
409
404
  if (this.magic != sb_magic) {
410
405
  warn('sbfs: Invalid magic value, assuming this is a fresh super block');
@@ -434,51 +429,65 @@ let SuperBlock = (() => {
434
429
  if (this.metadata_block_size != sizeof(MetadataBlock))
435
430
  throw crit(withErrno('EIO', 'sbfs: metadata block size mismatch'));
436
431
  }
432
+ #checksum_accessor_storage = __runInitializers(this, _checksum_initializers, void 0);
437
433
  /**
438
434
  * The crc32c checksum for the super block.
439
435
  * @privateRemarks Keep this first!
440
436
  */
441
- get checksum() { return __classPrivateFieldGet(this, _SuperBlock_checksum_accessor_storage, "f"); }
442
- set checksum(value) { __classPrivateFieldSet(this, _SuperBlock_checksum_accessor_storage, value, "f"); }
437
+ get checksum() { return this.#checksum_accessor_storage; }
438
+ set checksum(value) { this.#checksum_accessor_storage = value; }
439
+ #magic_accessor_storage = (__runInitializers(this, _checksum_extraInitializers), __runInitializers(this, _magic_initializers, void 0));
443
440
  /** 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"); }
441
+ get magic() { return this.#magic_accessor_storage; }
442
+ set magic(value) { this.#magic_accessor_storage = value; }
443
+ #version_accessor_storage = (__runInitializers(this, _magic_extraInitializers), __runInitializers(this, _version_initializers, void 0));
446
444
  /** 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"); }
445
+ get version() { return this.#version_accessor_storage; }
446
+ set version(value) { this.#version_accessor_storage = value; }
447
+ #inode_format_accessor_storage = (__runInitializers(this, _version_extraInitializers), __runInitializers(this, _inode_format_initializers, void 0));
449
448
  /** 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"); }
449
+ get inode_format() { return this.#inode_format_accessor_storage; }
450
+ set inode_format(value) { this.#inode_format_accessor_storage = value; }
451
+ #flags_accessor_storage = (__runInitializers(this, _inode_format_extraInitializers), __runInitializers(this, _flags_initializers, void 0));
452
452
  /** 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"); }
453
+ get flags() { return this.#flags_accessor_storage; }
454
+ set flags(value) { this.#flags_accessor_storage = value; }
455
+ #used_bytes_accessor_storage = (__runInitializers(this, _flags_extraInitializers), __runInitializers(this, _used_bytes_initializers, void 0));
455
456
  /** 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"); }
457
+ get used_bytes() { return this.#used_bytes_accessor_storage; }
458
+ set used_bytes(value) { this.#used_bytes_accessor_storage = value; }
459
+ #total_bytes_accessor_storage = (__runInitializers(this, _used_bytes_extraInitializers), __runInitializers(this, _total_bytes_initializers, void 0));
458
460
  /** 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"); }
461
+ get total_bytes() { return this.#total_bytes_accessor_storage; }
462
+ set total_bytes(value) { this.#total_bytes_accessor_storage = value; }
463
+ #uuid_accessor_storage = (__runInitializers(this, _total_bytes_extraInitializers), __runInitializers(this, _uuid_initializers, void 0));
461
464
  /** 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"); }
465
+ get uuid() { return this.#uuid_accessor_storage; }
466
+ set uuid(value) { this.#uuid_accessor_storage = value; }
467
+ #metadata_block_size_accessor_storage = (__runInitializers(this, _uuid_extraInitializers), __runInitializers(this, _metadata_block_size_initializers, void 0));
464
468
  /**
465
469
  * The size in bytes of a metadata block.
466
470
  * Not currently configurable.
467
471
  */
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"); }
472
+ get metadata_block_size() { return this.#metadata_block_size_accessor_storage; }
473
+ set metadata_block_size(value) { this.#metadata_block_size_accessor_storage = value; }
474
+ #metadata_offset__accessor_storage = (__runInitializers(this, _metadata_block_size_extraInitializers), __runInitializers(this, _metadata_offset__initializers, void 0));
470
475
  /** 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"); }
476
+ get metadata_offset_() { return this.#metadata_offset__accessor_storage; }
477
+ set metadata_offset_(value) { this.#metadata_offset__accessor_storage = value; }
478
+ #metadata_offset_accessor_storage = (__runInitializers(this, _metadata_offset__extraInitializers), __runInitializers(this, _metadata_offset_initializers, void 0));
473
479
  /** 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"); }
480
+ get metadata_offset() { return this.#metadata_offset_accessor_storage; }
481
+ set metadata_offset(value) { this.#metadata_offset_accessor_storage = value; }
482
+ metadata = __runInitializers(this, _metadata_offset_extraInitializers);
483
+ #label_accessor_storage = __runInitializers(this, _label_initializers, void 0);
476
484
  /** 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"); }
485
+ get label() { return this.#label_accessor_storage; }
486
+ set label(value) { this.#label_accessor_storage = value; }
487
+ #_padding_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, __padding_initializers, void 0));
479
488
  /** 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"); }
489
+ get _padding() { return this.#_padding_accessor_storage; }
490
+ set _padding(value) { this.#_padding_accessor_storage = value; }
482
491
  /**
483
492
  * Rotate out the current metadata block.
484
493
  * Allocates a new metadata block, moves the current one to backup,
@@ -486,13 +495,14 @@ let SuperBlock = (() => {
486
495
  * @returns the new metadata block
487
496
  */
488
497
  rotateMetadata() {
489
- this.used_bytes += this.used_bytes % BigInt(4);
490
- const metadata = new MetadataBlock(this.buffer, Number(this.used_bytes));
498
+ const padding = this.used_bytes % BigInt(4);
499
+ Atomics.add(this, usedBytes, padding);
500
+ const offset = Number(Atomics.add(this, usedBytes, BigInt(sizeof(MetadataBlock))));
501
+ const metadata = new MetadataBlock(this.buffer, offset);
491
502
  metadata.previous_offset = this.metadata_offset;
492
503
  this.metadata = metadata;
493
504
  this.metadata_offset = metadata.byteOffset;
494
505
  _update(metadata);
495
- this.used_bytes += BigInt(sizeof(MetadataBlock));
496
506
  _update(this);
497
507
  return metadata;
498
508
  }
@@ -521,54 +531,6 @@ let SuperBlock = (() => {
521
531
  return true;
522
532
  }
523
533
  };
524
- _SuperBlock_checksum_accessor_storage = new WeakMap();
525
- _SuperBlock_magic_accessor_storage = new WeakMap();
526
- _SuperBlock_version_accessor_storage = new WeakMap();
527
- _SuperBlock_inode_format_accessor_storage = new WeakMap();
528
- _SuperBlock_flags_accessor_storage = new WeakMap();
529
- _SuperBlock_used_bytes_accessor_storage = new WeakMap();
530
- _SuperBlock_total_bytes_accessor_storage = new WeakMap();
531
- _SuperBlock_uuid_accessor_storage = new WeakMap();
532
- _SuperBlock_metadata_block_size_accessor_storage = new WeakMap();
533
- _SuperBlock_metadata_offset__accessor_storage = new WeakMap();
534
- _SuperBlock_metadata_offset_accessor_storage = new WeakMap();
535
- _SuperBlock_label_accessor_storage = new WeakMap();
536
- _SuperBlock__padding_accessor_storage = new WeakMap();
537
- __setFunctionName(_classThis, "SuperBlock");
538
- (() => {
539
- var _a;
540
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_a = _classSuper[Symbol.metadata]) !== null && _a !== void 0 ? _a : null) : void 0;
541
- _checksum_decorators = [(_a = t).uint32.bind(_a)];
542
- _magic_decorators = [(_b = t).uint32.bind(_b)];
543
- _version_decorators = [(_c = t).uint16.bind(_c)];
544
- _inode_format_decorators = [(_d = t).uint16.bind(_d)];
545
- _flags_decorators = [(_e = t).uint32.bind(_e)];
546
- _used_bytes_decorators = [(_f = t).uint64.bind(_f)];
547
- _total_bytes_decorators = [(_g = t).uint64.bind(_g)];
548
- _uuid_decorators = [t.uint8(16)];
549
- _metadata_block_size_decorators = [(_h = t).uint32.bind(_h)];
550
- _metadata_offset__decorators = [(_j = t).uint32.bind(_j)];
551
- _metadata_offset_decorators = [(_k = t).uint32.bind(_k)];
552
- _label_decorators = [t.char(64)];
553
- __padding_decorators = [t.char(132)];
554
- __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);
555
- __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);
556
- __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);
557
- __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);
558
- __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);
559
- __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);
560
- __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);
561
- __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);
562
- __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);
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, _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);
565
- __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);
566
- __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);
567
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
568
- SuperBlock = _classThis = _classDescriptor.value;
569
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
570
- __runInitializers(_classThis, _classExtraInitializers);
571
- })();
572
534
  return SuperBlock = _classThis;
573
535
  })();
574
536
  export { SuperBlock };
@@ -593,14 +555,20 @@ function _update(value) {
593
555
  * @category Stores and Transactions
594
556
  */
595
557
  export class SingleBufferStore extends BufferView {
558
+ flags = [];
559
+ name = 'sbfs';
560
+ type = 0x73626673; // 'sbfs'
596
561
  get uuid() {
597
562
  return decodeUUID(this.superblock.uuid);
598
563
  }
564
+ superblock;
565
+ /**
566
+ * @internal @hidden
567
+ */
568
+ _view;
569
+ _u8;
599
570
  constructor(...args) {
600
571
  super(...args);
601
- this.flags = [];
602
- this.name = 'sbfs';
603
- this.type = 0x73626673; // 'sbfs'
604
572
  if (this.byteLength < sizeof(SuperBlock) + sizeof(MetadataBlock))
605
573
  throw crit(withErrno('EINVAL', 'sbfs: Buffer is too small for a file system'));
606
574
  this._view = new DataView(this.buffer, this.byteOffset, this.byteLength);
@@ -653,11 +621,10 @@ export class SingleBufferStore extends BufferView {
653
621
  _update(block);
654
622
  return;
655
623
  }
656
- entry.offset = Number(this.superblock.used_bytes);
624
+ entry.offset = Number(Atomics.add(this.superblock, usedBytes, BigInt(data.length)));
657
625
  entry.size = data.length;
658
626
  this._u8.set(data, entry.offset);
659
627
  _update(block);
660
- this.superblock.used_bytes += BigInt(data.length);
661
628
  _update(this.superblock);
662
629
  return;
663
630
  }
@@ -676,12 +643,11 @@ export class SingleBufferStore extends BufferView {
676
643
  entry = this.superblock.metadata.items[0];
677
644
  }
678
645
  const lock = __addDisposableResource(env_1, this.superblock.metadata.lock(), false);
679
- const offset = Number(this.superblock.used_bytes);
646
+ const offset = Number(Atomics.add(this.superblock, usedBytes, BigInt(data.length)));
680
647
  entry.id = id;
681
648
  entry.offset = offset;
682
649
  entry.size = data.length;
683
650
  this._u8.set(data, offset);
684
- this.superblock.used_bytes += BigInt(data.length);
685
651
  _update(this.superblock.metadata);
686
652
  _update(this.superblock);
687
653
  }
@@ -707,12 +673,13 @@ export class SingleBufferStore extends BufferView {
707
673
  }
708
674
  }
709
675
  }
676
+ _fs;
710
677
  get fs() {
711
678
  return this._fs;
712
679
  }
713
680
  set fs(fs) {
714
681
  if (this.buffer.constructor.name === 'SharedArrayBuffer')
715
- fs === null || fs === void 0 ? void 0 : fs.attributes.set('no_id_tables', true);
682
+ fs?.attributes.set('no_id_tables', true);
716
683
  this._fs = fs;
717
684
  }
718
685
  sync() {