@peerbit/any-store 2.0.2 → 2.1.0-2bc15a6
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/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -0
- package/{lib/esm → dist/src}/level.d.ts +4 -2
- package/dist/src/level.d.ts.map +1 -0
- package/{lib/esm → dist/src}/level.js +15 -10
- package/dist/src/level.js.map +1 -0
- package/{lib/esm → dist/src}/memory.d.ts +4 -2
- package/dist/src/memory.d.ts.map +1 -0
- package/{lib/esm → dist/src}/memory.js +6 -2
- package/dist/src/memory.js.map +1 -0
- package/{lib/esm → dist/src}/store.browser.d.ts +2 -1
- package/dist/src/store.browser.d.ts.map +1 -0
- package/{lib/esm → dist/src}/store.browser.js +1 -1
- package/dist/src/store.browser.js.map +1 -0
- package/{lib/esm → dist/src}/store.d.ts +1 -0
- package/dist/src/store.d.ts.map +1 -0
- package/{lib/esm → dist/src}/store.js +1 -1
- package/{lib/esm → dist/src}/store.js.map +1 -1
- package/package.json +80 -50
- package/src/index.ts +4 -2
- package/src/level.ts +17 -14
- package/src/memory.ts +7 -3
- package/src/store.browser.ts +1 -1
- package/src/store.ts +2 -1
- package/LICENSE +0 -202
- package/lib/esm/index.d.ts +0 -3
- package/lib/esm/index.js +0 -4
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interface.d.ts +0 -18
- package/lib/esm/interface.js +0 -2
- package/lib/esm/interface.js.map +0 -1
- package/lib/esm/level.js.map +0 -1
- package/lib/esm/memory.js.map +0 -1
- package/lib/esm/opfs-worker-messages.d.ts +0 -122
- package/lib/esm/opfs-worker-messages.js +0 -325
- package/lib/esm/opfs-worker-messages.js.map +0 -1
- package/lib/esm/opfs-worker.d.ts +0 -8
- package/lib/esm/opfs-worker.js +0 -276
- package/lib/esm/opfs-worker.js.map +0 -1
- package/lib/esm/opfs.d.ts +0 -27
- package/lib/esm/opfs.js +0 -148
- package/lib/esm/opfs.js.map +0 -1
- package/lib/esm/store.browser.js.map +0 -1
- package/src/interface.ts +0 -20
- package/src/opfs-worker-messages.ts +0 -210
- package/src/opfs-worker.ts +0 -347
- package/src/opfs.ts +0 -205
package/lib/esm/opfs.js
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import * as memory from "./opfs-worker-messages.js";
|
|
2
|
-
import { v4 as uuid } from "uuid";
|
|
3
|
-
import { serialize, deserialize } from "@dao-xyz/borsh";
|
|
4
|
-
import workerUrl from "./opfs-worker?worker&url";
|
|
5
|
-
function memoryIterator(client, level) {
|
|
6
|
-
return {
|
|
7
|
-
[Symbol.asyncIterator]() {
|
|
8
|
-
const iteratorId = uuid();
|
|
9
|
-
return {
|
|
10
|
-
next: async () => {
|
|
11
|
-
const resp = await client.request(new memory.REQ_Iterator_Next({ id: iteratorId, level }));
|
|
12
|
-
if (resp.keys.length > 1) {
|
|
13
|
-
throw new Error("Unsupported iteration response");
|
|
14
|
-
}
|
|
15
|
-
// Will only have 0 or 1 element for now
|
|
16
|
-
for (let i = 0; i < resp.keys.length; i++) {
|
|
17
|
-
return {
|
|
18
|
-
done: false,
|
|
19
|
-
value: [resp.keys[i], resp.values[i]]
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
return { done: true, value: undefined };
|
|
23
|
-
},
|
|
24
|
-
async return() {
|
|
25
|
-
await client.request(new memory.REQ_Iterator_Stop({ id: iteratorId, level }));
|
|
26
|
-
return { done: true, value: undefined };
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
const createWorker = (directory) => {
|
|
33
|
-
const workerURL = workerUrl + "#" + directory;
|
|
34
|
-
return new Worker(workerURL, { type: "module" });
|
|
35
|
-
};
|
|
36
|
-
export class OPFSStore {
|
|
37
|
-
directory;
|
|
38
|
-
worker;
|
|
39
|
-
levelMap;
|
|
40
|
-
root;
|
|
41
|
-
_responseCallbacks = new Map();
|
|
42
|
-
_createStorage;
|
|
43
|
-
constructor(directory) {
|
|
44
|
-
this.directory = directory;
|
|
45
|
-
this.levelMap = new Map();
|
|
46
|
-
this._createStorage = (level = []) => {
|
|
47
|
-
return {
|
|
48
|
-
clear: async () => {
|
|
49
|
-
await this.request(new memory.REQ_Clear({ level }));
|
|
50
|
-
},
|
|
51
|
-
del: async (key) => {
|
|
52
|
-
await this.request(new memory.REQ_Del({ level, key }));
|
|
53
|
-
},
|
|
54
|
-
get: async (key) => {
|
|
55
|
-
return (await this.request(new memory.REQ_Get({ level, key }))).bytes;
|
|
56
|
-
},
|
|
57
|
-
put: async (key, value) => {
|
|
58
|
-
await this.request(new memory.REQ_Put({ level, key, bytes: value }));
|
|
59
|
-
},
|
|
60
|
-
status: async () => (await this.request(new memory.REQ_Status({ level }))).status,
|
|
61
|
-
sublevel: async (name) => {
|
|
62
|
-
await this.request(new memory.REQ_Sublevel({ level, name }));
|
|
63
|
-
const newLevels = [...level, name];
|
|
64
|
-
const sublevel = this._createStorage(newLevels);
|
|
65
|
-
this.levelMap.set(memory.levelKey(newLevels), sublevel);
|
|
66
|
-
return sublevel;
|
|
67
|
-
},
|
|
68
|
-
iterator: () => memoryIterator(this, level),
|
|
69
|
-
close: async () => {
|
|
70
|
-
await this.request(new memory.REQ_Close({ level }));
|
|
71
|
-
/* this.levelMap.delete(memory.levelKey(level)); */
|
|
72
|
-
},
|
|
73
|
-
open: async () => {
|
|
74
|
-
await this.request(new memory.REQ_Open({ level }));
|
|
75
|
-
},
|
|
76
|
-
size: async () => {
|
|
77
|
-
const size = await this.request(new memory.REQ_Size({ level }));
|
|
78
|
-
return size.size;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
status() {
|
|
84
|
-
return this.worker ? this.root.status() : "closed";
|
|
85
|
-
}
|
|
86
|
-
async close() {
|
|
87
|
-
this.worker.terminate();
|
|
88
|
-
this.worker = undefined;
|
|
89
|
-
this._responseCallbacks.clear();
|
|
90
|
-
this.levelMap.clear();
|
|
91
|
-
}
|
|
92
|
-
async open() {
|
|
93
|
-
if (!this.worker) {
|
|
94
|
-
if (!globalThis["__playwright_test__"] &&
|
|
95
|
-
(await navigator.storage.persist()) === false) {
|
|
96
|
-
throw new Error("OPFS not allowed to persist data");
|
|
97
|
-
}
|
|
98
|
-
this.worker = createWorker(this.directory);
|
|
99
|
-
this.root = this._createStorage([]);
|
|
100
|
-
this.worker.addEventListener("message", async (ev) => {
|
|
101
|
-
const message = deserialize(ev.data, memory.MemoryMessage);
|
|
102
|
-
this._responseCallbacks.get(message.messageId).fn(message);
|
|
103
|
-
});
|
|
104
|
-
await this.root.open();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
get(key) {
|
|
108
|
-
return this.root.get(key);
|
|
109
|
-
}
|
|
110
|
-
put(key, value) {
|
|
111
|
-
return this.root.put(key, value);
|
|
112
|
-
}
|
|
113
|
-
del(key) {
|
|
114
|
-
return this.root.del(key);
|
|
115
|
-
}
|
|
116
|
-
sublevel(name) {
|
|
117
|
-
return this.root.sublevel(name);
|
|
118
|
-
}
|
|
119
|
-
iterator() {
|
|
120
|
-
return this.root.iterator();
|
|
121
|
-
}
|
|
122
|
-
clear() {
|
|
123
|
-
return this.root.clear();
|
|
124
|
-
}
|
|
125
|
-
size() {
|
|
126
|
-
return this.root.size();
|
|
127
|
-
}
|
|
128
|
-
async request(request) {
|
|
129
|
-
return new Promise((resolve, reject) => {
|
|
130
|
-
const onResponse = (message) => {
|
|
131
|
-
this._responseCallbacks.delete(request.messageId);
|
|
132
|
-
if (message instanceof memory.RESP_Error) {
|
|
133
|
-
reject(new Error(message.error));
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
resolve(message);
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
this._responseCallbacks.set(request.messageId, {
|
|
140
|
-
fn: onResponse,
|
|
141
|
-
once: true
|
|
142
|
-
});
|
|
143
|
-
const bytes = serialize(request);
|
|
144
|
-
this.worker.postMessage(bytes, [bytes.buffer]);
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=opfs.js.map
|
package/lib/esm/opfs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opfs.js","sourceRoot":"","sources":["../../src/opfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.browser.js","sourceRoot":"","sources":["../../src/store.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAkB,EAAE,EAAE;IACjD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;AACjE,CAAC,CAAC;AAEF;;IAEI"}
|
package/src/interface.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export type MaybePromise<T> = Promise<T> | T;
|
|
2
|
-
|
|
3
|
-
export interface AnyStore {
|
|
4
|
-
status(): MaybePromise<"opening" | "open" | "closing" | "closed">;
|
|
5
|
-
close(): MaybePromise<void>;
|
|
6
|
-
open(): MaybePromise<void>;
|
|
7
|
-
get(key: string): MaybePromise<Uint8Array | undefined>;
|
|
8
|
-
put(key: string, value: Uint8Array);
|
|
9
|
-
del(key): MaybePromise<void>;
|
|
10
|
-
sublevel(name: string): MaybePromise<AnyStore>;
|
|
11
|
-
iterator: () => {
|
|
12
|
-
[Symbol.asyncIterator]: () => AsyncIterator<
|
|
13
|
-
[string, Uint8Array],
|
|
14
|
-
void,
|
|
15
|
-
void
|
|
16
|
-
>;
|
|
17
|
-
};
|
|
18
|
-
clear(): MaybePromise<void>;
|
|
19
|
-
size(): MaybePromise<number>;
|
|
20
|
-
}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import { field, variant, vec, option } from "@dao-xyz/borsh";
|
|
2
|
-
import { v4 as uuid } from "uuid";
|
|
3
|
-
|
|
4
|
-
export const levelKey = (level: string[]) => JSON.stringify(level);
|
|
5
|
-
|
|
6
|
-
@variant(0)
|
|
7
|
-
export class MemoryRequest {
|
|
8
|
-
@field({ type: "string" })
|
|
9
|
-
messageId: string;
|
|
10
|
-
|
|
11
|
-
constructor(messageId?: Uint8Array) {
|
|
12
|
-
this.messageId = messageId || uuid();
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@variant(0)
|
|
17
|
-
export abstract class MemoryMessage extends MemoryRequest {
|
|
18
|
-
@field({ type: vec("string") })
|
|
19
|
-
level: string[]; // [] means root, ['x'] means sublevel named 'x'
|
|
20
|
-
|
|
21
|
-
constructor(properties: { level: string[] }) {
|
|
22
|
-
super();
|
|
23
|
-
this.level = properties.level;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@variant(0)
|
|
28
|
-
export class REQ_Status extends MemoryMessage {}
|
|
29
|
-
|
|
30
|
-
@variant(1)
|
|
31
|
-
export class RESP_Status extends MemoryMessage {
|
|
32
|
-
@field({ type: "string" })
|
|
33
|
-
status: "opening" | "open" | "closing" | "closed";
|
|
34
|
-
|
|
35
|
-
constructor(properties: {
|
|
36
|
-
level: string[];
|
|
37
|
-
status: "opening" | "open" | "closing" | "closed";
|
|
38
|
-
}) {
|
|
39
|
-
super(properties);
|
|
40
|
-
this.status = properties.status;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@variant(2)
|
|
45
|
-
export class REQ_Open extends MemoryMessage {}
|
|
46
|
-
|
|
47
|
-
@variant(3)
|
|
48
|
-
export class RESP_Open extends MemoryMessage {}
|
|
49
|
-
|
|
50
|
-
@variant(4)
|
|
51
|
-
export class REQ_Close extends MemoryMessage {}
|
|
52
|
-
|
|
53
|
-
@variant(5)
|
|
54
|
-
export class RESP_Close extends MemoryMessage {}
|
|
55
|
-
|
|
56
|
-
@variant(6)
|
|
57
|
-
export class REQ_Get extends MemoryMessage {
|
|
58
|
-
@field({ type: "string" })
|
|
59
|
-
key: string;
|
|
60
|
-
|
|
61
|
-
constructor(properties: { level: string[]; key: string }) {
|
|
62
|
-
super(properties);
|
|
63
|
-
this.key = properties.key;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@variant(7)
|
|
68
|
-
export class RESP_Get extends MemoryMessage {
|
|
69
|
-
@field({ type: option(Uint8Array) })
|
|
70
|
-
bytes?: Uint8Array;
|
|
71
|
-
|
|
72
|
-
constructor(properties: { level: string[]; bytes?: Uint8Array }) {
|
|
73
|
-
super(properties);
|
|
74
|
-
this.bytes = properties.bytes;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@variant(8)
|
|
79
|
-
export class REQ_Put extends MemoryMessage {
|
|
80
|
-
@field({ type: "string" })
|
|
81
|
-
key: string;
|
|
82
|
-
|
|
83
|
-
@field({ type: Uint8Array })
|
|
84
|
-
bytes: Uint8Array;
|
|
85
|
-
|
|
86
|
-
constructor(properties: { level: string[]; key: string; bytes: Uint8Array }) {
|
|
87
|
-
super(properties);
|
|
88
|
-
this.key = properties.key;
|
|
89
|
-
this.bytes = properties.bytes;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
@variant(9)
|
|
94
|
-
export class RESP_Put extends MemoryMessage {}
|
|
95
|
-
|
|
96
|
-
@variant(10)
|
|
97
|
-
export class REQ_Del extends MemoryMessage {
|
|
98
|
-
@field({ type: "string" })
|
|
99
|
-
key: string;
|
|
100
|
-
|
|
101
|
-
constructor(properties: { level: string[]; key: string }) {
|
|
102
|
-
super(properties);
|
|
103
|
-
this.key = properties.key;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
@variant(11)
|
|
108
|
-
export class RESP_Del extends MemoryMessage {}
|
|
109
|
-
|
|
110
|
-
@variant(12)
|
|
111
|
-
export class REQ_Iterator_Next extends MemoryMessage {
|
|
112
|
-
@field({ type: "string" })
|
|
113
|
-
id: string;
|
|
114
|
-
|
|
115
|
-
@field({ type: "u32" })
|
|
116
|
-
step: number;
|
|
117
|
-
|
|
118
|
-
constructor(properties: { id: string; level: string[] }) {
|
|
119
|
-
super(properties);
|
|
120
|
-
this.id = properties.id;
|
|
121
|
-
this.step = 1;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
@variant(13)
|
|
126
|
-
export class RESP_Iterator_Next extends MemoryMessage {
|
|
127
|
-
@field({ type: vec("string") })
|
|
128
|
-
keys: string[];
|
|
129
|
-
|
|
130
|
-
@field({ type: vec(Uint8Array) })
|
|
131
|
-
values: Uint8Array[];
|
|
132
|
-
|
|
133
|
-
constructor(properties: {
|
|
134
|
-
level: string[];
|
|
135
|
-
keys: string[];
|
|
136
|
-
values: Uint8Array[];
|
|
137
|
-
}) {
|
|
138
|
-
super(properties);
|
|
139
|
-
this.keys = properties.keys;
|
|
140
|
-
this.values = properties.values;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
@variant(14)
|
|
145
|
-
export class REQ_Iterator_Stop extends MemoryMessage {
|
|
146
|
-
@field({ type: "string" })
|
|
147
|
-
id: string;
|
|
148
|
-
|
|
149
|
-
constructor(properties: { id: string; level: string[] }) {
|
|
150
|
-
super(properties);
|
|
151
|
-
this.id = properties.id;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
@variant(15)
|
|
156
|
-
export class RESP_Iterator_Stop extends MemoryMessage {}
|
|
157
|
-
|
|
158
|
-
@variant(16)
|
|
159
|
-
export class REQ_Sublevel extends MemoryMessage {
|
|
160
|
-
@field({ type: "string" })
|
|
161
|
-
name: string;
|
|
162
|
-
|
|
163
|
-
constructor(properties: { level: string[]; name: string }) {
|
|
164
|
-
super(properties);
|
|
165
|
-
this.name = properties.name;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
@variant(17)
|
|
170
|
-
export class RESP_Sublevel extends MemoryMessage {}
|
|
171
|
-
|
|
172
|
-
@variant(18)
|
|
173
|
-
export class REQ_Clear extends MemoryMessage {}
|
|
174
|
-
|
|
175
|
-
@variant(19)
|
|
176
|
-
export class RESP_Clear extends MemoryMessage {}
|
|
177
|
-
|
|
178
|
-
@variant(20)
|
|
179
|
-
export class REQ_Idle extends MemoryMessage {}
|
|
180
|
-
|
|
181
|
-
@variant(21)
|
|
182
|
-
export class RESP_Idle extends MemoryMessage {}
|
|
183
|
-
|
|
184
|
-
@variant(22)
|
|
185
|
-
export class REQ_Size extends MemoryMessage {}
|
|
186
|
-
|
|
187
|
-
@variant(23)
|
|
188
|
-
export class RESP_Size extends MemoryMessage {
|
|
189
|
-
@field({ type: "u64" })
|
|
190
|
-
private _size: bigint;
|
|
191
|
-
|
|
192
|
-
constructor(properties: { level: string[]; size: number }) {
|
|
193
|
-
super(properties);
|
|
194
|
-
this._size = BigInt(properties.size);
|
|
195
|
-
}
|
|
196
|
-
get size(): number {
|
|
197
|
-
return Number(this._size);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
@variant(24)
|
|
202
|
-
export class RESP_Error extends MemoryMessage {
|
|
203
|
-
@field({ type: "string" })
|
|
204
|
-
error: string;
|
|
205
|
-
|
|
206
|
-
constructor(properties: { level: string[]; error: string }) {
|
|
207
|
-
super(properties);
|
|
208
|
-
this.error = properties.error;
|
|
209
|
-
}
|
|
210
|
-
}
|