@activeledger/activestorage 4.5.10 → 4.5.11

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 (114) hide show
  1. package/package.json +6 -7
  2. package/LICENSE +0 -20
  3. package/es/cache.d.ts +0 -18
  4. package/es/cache.d.ts.map +0 -1
  5. package/es/cache.js +0 -57
  6. package/es/cache.js.map +0 -1
  7. package/es/datastore.d.ts +0 -11
  8. package/es/datastore.d.ts.map +0 -1
  9. package/es/datastore.js +0 -66
  10. package/es/datastore.js.map +0 -1
  11. package/es/driver.d.ts +0 -16
  12. package/es/driver.d.ts.map +0 -1
  13. package/es/driver.js +0 -2
  14. package/es/driver.js.map +0 -1
  15. package/es/drivers/leveldb.d.ts +0 -21
  16. package/es/drivers/leveldb.d.ts.map +0 -1
  17. package/es/drivers/leveldb.js +0 -121
  18. package/es/drivers/leveldb.js.map +0 -1
  19. package/es/drivers/rocksdb.d.ts +0 -21
  20. package/es/drivers/rocksdb.d.ts.map +0 -1
  21. package/es/drivers/rocksdb.js +0 -98
  22. package/es/drivers/rocksdb.js.map +0 -1
  23. package/es/heartbeat.d.ts +0 -7
  24. package/es/heartbeat.d.ts.map +0 -1
  25. package/es/heartbeat.js +0 -15
  26. package/es/heartbeat.js.map +0 -1
  27. package/es/index.d.ts +0 -3
  28. package/es/index.d.ts.map +0 -1
  29. package/es/index.js +0 -3
  30. package/es/index.js.map +0 -1
  31. package/es/levelme.d.ts +0 -84
  32. package/es/levelme.d.ts.map +0 -1
  33. package/es/levelme.js +0 -488
  34. package/es/levelme.js.map +0 -1
  35. package/es/newlinestream.d.ts +0 -4
  36. package/es/newlinestream.d.ts.map +0 -1
  37. package/es/newlinestream.js +0 -28
  38. package/es/newlinestream.js.map +0 -1
  39. package/es/selfhost.d.ts +0 -2
  40. package/es/selfhost.d.ts.map +0 -1
  41. package/es/selfhost.js +0 -474
  42. package/es/selfhost.js.map +0 -1
  43. package/es/sse.d.ts +0 -10
  44. package/es/sse.d.ts.map +0 -1
  45. package/es/sse.js +0 -41
  46. package/es/sse.js.map +0 -1
  47. package/lib/cache.d.ts +0 -18
  48. package/lib/cache.d.ts.map +0 -1
  49. package/lib/cache.js +0 -62
  50. package/lib/cache.js.map +0 -1
  51. package/lib/datastore.d.ts +0 -11
  52. package/lib/datastore.d.ts.map +0 -1
  53. package/lib/datastore.js +0 -93
  54. package/lib/datastore.js.map +0 -1
  55. package/lib/driver.d.ts +0 -16
  56. package/lib/driver.d.ts.map +0 -1
  57. package/lib/driver.js +0 -3
  58. package/lib/driver.js.map +0 -1
  59. package/lib/drivers/leveldb.d.ts +0 -21
  60. package/lib/drivers/leveldb.d.ts.map +0 -1
  61. package/lib/drivers/leveldb.js +0 -125
  62. package/lib/drivers/leveldb.js.map +0 -1
  63. package/lib/drivers/rocksdb.d.ts +0 -21
  64. package/lib/drivers/rocksdb.d.ts.map +0 -1
  65. package/lib/drivers/rocksdb.js +0 -102
  66. package/lib/drivers/rocksdb.js.map +0 -1
  67. package/lib/fauxton/dashboard.assets/css/styles.d43d3249088a6c04b633.css +0 -33
  68. package/lib/fauxton/dashboard.assets/fonts/fauxtonicon5.eot +0 -0
  69. package/lib/fauxton/dashboard.assets/fonts/fauxtonicon5.ttf +0 -0
  70. package/lib/fauxton/dashboard.assets/fonts/fauxtonicon5.woff +0 -0
  71. package/lib/fauxton/dashboard.assets/fonts/fontawesome-webfont.eot +0 -0
  72. package/lib/fauxton/dashboard.assets/fonts/fontawesome-webfont.ttf +0 -0
  73. package/lib/fauxton/dashboard.assets/fonts/fontawesome-webfont.woff +0 -0
  74. package/lib/fauxton/dashboard.assets/img/activeledger-logo.png +0 -0
  75. package/lib/fauxton/dashboard.assets/img/activeledger.png +0 -0
  76. package/lib/fauxton/dashboard.assets/img/asf-feather-logo.png +0 -0
  77. package/lib/fauxton/dashboard.assets/img/couch-watermark.png +0 -0
  78. package/lib/fauxton/dashboard.assets/img/couchdb-logo.png +0 -0
  79. package/lib/fauxton/dashboard.assets/img/fauxtonicon5.svg +0 -729
  80. package/lib/fauxton/dashboard.assets/img/fontawesome-webfont.svg +0 -399
  81. package/lib/fauxton/dashboard.assets/img/github.png +0 -0
  82. package/lib/fauxton/dashboard.assets/img/googleplus.png +0 -0
  83. package/lib/fauxton/dashboard.assets/img/linkedin.png +0 -0
  84. package/lib/fauxton/dashboard.assets/img/loader.gif +0 -0
  85. package/lib/fauxton/dashboard.assets/img/twitter.png +0 -0
  86. package/lib/fauxton/dashboard.assets/js/bundle.d43d3249088a6c04b633.js +0 -1
  87. package/lib/fauxton/dashboard.assets/js/manifest.a154524a560e5f6f431b.js +0 -1
  88. package/lib/fauxton/dashboard.assets/js/vendor.156793045cdeb7c63707.js +0 -96
  89. package/lib/fauxton/index.html +0 -52
  90. package/lib/heartbeat.d.ts +0 -7
  91. package/lib/heartbeat.d.ts.map +0 -1
  92. package/lib/heartbeat.js +0 -19
  93. package/lib/heartbeat.js.map +0 -1
  94. package/lib/index.d.ts +0 -3
  95. package/lib/index.d.ts.map +0 -1
  96. package/lib/index.js +0 -6
  97. package/lib/index.js.map +0 -1
  98. package/lib/levelme.d.ts +0 -84
  99. package/lib/levelme.d.ts.map +0 -1
  100. package/lib/levelme.js +0 -515
  101. package/lib/levelme.js.map +0 -1
  102. package/lib/newlinestream.d.ts +0 -4
  103. package/lib/newlinestream.d.ts.map +0 -1
  104. package/lib/newlinestream.js +0 -32
  105. package/lib/newlinestream.js.map +0 -1
  106. package/lib/selfhost.d.ts +0 -2
  107. package/lib/selfhost.d.ts.map +0 -1
  108. package/lib/selfhost.js +0 -499
  109. package/lib/selfhost.js.map +0 -1
  110. package/lib/sse.d.ts +0 -10
  111. package/lib/sse.d.ts.map +0 -1
  112. package/lib/sse.js +0 -45
  113. package/lib/sse.js.map +0 -1
  114. package/tsconfig.tsbuildinfo +0 -1
@@ -1,11 +0,0 @@
1
- export declare class ActiveDataStore {
2
- isShuttingDown: boolean;
3
- private dsLocation;
4
- private process;
5
- private restartCounter;
6
- private lastRestart;
7
- constructor();
8
- launch(): string;
9
- private storePid;
10
- }
11
- //# sourceMappingURL=datastore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datastore.d.ts","sourceRoot":"","sources":["../src/datastore.ts"],"names":[],"mappings":"AAyCA,qBAAa,eAAe;IAEnB,cAAc,UAAS;IAQ9B,OAAO,CAAC,UAAU,CAAS;IAQ3B,OAAO,CAAC,OAAO,CAAqB;IAQpC,OAAO,CAAC,cAAc,CAAK;IAU3B,OAAO,CAAC,WAAW,CAAsB;;IA2BlC,MAAM,IAAI,MAAM;YA6DT,QAAQ;CAqBvB"}
package/lib/datastore.js DELETED
@@ -1,93 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ActiveDataStore = void 0;
27
- const fs = __importStar(require("fs"));
28
- const fs_1 = require("fs");
29
- const child = __importStar(require("child_process"));
30
- const activeoptions_1 = require("@activeledger/activeoptions");
31
- const activelogger_1 = require("@activeledger/activelogger");
32
- const MAX_RESTARTS = 5;
33
- const MAX_RESTART_RESET_HOURS = 24;
34
- class ActiveDataStore {
35
- isShuttingDown = false;
36
- dsLocation;
37
- process;
38
- restartCounter = 0;
39
- lastRestart = Date.now();
40
- constructor() {
41
- this.dsLocation = activeoptions_1.ActiveOptions.get("db", {}).selfhost.dir || "./.ds";
42
- if (!fs.existsSync(this.dsLocation)) {
43
- fs.mkdirSync(this.dsLocation);
44
- }
45
- activelogger_1.ActiveLogger.info("Self-hosted data engine @ http://127.0.0.1:" +
46
- activeoptions_1.ActiveOptions.get("db", {}).selfhost.port);
47
- }
48
- launch() {
49
- const dbInfo = activeoptions_1.ActiveOptions.get("db", {});
50
- this.process = child.spawn("node", [
51
- __dirname + "/selfhost.js",
52
- this.dsLocation,
53
- `${dbInfo.selfhost.port}`,
54
- `${dbInfo.selfhost.engine || "level"}`,
55
- ], {
56
- stdio: "inherit",
57
- });
58
- activelogger_1.ActiveLogger.info(`Self-hosted data engine (${dbInfo.selfhost.engine || "level"}) : Starting Up (${this.process.pid})`);
59
- this.storePid(this.process.pid || 0);
60
- this.process.on("exit", (code, signal) => {
61
- activelogger_1.ActiveLogger.error(`Self-hosted data engine has shutdown (${code} : ${signal || "No Signal"})`);
62
- if (!this.isShuttingDown &&
63
- signal !== "SIGTERM" &&
64
- MAX_RESTARTS >= this.restartCounter) {
65
- this.restartCounter++;
66
- this.launch();
67
- if (Date.now() >
68
- this.lastRestart + MAX_RESTART_RESET_HOURS * 60 * 60 * 1000) {
69
- this.restartCounter = 0;
70
- }
71
- }
72
- else {
73
- activelogger_1.ActiveLogger.error("Not attempting to restart either due to signal or counters reached");
74
- }
75
- });
76
- return "http://127.0.0.1:" + activeoptions_1.ActiveOptions.get("db", {}).selfhost.port;
77
- }
78
- async storePid(pid) {
79
- const pidPath = ".PID";
80
- let pidData;
81
- try {
82
- pidData = JSON.parse((await fs_1.promises.readFile(pidPath)).toString());
83
- pidData.activestorage = pid;
84
- await fs_1.promises.writeFile(pidPath, JSON.stringify(pidData));
85
- }
86
- catch (error) {
87
- activelogger_1.ActiveLogger.warn("Error storing PID, activeledger --stop may not work correctly");
88
- activelogger_1.ActiveLogger.warn(error.message);
89
- }
90
- }
91
- }
92
- exports.ActiveDataStore = ActiveDataStore;
93
- //# sourceMappingURL=datastore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datastore.js","sourceRoot":"","sources":["../src/datastore.ts"],"names":[],"mappings":"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"}
package/lib/driver.d.ts DELETED
@@ -1,16 +0,0 @@
1
- /// <reference types="node" />
2
- import { LevelUpChain } from "levelup";
3
- export interface IStorageDriver {
4
- get(key: string): Promise<Buffer>;
5
- getMany(keys: string[]): Promise<Buffer[]>;
6
- put(key: string, value: any): Promise<void>;
7
- del(key: string): Promise<void>;
8
- batch(): Promise<LevelUpChain<any, any>>;
9
- createReadStream(options: any): any;
10
- createValueStream(): any;
11
- isOpen(): boolean;
12
- open(): Promise<void>;
13
- close(): Promise<void>;
14
- compactRange?(start: string, end: string): Promise<void>;
15
- }
16
- //# sourceMappingURL=driver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC;IACpC,iBAAiB,IAAI,GAAG,CAAC;IACzB,MAAM,IAAI,OAAO,CAAC;IAClB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
package/lib/driver.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=driver.js.map
package/lib/driver.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../src/driver.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- /// <reference types="node" />
2
- import { IStorageDriver } from "../driver";
3
- import { LevelUpChain } from "levelup";
4
- export declare class LevelDBDriver implements IStorageDriver {
5
- private location;
6
- private db;
7
- private opening;
8
- constructor(location: string, provider: string);
9
- get(key: string): Promise<Buffer>;
10
- getMany(keys: string[]): Promise<Buffer[]>;
11
- put(key: string, value: any): Promise<void>;
12
- del(key: string): Promise<void>;
13
- batch(): Promise<LevelUpChain<any, any>>;
14
- createReadStream(options: any): any;
15
- createValueStream(): any;
16
- isOpen(): boolean;
17
- open(): Promise<void>;
18
- close(): Promise<void>;
19
- compactRange(start: string, end: string): Promise<void>;
20
- }
21
- //# sourceMappingURL=leveldb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leveldb.d.ts","sourceRoot":"","sources":["../../src/drivers/leveldb.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKvC,qBAAa,aAAc,YAAW,cAAc;IAItC,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,OAAO,CAAkB;gBAEb,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAejC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/B,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAO9C,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;IA8BnC,iBAAiB,IAAI,GAAG;IA0BxB,MAAM,IAAI,OAAO;IAIX,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKrE"}
@@ -1,125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LevelDBDriver = void 0;
4
- const fs_1 = require("fs");
5
- const classic_level_1 = require("classic-level");
6
- const stream_1 = require("stream");
7
- class LevelDBDriver {
8
- location;
9
- db = null;
10
- opening = false;
11
- constructor(location, provider) {
12
- this.location = location;
13
- (0, fs_1.mkdirSync)(location, { recursive: true });
14
- }
15
- async get(key) {
16
- const val = await this.db.get(key);
17
- if (val === undefined) {
18
- const err = new Error(`Key not found in database [${key}]`);
19
- err.notFound = true;
20
- err.code = "LEVEL_NOT_FOUND";
21
- throw err;
22
- }
23
- return Buffer.isBuffer(val) ? val : Buffer.from(val);
24
- }
25
- async getMany(keys) {
26
- const vals = await this.db.getMany(keys);
27
- return vals
28
- .filter((v) => v !== undefined)
29
- .map((v) => Buffer.isBuffer(v) ? v : Buffer.from(v));
30
- }
31
- async put(key, value) {
32
- await this.db.put(key, value);
33
- }
34
- async del(key) {
35
- await this.db.del(key);
36
- }
37
- async batch() {
38
- if (!this.db || this.db.status !== 'open') {
39
- await this.open();
40
- }
41
- return this.db.batch();
42
- }
43
- createReadStream(options) {
44
- const iterator = this.db.iterator(options);
45
- return new stream_1.Readable({
46
- objectMode: true,
47
- async read() {
48
- try {
49
- const entry = await iterator.next();
50
- if (entry) {
51
- const val = entry[1];
52
- this.push({ key: entry[0], value: Buffer.isBuffer(val) ? val : Buffer.from(val) });
53
- }
54
- else {
55
- this.push(null);
56
- await iterator.close();
57
- }
58
- }
59
- catch (err) {
60
- this.emit("error", err);
61
- this.push(null);
62
- }
63
- },
64
- async destroy(err, callback) {
65
- await iterator.close();
66
- callback(err);
67
- }
68
- });
69
- }
70
- createValueStream() {
71
- const iterator = this.db.values();
72
- return new stream_1.Readable({
73
- objectMode: true,
74
- async read() {
75
- try {
76
- const val = await iterator.next();
77
- if (val !== undefined) {
78
- this.push(Buffer.isBuffer(val) ? val : Buffer.from(val));
79
- }
80
- else {
81
- this.push(null);
82
- await iterator.close();
83
- }
84
- }
85
- catch (err) {
86
- this.emit("error", err);
87
- this.push(null);
88
- }
89
- },
90
- async destroy(err, callback) {
91
- await iterator.close();
92
- callback(err);
93
- }
94
- });
95
- }
96
- isOpen() {
97
- return this.db?.status === 'open';
98
- }
99
- async open() {
100
- if (this.db?.status !== 'open' && !this.opening) {
101
- this.opening = true;
102
- try {
103
- this.db = new classic_level_1.ClassicLevel(this.location, { valueEncoding: 'binary' });
104
- await this.db.open();
105
- }
106
- catch (e) {
107
- this.db = null;
108
- throw e;
109
- }
110
- finally {
111
- this.opening = false;
112
- }
113
- }
114
- }
115
- async close() {
116
- await this.db.close();
117
- }
118
- async compactRange(start, end) {
119
- if (typeof this.db.compactRange === 'function') {
120
- await this.db.compactRange(start, end);
121
- }
122
- }
123
- }
124
- exports.LevelDBDriver = LevelDBDriver;
125
- //# sourceMappingURL=leveldb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leveldb.js","sourceRoot":"","sources":["../../src/drivers/leveldb.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /// <reference types="node" />
2
- import { IStorageDriver } from "../driver";
3
- import { LevelUpChain } from "levelup";
4
- export declare class RocksDBDriver implements IStorageDriver {
5
- private location;
6
- private db;
7
- private opening;
8
- constructor(location: string, provider: string);
9
- get(key: string): Promise<Buffer>;
10
- getMany(keys: string[]): Promise<Buffer[]>;
11
- put(key: string, value: any): Promise<void>;
12
- del(key: string): Promise<void>;
13
- batch(): Promise<LevelUpChain<any, any>>;
14
- createReadStream(options: any): any;
15
- createValueStream(): any;
16
- isOpen(): boolean;
17
- open(): Promise<void>;
18
- close(): Promise<void>;
19
- compactRange(start: string, end: string): Promise<void>;
20
- }
21
- //# sourceMappingURL=rocksdb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rocksdb.d.ts","sourceRoot":"","sources":["../../src/drivers/rocksdb.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC,qBAAa,aAAc,YAAW,cAAc;IAItC,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,OAAO,CAAkB;gBAEb,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAejC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/B,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAO9C,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG;IA4BnC,iBAAiB,IAAI,GAAG;IAIxB,MAAM,IAAI,OAAO;IAIX,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOrE"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RocksDBDriver = void 0;
4
- const fs_1 = require("fs");
5
- const { RocksLevel } = require("@nxtedition/rocksdb");
6
- class RocksDBDriver {
7
- location;
8
- db = null;
9
- opening = false;
10
- constructor(location, provider) {
11
- this.location = location;
12
- (0, fs_1.mkdirSync)(location, { recursive: true });
13
- }
14
- async get(key) {
15
- const val = await this.db.get(key);
16
- if (val === undefined) {
17
- const err = new Error(`Key not found in database [${key}]`);
18
- err.notFound = true;
19
- err.code = "LEVEL_NOT_FOUND";
20
- throw err;
21
- }
22
- return Buffer.isBuffer(val) ? val : Buffer.from(val);
23
- }
24
- async getMany(keys) {
25
- const vals = await this.db.getMany(keys);
26
- return vals
27
- .filter((v) => v !== undefined)
28
- .map((v) => Buffer.isBuffer(v) ? v : Buffer.from(v));
29
- }
30
- async put(key, value) {
31
- await this.db.put(key, value);
32
- }
33
- async del(key) {
34
- await this.db.del(key);
35
- }
36
- async batch() {
37
- if (!this.db || this.db.status !== 'open') {
38
- await this.open();
39
- }
40
- return this.db.batch();
41
- }
42
- createReadStream(options) {
43
- const iterator = this.db.iterator(options);
44
- const { Readable } = require("stream");
45
- return new Readable({
46
- objectMode: true,
47
- async read() {
48
- try {
49
- const entry = await iterator.next();
50
- if (entry) {
51
- const val = entry[1];
52
- this.push({ key: entry[0], value: Buffer.isBuffer(val) ? val : Buffer.from(val) });
53
- }
54
- else {
55
- this.push(null);
56
- await iterator.close();
57
- }
58
- }
59
- catch (err) {
60
- this.emit("error", err);
61
- this.push(null);
62
- }
63
- },
64
- async destroy(err, callback) {
65
- await iterator.close();
66
- callback(err);
67
- }
68
- });
69
- }
70
- createValueStream() {
71
- return this.db.values();
72
- }
73
- isOpen() {
74
- return this.db?.status === 'open';
75
- }
76
- async open() {
77
- if (this.db?.status !== 'open' && !this.opening) {
78
- this.opening = true;
79
- try {
80
- this.db = new RocksLevel(this.location, { valueEncoding: 'binary' });
81
- await this.db.open();
82
- }
83
- catch (e) {
84
- this.db = null;
85
- throw e;
86
- }
87
- finally {
88
- this.opening = false;
89
- }
90
- }
91
- }
92
- async close() {
93
- await this.db.close();
94
- }
95
- async compactRange(start, end) {
96
- if (typeof this.db.compactRange === 'function') {
97
- await this.db.compactRange(start, end);
98
- }
99
- }
100
- }
101
- exports.RocksDBDriver = RocksDBDriver;
102
- //# sourceMappingURL=rocksdb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rocksdb.js","sourceRoot":"","sources":["../../src/drivers/rocksdb.ts"],"names":[],"mappings":"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"}