@peerbit/any-store-opfs 2.0.2-0691c73

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.
@@ -0,0 +1,3 @@
1
+ declare const createWorker: (directory: string) => Worker;
2
+ export { createWorker };
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/create.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY,cAAe,MAAM,WAAmH,CAAA;AAC1J,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ const createWorker = (directory) => new Worker(new URL("/peerbit/anystore-opfs-worker.min.js#" + directory, import.meta.url), { type: "classic" });
2
+ export { createWorker };
3
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/create.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,uCAAuC,GAAG,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC1J,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import './worker.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ import './worker.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { type AnyStore, type MaybePromise } from "@peerbit/any-store-interface";
2
+ import * as memory from "@peerbit/any-store-interface/messages";
3
+ export declare class OPFSStore implements AnyStore {
4
+ readonly directory?: string;
5
+ worker: Worker;
6
+ levelMap: Map<string, AnyStore>;
7
+ root: AnyStore;
8
+ private _responseCallbacks;
9
+ private _createStorage;
10
+ constructor(directory?: string);
11
+ status(): MaybePromise<"open" | "closed" | "opening" | "closing">;
12
+ close(): Promise<void>;
13
+ open(): Promise<void>;
14
+ get(key: string): MaybePromise<Uint8Array | undefined>;
15
+ put(key: string, value: Uint8Array): MaybePromise<void>;
16
+ del(key: any): MaybePromise<void>;
17
+ sublevel(name: string): AnyStore | MaybePromise<AnyStore>;
18
+ iterator(): {
19
+ [Symbol.asyncIterator]: () => AsyncIterator<[
20
+ string,
21
+ Uint8Array
22
+ ], void, void>;
23
+ };
24
+ clear(): MaybePromise<void>;
25
+ size(): MaybePromise<number>;
26
+ request<T extends memory.MemoryRequest>(request: memory.MemoryRequest): Promise<T>;
27
+ }
28
+ //# sourceMappingURL=opfs-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opfs-store.d.ts","sourceRoot":"","sources":["../../src/opfs-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAmDhE,qBAAa,SAAU,YAAW,QAAQ;IAW7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAVvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC;IAEf,OAAO,CAAC,kBAAkB,CAGZ;IAEd,OAAO,CAAC,cAAc,CAAgC;gBACjC,SAAS,CAAC,EAAE,MAAM;IA4DvC,MAAM;IAGA,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC;IAGtD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAGlC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC;IAGjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IAGzD,QAAQ,IAAI;QACX,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,aAAa,CAC1C;YAAC,MAAM;YAAE,UAAU;SAAC,EACpB,IAAI,EACJ,IAAI,CACJ,CAAC;KACF;IAGD,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC;IAI3B,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC;IAItB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,aAAa,EAC3C,OAAO,EAAE,MAAM,CAAC,aAAa,GAC3B,OAAO,CAAC,CAAC,CAAC;CAkBb"}
@@ -0,0 +1,147 @@
1
+ import {} from "@peerbit/any-store-interface";
2
+ import * as memory from "@peerbit/any-store-interface/messages";
3
+ import { createWorker } from "./create.js";
4
+ import { v4 as uuid } from "uuid";
5
+ import { serialize, deserialize } from "@dao-xyz/borsh";
6
+ function memoryIterator(client, level) {
7
+ return {
8
+ [Symbol.asyncIterator]() {
9
+ const iteratorId = uuid();
10
+ return {
11
+ next: async () => {
12
+ const resp = await client.request(new memory.REQ_Iterator_Next({ id: iteratorId, level }));
13
+ if (resp.keys.length > 1) {
14
+ throw new Error("Unsupported iteration response");
15
+ }
16
+ // Will only have 0 or 1 element for now
17
+ for (let i = 0; i < resp.keys.length; i++) {
18
+ return {
19
+ done: false,
20
+ value: [resp.keys[i], resp.values[i]]
21
+ };
22
+ }
23
+ return { done: true, value: undefined };
24
+ },
25
+ async return() {
26
+ await client.request(new memory.REQ_Iterator_Stop({ id: iteratorId, level }));
27
+ return { done: true, value: undefined };
28
+ }
29
+ };
30
+ }
31
+ };
32
+ }
33
+ export class OPFSStore {
34
+ directory;
35
+ worker;
36
+ levelMap;
37
+ root;
38
+ _responseCallbacks = new Map();
39
+ _createStorage;
40
+ constructor(directory) {
41
+ this.directory = directory;
42
+ this.levelMap = new Map();
43
+ this._createStorage = (level = []) => {
44
+ return {
45
+ clear: async () => {
46
+ await this.request(new memory.REQ_Clear({ level }));
47
+ },
48
+ del: async (key) => {
49
+ await this.request(new memory.REQ_Del({ level, key }));
50
+ },
51
+ get: async (key) => {
52
+ return (await this.request(new memory.REQ_Get({ level, key }))).bytes;
53
+ },
54
+ put: async (key, value) => {
55
+ await this.request(new memory.REQ_Put({ level, key, bytes: value }));
56
+ },
57
+ status: async () => (await this.request(new memory.REQ_Status({ level }))).status,
58
+ sublevel: async (name) => {
59
+ await this.request(new memory.REQ_Sublevel({ level, name }));
60
+ const newLevels = [...level, name];
61
+ const sublevel = this._createStorage(newLevels);
62
+ this.levelMap.set(memory.levelKey(newLevels), sublevel);
63
+ return sublevel;
64
+ },
65
+ iterator: () => memoryIterator(this, level),
66
+ close: async () => {
67
+ await this.request(new memory.REQ_Close({ level }));
68
+ /* this.levelMap.delete(memory.levelKey(level)); */
69
+ },
70
+ open: async () => {
71
+ await this.request(new memory.REQ_Open({ level }));
72
+ },
73
+ size: async () => {
74
+ const size = await this.request(new memory.REQ_Size({ level }));
75
+ return size.size;
76
+ }
77
+ };
78
+ };
79
+ }
80
+ status() {
81
+ return this.worker ? this.root.status() : "closed";
82
+ }
83
+ async close() {
84
+ this.worker.terminate();
85
+ this.worker = undefined;
86
+ this._responseCallbacks.clear();
87
+ this.levelMap.clear();
88
+ }
89
+ async open() {
90
+ if (!this.worker) {
91
+ /* if (
92
+ !(globalThis as any)["__playwright_test__"] &&
93
+ (await navigator.storage.persist()) === false
94
+ ) {
95
+ throw new Error("OPFS not allowed to persist data");
96
+ } */
97
+ this.worker = createWorker(this.directory);
98
+ this.root = this._createStorage([]);
99
+ this.worker.addEventListener("message", async (ev) => {
100
+ const message = deserialize(ev.data, memory.MemoryMessage);
101
+ this._responseCallbacks.get(message.messageId).fn(message);
102
+ });
103
+ await this.root.open();
104
+ }
105
+ }
106
+ get(key) {
107
+ return this.root.get(key);
108
+ }
109
+ put(key, value) {
110
+ return this.root.put(key, value);
111
+ }
112
+ del(key) {
113
+ return this.root.del(key);
114
+ }
115
+ sublevel(name) {
116
+ return this.root.sublevel(name);
117
+ }
118
+ iterator() {
119
+ return this.root.iterator();
120
+ }
121
+ clear() {
122
+ return this.root.clear();
123
+ }
124
+ size() {
125
+ return this.root.size();
126
+ }
127
+ async request(request) {
128
+ return new Promise((resolve, reject) => {
129
+ const onResponse = (message) => {
130
+ this._responseCallbacks.delete(request.messageId);
131
+ if (message instanceof memory.RESP_Error) {
132
+ reject(new Error(message.error));
133
+ }
134
+ else {
135
+ resolve(message);
136
+ }
137
+ };
138
+ this._responseCallbacks.set(request.messageId, {
139
+ fn: onResponse,
140
+ once: true
141
+ });
142
+ const bytes = serialize(request);
143
+ this.worker.postMessage(bytes, [bytes.buffer]);
144
+ });
145
+ }
146
+ }
147
+ //# sourceMappingURL=opfs-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opfs-store.js","sourceRoot":"","sources":["../../src/opfs-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as memory from "@peerbit/any-store-interface/messages";
2
+ export declare class OPFSStoreWorker {
3
+ private _levels;
4
+ private _rootStore;
5
+ private _memoryIterator;
6
+ constructor();
7
+ respond(request: memory.MemoryRequest, response: memory.MemoryRequest, postMessageFn?: typeof postMessage): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AA+ChE,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO,CAAC,eAAe,CAGrB;;IAyRI,OAAO,CACZ,OAAO,EAAE,MAAM,CAAC,aAAa,EAC7B,QAAQ,EAAE,MAAM,CAAC,aAAa,EAC9B,aAAa,qBAAc;CAM5B"}
@@ -0,0 +1,280 @@
1
+ // TODO make bundle by removing unecessary dependencies
2
+ import { deserialize, serialize } from "@dao-xyz/borsh";
3
+ import {} from "@peerbit/any-store-interface";
4
+ import * as memory from "@peerbit/any-store-interface/messages";
5
+ import { fromBase64URL, toBase64URL, ready } from "@peerbit/crypto";
6
+ import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
7
+ import { waitForResolved } from "@peerbit/time";
8
+ const directory = location.hash.split("#")?.[1];
9
+ const encodeName = (name) => {
10
+ // since "/" and perhaps other characters might not be allowed we do encode
11
+ const writer = new BinaryWriter();
12
+ writer.string(name);
13
+ return toBase64URL(writer.finalize());
14
+ };
15
+ const decodeName = (name) => {
16
+ // since "/" and perhaps other characters might not be allowed we do encode
17
+ const writer = new BinaryReader(fromBase64URL(name));
18
+ return writer.string();
19
+ };
20
+ const waitForSyncAcccess = async (fileHandle) => {
21
+ try {
22
+ const handle = await fileHandle.createSyncAccessHandle();
23
+ return handle;
24
+ }
25
+ catch (error) {
26
+ const handle = await waitForResolved(() => fileHandle.createSyncAccessHandle());
27
+ if (!handle) {
28
+ throw error;
29
+ }
30
+ return handle;
31
+ }
32
+ };
33
+ const createWriteHandle = async (fileHandle) => {
34
+ // In Chrome on GET DOMException: Failed to execute 'createWritable' on 'FileSystemFileHandle': Failed to create swap file
35
+ // hence below is not used for now
36
+ /*
37
+ if (fileHandle.createWritable != null) {
38
+ return fileHandle.createWritable({ keepExistingData: false });
39
+ } */
40
+ return waitForSyncAcccess(fileHandle);
41
+ };
42
+ export class OPFSStoreWorker {
43
+ _levels;
44
+ _rootStore;
45
+ _memoryIterator;
46
+ constructor() {
47
+ const postMessageFn = postMessage;
48
+ this._memoryIterator = new Map();
49
+ this._levels = new Map();
50
+ const createMemory = (root, levels = []) => {
51
+ let isOpen = false;
52
+ let m = root;
53
+ let sizeCache = 0;
54
+ const sizeMap = new Map(); // files size per key
55
+ const calculateSize = async () => {
56
+ sizeCache = 0;
57
+ for await (const value of m.values()) {
58
+ if (value.kind === "file") {
59
+ try {
60
+ const handle = await waitForSyncAcccess(value);
61
+ const handleSize = handle.getSize();
62
+ sizeMap.set(value.name, handleSize);
63
+ sizeCache += handleSize;
64
+ handle.close();
65
+ }
66
+ catch (error) {
67
+ // TODO better error handling.
68
+ // most commonly error can be thrown when we are invoking getSize and files does not exist (anymore)
69
+ }
70
+ }
71
+ }
72
+ };
73
+ // 'open' | 'closed' is just a virtual thing since OPFS is always open as soone as we get the FileSystemDirectoryHandle
74
+ // TODO remove status? or assume not storage adapters can be closed?
75
+ const open = async () => {
76
+ await ready;
77
+ if (!m) {
78
+ m = await navigator.storage.getDirectory();
79
+ if (directory) {
80
+ m = await m.getDirectoryHandle(encodeName(directory), {
81
+ create: true
82
+ });
83
+ }
84
+ await calculateSize();
85
+ }
86
+ ;
87
+ isOpen = true;
88
+ };
89
+ return {
90
+ clear: async () => {
91
+ for await (const key of m.keys()) {
92
+ m.removeEntry(key, { recursive: true });
93
+ }
94
+ sizeCache = 0;
95
+ sizeMap.clear();
96
+ },
97
+ del: async (key) => {
98
+ const encodedKey = encodeName(key);
99
+ try {
100
+ await m.removeEntry(encodedKey, { recursive: true });
101
+ }
102
+ catch (error) {
103
+ if (error instanceof DOMException) {
104
+ return;
105
+ }
106
+ else {
107
+ throw error;
108
+ }
109
+ }
110
+ const prevSize = sizeMap.get(encodedKey);
111
+ if (prevSize != null) {
112
+ sizeCache -= prevSize;
113
+ sizeMap.delete(encodedKey);
114
+ }
115
+ },
116
+ get: async (key) => {
117
+ try {
118
+ const fileHandle = await m.getFileHandle(encodeName(key));
119
+ const file = await fileHandle.getFile();
120
+ const buffer = await file.arrayBuffer();
121
+ return new Uint8Array(buffer);
122
+ }
123
+ catch (error) {
124
+ if (error instanceof DOMException &&
125
+ error.name === "NotFoundError") {
126
+ return undefined;
127
+ }
128
+ else if (error) {
129
+ return undefined;
130
+ }
131
+ else {
132
+ throw error;
133
+ }
134
+ }
135
+ },
136
+ put: async (key, value) => {
137
+ const encodedKey = encodeName(key);
138
+ const fileHandle = await m.getFileHandle(encodedKey, {
139
+ create: true
140
+ });
141
+ const writeFileHandle = await createWriteHandle(fileHandle);
142
+ writeFileHandle.write(value);
143
+ writeFileHandle.flush();
144
+ writeFileHandle.close();
145
+ const prevSize = sizeMap.get(encodedKey);
146
+ if (prevSize) {
147
+ sizeCache -= prevSize;
148
+ }
149
+ sizeCache += value.byteLength;
150
+ sizeMap.set(encodedKey, value.byteLength);
151
+ },
152
+ size: async () => {
153
+ return sizeCache;
154
+ },
155
+ status: () => (isOpen ? "open" : "closed"),
156
+ sublevel: async (name) => {
157
+ const encodedName = encodeName(name);
158
+ const fileHandle = await m.getDirectoryHandle(encodedName, {
159
+ create: true
160
+ });
161
+ const sublevel = [...levels, name];
162
+ const subMemory = createMemory(fileHandle, sublevel);
163
+ this._levels.set(memory.levelKey(sublevel), subMemory);
164
+ await subMemory.open();
165
+ return subMemory;
166
+ },
167
+ async *iterator() {
168
+ for await (const v of m.values()) {
169
+ if (v.kind == "file") {
170
+ yield [
171
+ decodeName(v.name),
172
+ new Uint8Array(await (await v.getFile()).arrayBuffer())
173
+ ];
174
+ }
175
+ }
176
+ },
177
+ close: async () => {
178
+ sizeCache = undefined; // TODO types
179
+ isOpen = false;
180
+ this._memoryIterator.clear();
181
+ },
182
+ open
183
+ };
184
+ };
185
+ this._rootStore = createMemory();
186
+ self.addEventListener("message", async (ev) => {
187
+ const message = deserialize(ev["data"], memory.MemoryRequest);
188
+ try {
189
+ if (message instanceof memory.MemoryMessage) {
190
+ if (message instanceof memory.REQ_Open) {
191
+ if (await this._rootStore.status() === "closed") {
192
+ await this._rootStore.open();
193
+ }
194
+ await this.respond(message, new memory.RESP_Open({ level: message.level }), postMessageFn);
195
+ return;
196
+ }
197
+ const m = message.level.length === 0
198
+ ? this._rootStore
199
+ : this._levels.get(memory.levelKey(message.level));
200
+ if (!m) {
201
+ throw new Error("Recieved memory message for an undefined level");
202
+ }
203
+ else if (message instanceof memory.REQ_Clear) {
204
+ await m.clear();
205
+ await this.respond(message, new memory.RESP_Clear({ level: message.level }), postMessageFn);
206
+ }
207
+ else if (message instanceof memory.REQ_Close) {
208
+ console.log("CLOSE > ", message.level);
209
+ await m.close();
210
+ await this.respond(message, new memory.RESP_Close({ level: message.level }), postMessageFn);
211
+ }
212
+ else if (message instanceof memory.REQ_Del) {
213
+ await m.del(message.key);
214
+ await this.respond(message, new memory.RESP_Del({ level: message.level }), postMessageFn);
215
+ }
216
+ else if (message instanceof memory.REQ_Iterator_Next) {
217
+ let iterator = this._memoryIterator.get(message.id);
218
+ if (!iterator) {
219
+ iterator = m.iterator()[Symbol.asyncIterator]();
220
+ this._memoryIterator.set(message.id, iterator);
221
+ }
222
+ const next = await iterator.next();
223
+ await this.respond(message, new memory.RESP_Iterator_Next({
224
+ keys: next.done ? [] : [next.value[0]],
225
+ values: next.done ? [] : [new Uint8Array(next.value[1])],
226
+ level: message.level
227
+ }), postMessageFn);
228
+ if (next.done) {
229
+ this._memoryIterator.delete(message.id);
230
+ }
231
+ }
232
+ else if (message instanceof memory.REQ_Iterator_Stop) {
233
+ this._memoryIterator.delete(message.id);
234
+ await this.respond(message, new memory.RESP_Iterator_Stop({ level: message.level }), postMessageFn);
235
+ }
236
+ else if (message instanceof memory.REQ_Get) {
237
+ const value = await m.get(message.key);
238
+ await this.respond(message, new memory.RESP_Get({
239
+ bytes: value ? new Uint8Array(value) : undefined,
240
+ level: message.level
241
+ }), postMessageFn);
242
+ }
243
+ else if (message instanceof memory.REQ_Put) {
244
+ await m.put(message.key, message.bytes);
245
+ await this.respond(message, new memory.RESP_Put({ level: message.level }), postMessageFn);
246
+ }
247
+ else if (message instanceof memory.REQ_Size) {
248
+ await this.respond(message, new memory.RESP_Size({
249
+ size: await m.size(),
250
+ level: message.level
251
+ }), postMessageFn);
252
+ }
253
+ else if (message instanceof memory.REQ_Status) {
254
+ await this.respond(message, new memory.RESP_Status({
255
+ status: await m.status(),
256
+ level: message.level
257
+ }), postMessageFn);
258
+ }
259
+ else if (message instanceof memory.REQ_Sublevel) {
260
+ await m.sublevel(message.name);
261
+ await this.respond(message, new memory.RESP_Sublevel({ level: message.level }), postMessageFn);
262
+ }
263
+ }
264
+ }
265
+ catch (error) {
266
+ await this.respond(message, new memory.RESP_Error({
267
+ error: error?.["message"] || error?.constructor.name,
268
+ level: message["level"] || []
269
+ }), postMessageFn);
270
+ }
271
+ });
272
+ }
273
+ async respond(request, response, postMessageFn = postMessage) {
274
+ response.messageId = request.messageId;
275
+ const bytes = serialize(response);
276
+ postMessageFn(bytes, { transfer: [bytes.buffer] });
277
+ }
278
+ }
279
+ new OPFSStoreWorker();
280
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@peerbit/any-store-opfs",
3
+ "version": "2.0.2-0691c73",
4
+ "description": "OPFS worker",
5
+ "sideEffects": true,
6
+ "type": "module",
7
+ "types": "./dist/src/index.d.ts",
8
+ "files": [
9
+ "src",
10
+ "dist",
11
+ "!dist/test",
12
+ "!**/*.tsbuildinfo"
13
+ ],
14
+ "typesVersions": {
15
+ "*": {
16
+ "*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ],
22
+ "src/*": [
23
+ "*",
24
+ "dist/*",
25
+ "dist/src/*",
26
+ "dist/src/*/index"
27
+ ]
28
+ }
29
+ },
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/src/index.d.ts",
33
+ "import": "./dist/src/index.js"
34
+ },
35
+ "./opfs-store": {
36
+ "types": "./dist/src/opfs-store.d.ts",
37
+ "import": "./dist/src/opfs-store.js"
38
+ }
39
+ },
40
+ "eslintConfig": {
41
+ "extends": "ipfs",
42
+ "parserOptions": {
43
+ "project": true,
44
+ "sourceType": "module"
45
+ },
46
+ "ignorePatterns": [
47
+ "!.aegir.js",
48
+ "test/ts-use",
49
+ "*.d.ts"
50
+ ]
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "https://github.com/dao-xyz/peerbit"
58
+ },
59
+ "homepage": "https://github.com/dao-xyz/peerbit",
60
+ "bugs": "https://github.com/dao-xyz/peerbit/issues",
61
+ "scripts": {
62
+ "clean": "aegir clean",
63
+ "build": "aegir build",
64
+ "test": ""
65
+ },
66
+ "license": "MIT",
67
+ "dependencies": {
68
+ "@peerbit/crypto": "2.2.0-0691c73",
69
+ "@peerbit/logger": "1.0.2-0691c73",
70
+ "@peerbit/time": "2.0.6-0691c73",
71
+ "@peerbit/any-store-interface": "2.0.2-0691c73",
72
+ "uuid": "^9.0.0"
73
+ },
74
+ "devDependencies": {
75
+ "@types/uuid": "^9.0.8"
76
+ },
77
+ "localMaintainers": [
78
+ "dao.xyz"
79
+ ]
80
+ }
package/src/create.ts ADDED
@@ -0,0 +1,2 @@
1
+ const createWorker = (directory: string) => new Worker(new URL("/peerbit/anystore-opfs-worker.min.js#" + directory, import.meta.url), { type: "classic" })
2
+ export { createWorker }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ import './worker.js'