@peerbit/any-store-interface 1.0.0-55cebfe → 1.0.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/src/interface.d.ts +19 -0
- package/dist/src/interface.d.ts.map +1 -0
- package/dist/src/interface.js +2 -0
- package/dist/src/interface.js.map +1 -0
- package/dist/src/level.d.ts +17 -0
- package/dist/src/level.d.ts.map +1 -0
- package/dist/src/level.js +112 -0
- package/dist/src/level.js.map +1 -0
- package/dist/src/memory.d.ts +18 -0
- package/dist/src/memory.d.ts.map +1 -0
- package/dist/src/memory.js +63 -0
- package/dist/src/memory.js.map +1 -0
- package/dist/src/opfs-worker-messages.d.ts +123 -0
- package/dist/src/opfs-worker-messages.d.ts.map +1 -0
- package/dist/src/opfs-worker-messages.js +325 -0
- package/dist/src/opfs-worker-messages.js.map +1 -0
- package/dist/src/opfs-worker.d.ts +9 -0
- package/dist/src/opfs-worker.d.ts.map +1 -0
- package/dist/src/opfs-worker.js +277 -0
- package/dist/src/opfs-worker.js.map +1 -0
- package/dist/src/opfs.d.ts +28 -0
- package/dist/src/opfs.d.ts.map +1 -0
- package/dist/src/opfs.js +149 -0
- package/dist/src/opfs.js.map +1 -0
- package/dist/src/store.browser.d.ts +4 -0
- package/dist/src/store.browser.d.ts.map +1 -0
- package/dist/src/store.browser.js +9 -0
- package/dist/src/store.browser.js.map +1 -0
- package/dist/src/store.d.ts +4 -0
- package/dist/src/store.d.ts.map +1 -0
- package/dist/src/store.js +14 -0
- package/dist/src/store.js.map +1 -0
- package/package.json +70 -70
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type MaybePromise<T> = Promise<T> | T;
|
|
2
|
+
export interface AnyStore {
|
|
3
|
+
status(): MaybePromise<"opening" | "open" | "closing" | "closed">;
|
|
4
|
+
close(): MaybePromise<void>;
|
|
5
|
+
open(): MaybePromise<void>;
|
|
6
|
+
get(key: string): MaybePromise<Uint8Array | undefined>;
|
|
7
|
+
put(key: string, value: Uint8Array): MaybePromise<void>;
|
|
8
|
+
del(key: string): MaybePromise<void>;
|
|
9
|
+
sublevel(name: string): MaybePromise<AnyStore>;
|
|
10
|
+
iterator: () => {
|
|
11
|
+
[Symbol.asyncIterator]: () => AsyncIterator<[
|
|
12
|
+
string,
|
|
13
|
+
Uint8Array
|
|
14
|
+
], void, void>;
|
|
15
|
+
};
|
|
16
|
+
clear(): MaybePromise<void>;
|
|
17
|
+
size(): MaybePromise<number>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,QAAQ;IACxB,MAAM,IAAI,YAAY,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IAClE,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,EAAE,MAAM;QACf,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,aAAa,CAC1C;YAAC,MAAM;YAAE,UAAU;SAAC,EACpB,IAAI,EACJ,IAAI,CACJ,CAAC;KACF,CAAC;IACF,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AbstractLevel } from "abstract-level";
|
|
2
|
+
import { type AnyStore } from "./index.js";
|
|
3
|
+
export declare class LevelStore implements AnyStore {
|
|
4
|
+
readonly store: AbstractLevel<any, any, any>;
|
|
5
|
+
constructor(store: AbstractLevel<any, any, any>);
|
|
6
|
+
status(): "opening" | "open" | "closing" | "closed";
|
|
7
|
+
close(): Promise<void>;
|
|
8
|
+
open(): Promise<void>;
|
|
9
|
+
get(key: string): Promise<Uint8Array | undefined>;
|
|
10
|
+
iterator(): AsyncGenerator<[string, Uint8Array], void, void>;
|
|
11
|
+
clear(): Promise<void>;
|
|
12
|
+
put(key: string, value: Uint8Array): Promise<void>;
|
|
13
|
+
del(key: string): Promise<void>;
|
|
14
|
+
size(): Promise<number>;
|
|
15
|
+
sublevel(name: string): Promise<LevelStore>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=level.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level.d.ts","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,qBAAa,UAAW,YAAW,QAAQ;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;gBAAnC,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAExD,MAAM;IAIA,KAAK;IAWL,IAAI;IAWJ,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAehD,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAS7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAUlC,GAAG,CAAC,GAAG,EAAE,MAAM;IAkBf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BvB,QAAQ,CAAC,IAAI,EAAE,MAAM;CAG3B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { AbstractLevel } from "abstract-level";
|
|
2
|
+
import {} from "./interface.js";
|
|
3
|
+
import { ClassicLevel } from "classic-level";
|
|
4
|
+
const isNotFoundError = (err) => err.toString().indexOf("NotFoundError: Key not found in database") === -1 &&
|
|
5
|
+
err.toString().indexOf("NotFound") === -1;
|
|
6
|
+
export class LevelStore {
|
|
7
|
+
store;
|
|
8
|
+
constructor(store) {
|
|
9
|
+
this.store = store;
|
|
10
|
+
}
|
|
11
|
+
status() {
|
|
12
|
+
return this.store.status;
|
|
13
|
+
}
|
|
14
|
+
async close() {
|
|
15
|
+
if (!this.store) {
|
|
16
|
+
return Promise.reject(new Error("No cache store found to close"));
|
|
17
|
+
}
|
|
18
|
+
if (this.status() !== "closed" && this.status() !== "closing") {
|
|
19
|
+
await this.store.close();
|
|
20
|
+
return Promise.resolve();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async open() {
|
|
24
|
+
if (!this.store)
|
|
25
|
+
return Promise.reject(new Error("No cache store found to open"));
|
|
26
|
+
if (this.status() !== "open") {
|
|
27
|
+
await this.store.open();
|
|
28
|
+
return Promise.resolve();
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
await this.store.open({ passive: true });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async get(key) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
this.store.get(key, (err, result) => {
|
|
37
|
+
if (err) {
|
|
38
|
+
// Ignore error if key was not found
|
|
39
|
+
if (isNotFoundError(err)) {
|
|
40
|
+
return reject(err);
|
|
41
|
+
}
|
|
42
|
+
resolve(undefined);
|
|
43
|
+
}
|
|
44
|
+
resolve(result);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
async *iterator() {
|
|
49
|
+
const iterator = this.store.iterator({
|
|
50
|
+
valueEncoding: "view"
|
|
51
|
+
});
|
|
52
|
+
for await (const [key, value] of iterator) {
|
|
53
|
+
yield [key, value];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async clear() {
|
|
57
|
+
await this.store.clear();
|
|
58
|
+
}
|
|
59
|
+
async put(key, value) {
|
|
60
|
+
// Remove when https://github.com/Level/classic-level/issues/87 is fixed
|
|
61
|
+
/* if (this.store instanceof ClassicLevel) {
|
|
62
|
+
await this.store.del(key, { sync: true });
|
|
63
|
+
} */
|
|
64
|
+
return this.store.put(key, value, { valueEncoding: "view" });
|
|
65
|
+
}
|
|
66
|
+
// Remove a value and key from the cache
|
|
67
|
+
async del(key) {
|
|
68
|
+
if (this.store.status !== "open") {
|
|
69
|
+
throw new Error("Cache store not open: " + this.store.status);
|
|
70
|
+
}
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
this.store.del(key, (err) => {
|
|
73
|
+
if (err) {
|
|
74
|
+
// Ignore error if key was not found
|
|
75
|
+
if (isNotFoundError(err)) {
|
|
76
|
+
return reject(err);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
resolve();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
async size() {
|
|
84
|
+
let size = 0;
|
|
85
|
+
if (this.store instanceof ClassicLevel) {
|
|
86
|
+
const e = this.store.keys({
|
|
87
|
+
limit: 1,
|
|
88
|
+
fillCache: !1
|
|
89
|
+
}), a = await e.next();
|
|
90
|
+
await e.close();
|
|
91
|
+
const t = this.store.keys({
|
|
92
|
+
limit: 1,
|
|
93
|
+
reverse: !0,
|
|
94
|
+
fillCache: !1
|
|
95
|
+
}), s = await t.next();
|
|
96
|
+
return (await t.close(),
|
|
97
|
+
this.store.approximateSize(a, s + "\uffff", {
|
|
98
|
+
keyEncoding: "utf8"
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
for await (const v of this.iterator()) {
|
|
103
|
+
size += v[1].length;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return size;
|
|
107
|
+
}
|
|
108
|
+
async sublevel(name) {
|
|
109
|
+
return new LevelStore(this.store.sublevel(name, { valueEncoding: "view" }));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=level.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"level.js","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type AnyStore } from "./index.js";
|
|
2
|
+
export declare class MemoryStore implements AnyStore {
|
|
3
|
+
private store;
|
|
4
|
+
private sublevels;
|
|
5
|
+
private isOpen;
|
|
6
|
+
constructor();
|
|
7
|
+
status(): "open" | "closed";
|
|
8
|
+
close(): void;
|
|
9
|
+
open(): void;
|
|
10
|
+
get(key: string): Uint8Array | undefined;
|
|
11
|
+
iterator(): AsyncGenerator<[string, Uint8Array], void, void>;
|
|
12
|
+
clear(): void;
|
|
13
|
+
put(key: string, value: Uint8Array): void;
|
|
14
|
+
del(key: string): void;
|
|
15
|
+
sublevel(name: string): MemoryStore;
|
|
16
|
+
size(): number;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,WAAY,YAAW,QAAQ;IAC3C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,MAAM,CAAU;;IAMxB,MAAM;IAIN,KAAK;IAOL,IAAI;IAIJ,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIjC,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAMnE,KAAK,IAAI,IAAI;IAOb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,QAAQ,CAAC,IAAI,EAAE,MAAM;IAerB,IAAI;CAOJ"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {} from "./interface.js";
|
|
2
|
+
export class MemoryStore {
|
|
3
|
+
store;
|
|
4
|
+
sublevels;
|
|
5
|
+
isOpen;
|
|
6
|
+
constructor() {
|
|
7
|
+
this.sublevels = new Map();
|
|
8
|
+
this.store = new Map();
|
|
9
|
+
}
|
|
10
|
+
status() {
|
|
11
|
+
return this.isOpen ? "open" : "closed";
|
|
12
|
+
}
|
|
13
|
+
close() {
|
|
14
|
+
this.isOpen = false;
|
|
15
|
+
for (const level of this.sublevels) {
|
|
16
|
+
level[1].close();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
open() {
|
|
20
|
+
this.isOpen = true;
|
|
21
|
+
}
|
|
22
|
+
get(key) {
|
|
23
|
+
return this.store.get(key);
|
|
24
|
+
}
|
|
25
|
+
async *iterator() {
|
|
26
|
+
for await (const [key, value] of this.store) {
|
|
27
|
+
yield [key, value];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
clear() {
|
|
31
|
+
this.store.clear();
|
|
32
|
+
for (const [_s, sub] of this.sublevels) {
|
|
33
|
+
sub.clear();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
put(key, value) {
|
|
37
|
+
this.store.set(key, value);
|
|
38
|
+
}
|
|
39
|
+
// Remove a value and key from the cache
|
|
40
|
+
del(key) {
|
|
41
|
+
this.store.delete(key);
|
|
42
|
+
}
|
|
43
|
+
sublevel(name) {
|
|
44
|
+
const existing = this.sublevels.get(name);
|
|
45
|
+
if (existing) {
|
|
46
|
+
return existing;
|
|
47
|
+
}
|
|
48
|
+
const sub = new MemoryStore();
|
|
49
|
+
this.sublevels.set(name, sub);
|
|
50
|
+
if (this.isOpen) {
|
|
51
|
+
sub.open();
|
|
52
|
+
}
|
|
53
|
+
return sub;
|
|
54
|
+
}
|
|
55
|
+
size() {
|
|
56
|
+
let size = 0;
|
|
57
|
+
for (const [_k, v] of this.store) {
|
|
58
|
+
size += v.byteLength;
|
|
59
|
+
}
|
|
60
|
+
return size;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAE/C,MAAM,OAAO,WAAW;IACf,KAAK,CAA0B;IAC/B,SAAS,CAA2B;IACpC,MAAM,CAAU;IACxB;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxC,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACF,CAAC;IAED,IAAI;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,GAAW;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ;QACd,IAAI,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,GAAG,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAiB;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,wCAAwC;IACxC,GAAG,CAAC,GAAW;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,IAAY;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,IAAI;QACH,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export declare const levelKey: (level: string[]) => string;
|
|
2
|
+
export declare class MemoryRequest {
|
|
3
|
+
messageId: string;
|
|
4
|
+
constructor(messageId?: string);
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class MemoryMessage extends MemoryRequest {
|
|
7
|
+
level: string[];
|
|
8
|
+
constructor(properties: {
|
|
9
|
+
level: string[];
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export declare class REQ_Status extends MemoryMessage {
|
|
13
|
+
}
|
|
14
|
+
export declare class RESP_Status extends MemoryMessage {
|
|
15
|
+
status: "opening" | "open" | "closing" | "closed";
|
|
16
|
+
constructor(properties: {
|
|
17
|
+
level: string[];
|
|
18
|
+
status: "opening" | "open" | "closing" | "closed";
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export declare class REQ_Open extends MemoryMessage {
|
|
22
|
+
}
|
|
23
|
+
export declare class RESP_Open extends MemoryMessage {
|
|
24
|
+
}
|
|
25
|
+
export declare class REQ_Close extends MemoryMessage {
|
|
26
|
+
}
|
|
27
|
+
export declare class RESP_Close extends MemoryMessage {
|
|
28
|
+
}
|
|
29
|
+
export declare class REQ_Get extends MemoryMessage {
|
|
30
|
+
key: string;
|
|
31
|
+
constructor(properties: {
|
|
32
|
+
level: string[];
|
|
33
|
+
key: string;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export declare class RESP_Get extends MemoryMessage {
|
|
37
|
+
bytes?: Uint8Array;
|
|
38
|
+
constructor(properties: {
|
|
39
|
+
level: string[];
|
|
40
|
+
bytes?: Uint8Array;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export declare class REQ_Put extends MemoryMessage {
|
|
44
|
+
key: string;
|
|
45
|
+
bytes: Uint8Array;
|
|
46
|
+
constructor(properties: {
|
|
47
|
+
level: string[];
|
|
48
|
+
key: string;
|
|
49
|
+
bytes: Uint8Array;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
export declare class RESP_Put extends MemoryMessage {
|
|
53
|
+
}
|
|
54
|
+
export declare class REQ_Del extends MemoryMessage {
|
|
55
|
+
key: string;
|
|
56
|
+
constructor(properties: {
|
|
57
|
+
level: string[];
|
|
58
|
+
key: string;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export declare class RESP_Del extends MemoryMessage {
|
|
62
|
+
}
|
|
63
|
+
export declare class REQ_Iterator_Next extends MemoryMessage {
|
|
64
|
+
id: string;
|
|
65
|
+
step: number;
|
|
66
|
+
constructor(properties: {
|
|
67
|
+
id: string;
|
|
68
|
+
level: string[];
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export declare class RESP_Iterator_Next extends MemoryMessage {
|
|
72
|
+
keys: string[];
|
|
73
|
+
values: Uint8Array[];
|
|
74
|
+
constructor(properties: {
|
|
75
|
+
level: string[];
|
|
76
|
+
keys: string[];
|
|
77
|
+
values: Uint8Array[];
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export declare class REQ_Iterator_Stop extends MemoryMessage {
|
|
81
|
+
id: string;
|
|
82
|
+
constructor(properties: {
|
|
83
|
+
id: string;
|
|
84
|
+
level: string[];
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export declare class RESP_Iterator_Stop extends MemoryMessage {
|
|
88
|
+
}
|
|
89
|
+
export declare class REQ_Sublevel extends MemoryMessage {
|
|
90
|
+
name: string;
|
|
91
|
+
constructor(properties: {
|
|
92
|
+
level: string[];
|
|
93
|
+
name: string;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
export declare class RESP_Sublevel extends MemoryMessage {
|
|
97
|
+
}
|
|
98
|
+
export declare class REQ_Clear extends MemoryMessage {
|
|
99
|
+
}
|
|
100
|
+
export declare class RESP_Clear extends MemoryMessage {
|
|
101
|
+
}
|
|
102
|
+
export declare class REQ_Idle extends MemoryMessage {
|
|
103
|
+
}
|
|
104
|
+
export declare class RESP_Idle extends MemoryMessage {
|
|
105
|
+
}
|
|
106
|
+
export declare class REQ_Size extends MemoryMessage {
|
|
107
|
+
}
|
|
108
|
+
export declare class RESP_Size extends MemoryMessage {
|
|
109
|
+
private _size;
|
|
110
|
+
constructor(properties: {
|
|
111
|
+
level: string[];
|
|
112
|
+
size: number;
|
|
113
|
+
});
|
|
114
|
+
get size(): number;
|
|
115
|
+
}
|
|
116
|
+
export declare class RESP_Error extends MemoryMessage {
|
|
117
|
+
error: string;
|
|
118
|
+
constructor(properties: {
|
|
119
|
+
level: string[];
|
|
120
|
+
error: string;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=opfs-worker-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opfs-worker-messages.d.ts","sourceRoot":"","sources":["../../src/opfs-worker-messages.ts"],"names":[],"mappings":"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"}
|