@dxos/random-access-storage 0.4.10-main.d9dc7ae → 0.4.10-main.e2d2318

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.
@@ -1,287 +1,19 @@
1
1
  import "@dxos/node-std/globals";
2
- import import$random_access_storage from 'random-access-storage';
3
- import import$inherits from 'inherits';
4
- import import$next_tick from 'next-tick';
5
- import import$once from 'once';
6
- import import$buffer_from from 'buffer-from';
7
- import import$buffer_alloc from 'buffer-alloc';
8
- var __create = Object.create;
9
- var __defProp = Object.defineProperty;
10
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
- var __getOwnPropNames = Object.getOwnPropertyNames;
12
- var __getProtoOf = Object.getPrototypeOf;
13
- var __hasOwnProp = Object.prototype.hasOwnProperty;
14
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
15
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
16
- }) : x)(function(x) {
17
- if (typeof require !== "undefined")
18
- return require.apply(this, arguments);
19
- throw Error('Dynamic require of "' + x + '" is not supported');
20
- });
21
- var __esm = (fn, res) => function __init() {
22
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
23
- };
24
- var __commonJS = (cb, mod) => function __require2() {
25
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
26
- };
27
- var __copyProps = (to, from, except, desc) => {
28
- if (from && typeof from === "object" || typeof from === "function") {
29
- for (let key of __getOwnPropNames(from))
30
- if (!__hasOwnProp.call(to, key) && key !== except)
31
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
32
- }
33
- return to;
34
- };
35
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
36
- // If the importer is in node compatibility mode or this is not an ESM
37
- // file that has been converted to a CommonJS file using a Babel-
38
- // compatible transform (i.e. "__esModule" has not been set), then set
39
- // "default" to the CommonJS "module.exports" for node compatibility.
40
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
41
- mod
42
- ));
43
2
 
44
3
  // inject-globals:@inject-globals
45
4
  import {
46
5
  global,
47
- Buffer as Buffer2,
6
+ Buffer,
48
7
  process
49
8
  } from "@dxos/node-std/inject-globals";
50
- var init_inject_globals = __esm({
51
- "inject-globals:@inject-globals"() {
52
- }
53
- });
54
-
55
- // node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=mqfhtwnltd5kq5s4kb4gk7k2k4/node_modules/random-access-idb/lib/blocks.js
56
- var require_blocks = __commonJS({
57
- "node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=mqfhtwnltd5kq5s4kb4gk7k2k4/node_modules/random-access-idb/lib/blocks.js"(exports, module) {
58
- init_inject_globals();
59
- module.exports = function(size, start, end) {
60
- var result = [];
61
- for (var n = Math.floor(start / size) * size; n < end; n += size) {
62
- result.push({
63
- block: Math.floor(n / size),
64
- start: Math.max(n, start) % size,
65
- end: Math.min(n + size, end) % size || size
66
- });
67
- }
68
- return result;
69
- };
70
- }
71
- });
72
-
73
- // node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=mqfhtwnltd5kq5s4kb4gk7k2k4/node_modules/random-access-idb/index.js
74
- var require_random_access_idb = __commonJS({
75
- "node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=mqfhtwnltd5kq5s4kb4gk7k2k4/node_modules/random-access-idb/index.js"(exports, module) {
76
- init_inject_globals();
77
- var RandomAccess = import$random_access_storage;
78
- var inherits = import$inherits;
79
- var nextTick = import$next_tick;
80
- var once = import$once;
81
- var blocks = require_blocks();
82
- var bufferFrom = import$buffer_from;
83
- var bufferAlloc = import$buffer_alloc;
84
- var DELIM2 = "\0";
85
- var win = typeof window !== "undefined" ? window : typeof self !== "undefined" ? self : {};
86
- module.exports = function(dbname, xopts) {
87
- if (!xopts)
88
- xopts = {};
89
- var idb2 = xopts.idb || (typeof win !== "undefined" ? win.indexedDB || win.mozIndexedDB || win.webkitIndexedDB || win.msIndexedDB : null);
90
- if (!idb2)
91
- throw new Error("indexedDB not present and not given");
92
- var db = null, dbqueue = [];
93
- if (typeof idb2.open === "function") {
94
- var req = idb2.open(dbname);
95
- req.addEventListener("upgradeneeded", function() {
96
- db = req.result;
97
- db.createObjectStore("data");
98
- });
99
- req.addEventListener("success", function() {
100
- db = req.result;
101
- dbqueue.forEach(function(cb) {
102
- cb(db);
103
- });
104
- dbqueue = null;
105
- });
106
- } else {
107
- db = idb2;
108
- }
109
- function getdb(cb) {
110
- if (db)
111
- nextTick(function() {
112
- cb(db);
113
- });
114
- else
115
- dbqueue.push(cb);
116
- }
117
- return {
118
- create: function(name, opts) {
119
- if (typeof name === "object") {
120
- opts = name;
121
- name = opts.name;
122
- }
123
- if (!opts)
124
- opts = {};
125
- opts.name = name;
126
- return new Store(Object.assign({ db: getdb }, xopts, opts));
127
- },
128
- getdb
129
- };
130
- };
131
- function Store(opts) {
132
- if (!(this instanceof Store))
133
- return new Store(opts);
134
- RandomAccess.call(this);
135
- if (!opts)
136
- opts = {};
137
- if (typeof opts === "string")
138
- opts = { name: opts };
139
- this.size = opts.size || 4096;
140
- this.name = opts.name;
141
- this.length = opts.length || 0;
142
- this._getdb = opts.db;
143
- }
144
- inherits(Store, RandomAccess);
145
- Store.prototype._blocks = function(i, j) {
146
- return blocks(this.size, i, j);
147
- };
148
- Store.prototype._read = function(req) {
149
- var self2 = this;
150
- var buffers = [];
151
- self2._store("readonly", function(err, store) {
152
- if ((self2.length || 0) < req.offset + req.size) {
153
- return req.callback(new Error("Could not satisfy length"));
154
- }
155
- if (err)
156
- return req.callback(err);
157
- var offsets = self2._blocks(req.offset, req.offset + req.size);
158
- var pending = offsets.length + 1;
159
- var firstBlock = offsets.length > 0 ? offsets[0].block : 0;
160
- var j = 0;
161
- for (var i = 0; i < offsets.length; i++)
162
- (function(o) {
163
- var key = self2.name + DELIM2 + o.block;
164
- backify(store.get(key), function(err2, ev) {
165
- if (err2)
166
- return req.callback(err2);
167
- buffers[o.block - firstBlock] = ev.target.result ? bufferFrom(ev.target.result.subarray(o.start, o.end)) : bufferAlloc(o.end - o.start);
168
- if (--pending === 0)
169
- req.callback(null, Buffer2.concat(buffers));
170
- });
171
- })(offsets[i]);
172
- if (--pending === 0)
173
- req.callback(null, Buffer2.concat(buffers));
174
- });
175
- };
176
- Store.prototype._write = function(req) {
177
- var self2 = this;
178
- self2._store("readwrite", function(err, store) {
179
- if (err)
180
- return req.callback(err);
181
- var offsets = self2._blocks(req.offset, req.offset + req.data.length);
182
- var pending = 1;
183
- var buffers = {};
184
- for (var i = 0; i < offsets.length; i++)
185
- (function(o, i2) {
186
- if (o.end - o.start === self2.size)
187
- return;
188
- pending++;
189
- var key = self2.name + DELIM2 + o.block;
190
- backify(store.get(key), function(err2, ev) {
191
- if (err2)
192
- return req.callback(err2);
193
- buffers[i2] = bufferFrom(ev.target.result || bufferAlloc(self2.size));
194
- if (--pending === 0)
195
- write(store, offsets, buffers);
196
- });
197
- })(offsets[i], i);
198
- if (--pending === 0)
199
- write(store, offsets, buffers);
200
- });
201
- function write(store, offsets, buffers) {
202
- var block;
203
- for (var i = 0, j = 0; i < offsets.length; i++) {
204
- var o = offsets[i];
205
- var len = o.end - o.start;
206
- if (len === self2.size) {
207
- block = bufferFrom(req.data.slice(j, j + len));
208
- } else {
209
- block = buffers[i];
210
- req.data.copy(block, o.start, j, j + len);
211
- }
212
- store.put(block, self2.name + DELIM2 + o.block);
213
- j += len;
214
- }
215
- var length = Math.max(self2.length || 0, req.offset + req.data.length);
216
- store.put(length, self2.name + DELIM2 + "length");
217
- store.transaction.addEventListener("complete", function() {
218
- self2.length = length;
219
- req.callback(null);
220
- });
221
- store.transaction.addEventListener("error", function(err) {
222
- req.callback(err);
223
- });
224
- }
225
- };
226
- Store.prototype._store = function(mode, cb) {
227
- cb = once(cb);
228
- var self2 = this;
229
- self2._getdb(function(db) {
230
- var tx = db.transaction(["data"], mode);
231
- var store = tx.objectStore("data");
232
- tx.addEventListener("error", cb);
233
- cb(null, store);
234
- });
235
- };
236
- Store.prototype._open = function(req) {
237
- var self2 = this;
238
- this._getdb(function(db) {
239
- self2._store("readonly", function(err, store) {
240
- backify(store.get(self2.name + DELIM2 + "length"), function(err2, ev) {
241
- self2.length = ev.target.result || 0;
242
- req.callback(null);
243
- });
244
- });
245
- });
246
- };
247
- Store.prototype._close = function(req) {
248
- this._getdb(function(db) {
249
- req.callback();
250
- });
251
- };
252
- Store.prototype._stat = function(req) {
253
- var self2 = this;
254
- nextTick(function() {
255
- req.callback(null, { size: self2.length });
256
- });
257
- };
258
- function backify(r, cb) {
259
- r.addEventListener("success", function(ev) {
260
- cb(null, ev);
261
- });
262
- r.addEventListener("error", cb);
263
- }
264
- }
265
- });
266
-
267
- // packages/common/random-access-storage/src/browser/index.ts
268
- init_inject_globals();
269
-
270
- // packages/common/random-access-storage/src/common/index.ts
271
- init_inject_globals();
272
9
 
273
10
  // packages/common/random-access-storage/src/common/abstract-storage.ts
274
- init_inject_globals();
275
11
  import { join as join2 } from "@dxos/node-std/path";
276
12
  import { inspect } from "@dxos/node-std/util";
277
13
  import { inspectObject } from "@dxos/debug";
278
14
  import { log as log2 } from "@dxos/log";
279
15
 
280
- // packages/common/random-access-storage/src/common/directory.ts
281
- init_inject_globals();
282
-
283
16
  // packages/common/random-access-storage/src/common/utils.ts
284
- init_inject_globals();
285
17
  import { join } from "@dxos/node-std/path";
286
18
  var stringDiff = (first, second) => first.split(second).join("");
287
19
  var getFullPath = (root, path) => join(root, stringDiff(path, root));
@@ -338,7 +70,6 @@ var Directory = class _Directory {
338
70
  };
339
71
 
340
72
  // packages/common/random-access-storage/src/common/file.ts
341
- init_inject_globals();
342
73
  import pify from "pify";
343
74
  import { log } from "@dxos/log";
344
75
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/random-access-storage/src/common/file.ts";
@@ -423,7 +154,7 @@ var AbstractStorage = class {
423
154
  try {
424
155
  log2.info("Erasing all data...", void 0, {
425
156
  F: __dxlog_file2,
426
- L: 59,
157
+ L: 60,
427
158
  S: this,
428
159
  C: (f, a) => f(...a)
429
160
  });
@@ -432,14 +163,14 @@ var AbstractStorage = class {
432
163
  await this._destroy();
433
164
  log2("Erased...", void 0, {
434
165
  F: __dxlog_file2,
435
- L: 63,
166
+ L: 64,
436
167
  S: this,
437
168
  C: (f, a) => f(...a)
438
169
  });
439
170
  } catch (err) {
440
171
  log2.catch(err, void 0, {
441
172
  F: __dxlog_file2,
442
- L: 65,
173
+ L: 66,
443
174
  S: this,
444
175
  C: (f, a) => f(...a)
445
176
  });
@@ -497,7 +228,7 @@ var AbstractStorage = class {
497
228
  async _closeFilesInPath(path) {
498
229
  await Promise.all(Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err) => log2.catch(err, void 0, {
499
230
  F: __dxlog_file2,
500
- L: 133,
231
+ L: 134,
501
232
  S: this,
502
233
  C: (f, a) => f(...a)
503
234
  }))));
@@ -510,7 +241,7 @@ var AbstractStorage = class {
510
241
  await Promise.all(Array.from(await this._getFiles(path)).map(([path2, file]) => {
511
242
  return file.destroy().then(() => this._files.delete(path2)).catch((err) => log2.error(err.message, void 0, {
512
243
  F: __dxlog_file2,
513
- L: 148,
244
+ L: 149,
514
245
  S: this,
515
246
  C: (f, a) => f(...a)
516
247
  }));
@@ -519,12 +250,10 @@ var AbstractStorage = class {
519
250
  };
520
251
 
521
252
  // packages/common/random-access-storage/src/common/memory-storage.ts
522
- init_inject_globals();
523
253
  import ram from "random-access-memory";
524
254
  import { arrayToBuffer } from "@dxos/util";
525
255
 
526
256
  // packages/common/random-access-storage/src/common/storage.ts
527
- init_inject_globals();
528
257
  var StorageType;
529
258
  (function(StorageType2) {
530
259
  StorageType2["RAM"] = "ram";
@@ -572,71 +301,21 @@ var MemoryStorage = class extends AbstractStorage {
572
301
  }
573
302
  };
574
303
 
575
- // packages/common/random-access-storage/src/browser/storage.ts
576
- init_inject_globals();
577
-
578
- // packages/common/random-access-storage/src/browser/firefox-storage.ts
579
- init_inject_globals();
580
- import raw from "random-access-web/mutable-file-wrapper.js";
581
-
582
- // packages/common/random-access-storage/src/browser/browser-storage.ts
583
- init_inject_globals();
584
- var BrowserStorage = class extends AbstractStorage {
585
- constructor(path) {
586
- super(path);
587
- this._fileStorage = this._createFileStorage(path);
588
- }
589
- _createFile(path, filename) {
590
- const fullPath = getFullPath(path, filename);
591
- return this._fileStorage(fullPath);
592
- }
593
- async _destroy() {
594
- return new Promise((resolve, reject) => {
595
- const request = indexedDB.deleteDatabase(this.path);
596
- request.onsuccess = () => {
597
- resolve();
598
- };
599
- request.onupgradeneeded = () => {
600
- reject(new Error("Upgrade needed."));
601
- };
602
- request.onblocked = () => {
603
- reject(new Error("Blocked."));
604
- };
605
- request.onerror = (err) => {
606
- reject(err);
607
- };
608
- });
609
- }
610
- };
611
-
612
- // packages/common/random-access-storage/src/browser/firefox-storage.ts
613
- var FirefoxStorage = class extends BrowserStorage {
614
- constructor() {
615
- super(...arguments);
616
- this.type = StorageType.FIREFOX;
617
- }
618
- _createFileStorage(path) {
619
- return raw({
620
- name: path
621
- });
622
- }
623
- };
624
-
625
304
  // packages/common/random-access-storage/src/browser/idb-storage.ts
626
- init_inject_globals();
627
- var import_random_access_idb = __toESM(require_random_access_idb());
305
+ import idb from "random-access-idb";
628
306
  import { invariant } from "@dxos/invariant";
629
307
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/random-access-storage/src/browser/idb-storage.ts";
630
308
  var DELIM = "\0";
631
- var IDbStorage = class extends BrowserStorage {
632
- constructor() {
633
- super(...arguments);
309
+ var IDbStorage = class extends AbstractStorage {
310
+ constructor(path) {
311
+ super(path);
634
312
  this.type = StorageType.IDB;
635
313
  this._store = "data";
636
314
  this._initialized = false;
315
+ this._fileStorage = this._createFileStorage(path);
637
316
  }
638
317
  _createFileStorage(path) {
639
- const database = (0, import_random_access_idb.default)(path);
318
+ const database = idb(path);
640
319
  let res;
641
320
  this._db = new Promise((resolve) => {
642
321
  res = resolve;
@@ -644,6 +323,16 @@ var IDbStorage = class extends BrowserStorage {
644
323
  database.getdb(res);
645
324
  return database.create;
646
325
  }
326
+ async close() {
327
+ await this._closeFilesInPath("");
328
+ }
329
+ async reset() {
330
+ await this._closeFilesInPath("");
331
+ await this._remove("");
332
+ }
333
+ async _destroy() {
334
+ throw new Error("Unreachable");
335
+ }
647
336
  _createFile(path, filename) {
648
337
  const file = this._fileStorage(getFullPath(path, filename));
649
338
  file.destroy = (cb) => {
@@ -670,7 +359,7 @@ var IDbStorage = class extends BrowserStorage {
670
359
  const db = await this._db;
671
360
  invariant(db, "Database is not initialized.", {
672
361
  F: __dxlog_file3,
673
- L: 63,
362
+ L: 85,
674
363
  S: this,
675
364
  A: [
676
365
  "db",
@@ -712,7 +401,6 @@ var IDbStorage = class extends BrowserStorage {
712
401
  };
713
402
 
714
403
  // packages/common/random-access-storage/src/browser/web-fs.ts
715
- init_inject_globals();
716
404
  import { EventEmitter } from "@dxos/node-std/events";
717
405
  import { callbackify } from "@dxos/node-std/util";
718
406
  import { synchronized } from "@dxos/async";
@@ -1027,7 +715,7 @@ var WebFile = class extends EventEmitter {
1027
715
  if (offset + size > this._buffer.length) {
1028
716
  throw new Error("Read out of bounds");
1029
717
  }
1030
- return Buffer2.from(this._buffer.slice(offset, offset + size));
718
+ return Buffer.from(this._buffer.slice(offset, offset + size));
1031
719
  }
1032
720
  async write(offset, data) {
1033
721
  this.assertNotDestroyed("Write");
@@ -1191,7 +879,7 @@ var createStorage = ({ type, root = "" } = {}) => {
1191
879
  return new IDbStorage(root);
1192
880
  }
1193
881
  case StorageType.FIREFOX: {
1194
- return new FirefoxStorage(root);
882
+ throw new Error("Firefox storage is no longer supported.");
1195
883
  }
1196
884
  case StorageType.WEBFS: {
1197
885
  return new WebFS(root);