@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.
- package/dist/backends/backend.js +6 -9
- package/dist/backends/cow.js +4 -4
- package/dist/backends/fetch.js +8 -6
- package/dist/backends/memory.js +4 -2
- package/dist/backends/passthrough.js +2 -0
- package/dist/backends/port.d.ts +16 -89
- package/dist/backends/port.js +35 -171
- package/dist/backends/single_buffer.d.ts +4 -2
- package/dist/backends/single_buffer.js +169 -195
- package/dist/backends/store/fs.js +50 -73
- package/dist/backends/store/map.js +1 -2
- package/dist/backends/store/store.js +23 -27
- package/dist/config.js +2 -3
- package/dist/context.js +2 -2
- package/dist/internal/credentials.d.ts +6 -0
- package/dist/internal/credentials.js +10 -0
- package/dist/internal/devices.js +7 -10
- package/dist/internal/file_index.js +3 -8
- package/dist/internal/filesystem.js +19 -12
- package/dist/internal/index_fs.js +3 -4
- package/dist/internal/inode.d.ts +2 -0
- package/dist/internal/inode.js +148 -185
- package/dist/internal/rpc.d.ts +143 -0
- package/dist/internal/rpc.js +251 -0
- package/dist/mixins/async.js +5 -6
- package/dist/mixins/mutexed.js +16 -10
- package/dist/path.js +3 -4
- package/dist/polyfills.js +51 -22
- package/dist/readline.js +32 -30
- package/dist/utils.d.ts +3 -2
- package/dist/utils.js +11 -5
- package/dist/vfs/acl.d.ts +2 -0
- package/dist/vfs/acl.js +48 -66
- package/dist/vfs/async.js +4 -4
- package/dist/vfs/dir.d.ts +4 -3
- package/dist/vfs/dir.js +16 -10
- package/dist/vfs/file.js +22 -18
- package/dist/vfs/ioctl.js +39 -62
- package/dist/vfs/promises.d.ts +33 -25
- package/dist/vfs/promises.js +56 -47
- package/dist/vfs/shared.js +7 -7
- package/dist/vfs/stats.js +104 -77
- package/dist/vfs/streams.js +11 -8
- package/dist/vfs/sync.d.ts +22 -11
- package/dist/vfs/sync.js +24 -27
- package/dist/vfs/types.d.ts +3 -8
- package/dist/vfs/watchers.js +9 -3
- package/dist/vfs/xattr.js +6 -12
- package/package.json +2 -2
- package/scripts/test.js +14 -7
- package/tests/backend/fetch.test.ts +14 -14
- package/tests/backend/port.test.ts +25 -17
- package/tests/common/context.test.ts +14 -0
- package/tests/common/handle.test.ts +5 -3
- package/tests/fetch/run.sh +2 -1
- package/tests/fs/scaling.test.ts +32 -0
- package/tests/fs/watch.test.ts +2 -5
- package/tests/setup/single-buffer.ts +1 -1
- package/tests/tsconfig.json +3 -2
- 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 =
|
|
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
|
|
141
|
-
set id(value) {
|
|
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
|
|
144
|
-
set offset_(value) {
|
|
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
|
|
147
|
-
set offset(value) {
|
|
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
|
|
150
|
-
set size(value) {
|
|
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 =
|
|
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
|
|
228
|
-
set checksum(value) {
|
|
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
|
|
231
|
-
set timestamp(value) {
|
|
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
|
|
234
|
-
set previous_offset(value) {
|
|
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
|
-
|
|
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
|
|
247
|
-
set items(value) {
|
|
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
|
|
270
|
-
set locked(value) {
|
|
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 =
|
|
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 =
|
|
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
|
|
442
|
-
set checksum(value) {
|
|
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
|
|
445
|
-
set magic(value) {
|
|
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
|
|
448
|
-
set version(value) {
|
|
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
|
|
451
|
-
set inode_format(value) {
|
|
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
|
|
454
|
-
set flags(value) {
|
|
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
|
|
457
|
-
set used_bytes(value) {
|
|
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
|
|
460
|
-
set total_bytes(value) {
|
|
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
|
|
463
|
-
set uuid(value) {
|
|
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
|
|
469
|
-
set metadata_block_size(value) {
|
|
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
|
|
472
|
-
set metadata_offset_(value) {
|
|
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
|
|
475
|
-
set metadata_offset(value) {
|
|
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
|
|
478
|
-
set label(value) {
|
|
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
|
|
481
|
-
set _padding(value) {
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
688
|
+
fs?.attributes.set('no_id_tables', true);
|
|
715
689
|
this._fs = fs;
|
|
716
690
|
}
|
|
717
691
|
sync() {
|