@peerbit/any-store 1.0.1 → 1.0.2

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,5 +1,18 @@
1
1
  import { deserialize, serialize } from "@dao-xyz/borsh";
2
2
  import * as memory from "./opfs-worker-messages.js";
3
+ import { fromBase64URL, toBase64URL } from "@peerbit/crypto";
4
+ import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
5
+ const encodeName = (name) => {
6
+ // since "/" and perhaps other characters might not be allowed we do encode
7
+ const writer = new BinaryWriter();
8
+ writer.string(name);
9
+ return toBase64URL(writer.finalize());
10
+ };
11
+ const decodeName = (name) => {
12
+ // since "/" and perhaps other characters might not be allowed we do encode
13
+ const writer = new BinaryReader(fromBase64URL(name));
14
+ return writer.string();
15
+ };
3
16
  export class OPFSStoreWorker {
4
17
  level;
5
18
  _levels;
@@ -26,7 +39,7 @@ export class OPFSStoreWorker {
26
39
  },
27
40
  del: async (key) => {
28
41
  try {
29
- await m.removeEntry(key, { recursive: true });
42
+ await m.removeEntry(encodeName(key), { recursive: true });
30
43
  }
31
44
  catch (error) {
32
45
  if (error instanceof DOMException &&
@@ -40,7 +53,7 @@ export class OPFSStoreWorker {
40
53
  },
41
54
  get: async (key) => {
42
55
  try {
43
- const fileHandle = await m.getFileHandle(key);
56
+ const fileHandle = await m.getFileHandle(encodeName(key));
44
57
  const buffer = await (await fileHandle.getFile()).arrayBuffer();
45
58
  return new Uint8Array(buffer);
46
59
  }
@@ -55,7 +68,9 @@ export class OPFSStoreWorker {
55
68
  }
56
69
  },
57
70
  put: async (key, value) => {
58
- const fileHandle = await m.getFileHandle(key, { create: true });
71
+ const fileHandle = await m.getFileHandle(encodeName(key), {
72
+ create: true
73
+ });
59
74
  const writeFileHandle = await fileHandle.createSyncAccessHandle();
60
75
  writeFileHandle.write(value);
61
76
  writeFileHandle.close();
@@ -73,8 +88,11 @@ export class OPFSStoreWorker {
73
88
  },
74
89
  status: () => (isOpen ? "open" : "closed"),
75
90
  sublevel: async (name) => {
76
- const fileHandle = await m.getDirectoryHandle(name, { create: true });
77
- const sublevel = [...level, name];
91
+ const encodedName = encodeName(name);
92
+ const fileHandle = await m.getDirectoryHandle(encodedName, {
93
+ create: true
94
+ });
95
+ const sublevel = [...level, encodedName];
78
96
  const subMemory = createMemory(fileHandle, sublevel);
79
97
  this._levels.set(memory.levelKey(sublevel), subMemory);
80
98
  await subMemory.open();
@@ -84,7 +102,7 @@ export class OPFSStoreWorker {
84
102
  for await (const v of m.values()) {
85
103
  if (v.kind == "file") {
86
104
  yield [
87
- v.name,
105
+ decodeName(v.name),
88
106
  new Uint8Array(await (await v.getFile()).arrayBuffer())
89
107
  ];
90
108
  }
@@ -103,7 +121,7 @@ export class OPFSStoreWorker {
103
121
  if (message instanceof memory.MemoryMessage) {
104
122
  const m = message.level.length === 0
105
123
  ? this._rootStore
106
- : this._levels.get(memory.levelKey(message.level));
124
+ : this._levels.get(memory.levelKey(message.level.map((x) => encodeName(x))));
107
125
  if (!m) {
108
126
  throw new Error("Recieved memory message for an undefined level");
109
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"opfs-worker.js","sourceRoot":"","sources":["../../src/opfs-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opfs-worker.js","sourceRoot":"","sources":["../../src/opfs-worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/any-store",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Level with lazy transactions",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "license": "MIT",
41
41
  "dependencies": {
42
- "@peerbit/crypto": "^2.0.0",
42
+ "@peerbit/crypto": "^2.1.0",
43
43
  "@peerbit/logger": "1.0.2",
44
44
  "@peerbit/time": "2.0.0",
45
45
  "level": "^8.0.0",
@@ -48,5 +48,5 @@
48
48
  "localMaintainers": [
49
49
  "dao.xyz"
50
50
  ],
51
- "gitHead": "c48cb37d237a25b0bcc849482b43f6941d53e3d5"
51
+ "gitHead": "cba5d4b1a6f3343f044c7d3194494c3572710cc8"
52
52
  }
@@ -1,6 +1,20 @@
1
1
  import { deserialize, serialize } from "@dao-xyz/borsh";
2
2
  import { AnyStore } from "./interface.js";
3
3
  import * as memory from "./opfs-worker-messages.js";
4
+ import { fromBase64URL, toBase64URL } from "@peerbit/crypto";
5
+ import { BinaryReader, BinaryWriter } from "@dao-xyz/borsh";
6
+ const encodeName = (name: string): string => {
7
+ // since "/" and perhaps other characters might not be allowed we do encode
8
+ const writer = new BinaryWriter();
9
+ writer.string(name);
10
+ return toBase64URL(writer.finalize());
11
+ };
12
+
13
+ const decodeName = (name: string): string => {
14
+ // since "/" and perhaps other characters might not be allowed we do encode
15
+ const writer = new BinaryReader(fromBase64URL(name));
16
+ return writer.string();
17
+ };
4
18
 
5
19
  export class OPFSStoreWorker {
6
20
  level: string[];
@@ -38,9 +52,9 @@ export class OPFSStoreWorker {
38
52
  }
39
53
  },
40
54
 
41
- del: async (key) => {
55
+ del: async (key: string) => {
42
56
  try {
43
- await m.removeEntry(key, { recursive: true });
57
+ await m.removeEntry(encodeName(key), { recursive: true });
44
58
  } catch (error) {
45
59
  if (
46
60
  error instanceof DOMException &&
@@ -53,9 +67,9 @@ export class OPFSStoreWorker {
53
67
  }
54
68
  },
55
69
 
56
- get: async (key) => {
70
+ get: async (key: string) => {
57
71
  try {
58
- const fileHandle = await m.getFileHandle(key);
72
+ const fileHandle = await m.getFileHandle(encodeName(key));
59
73
  const buffer = await (await fileHandle.getFile()).arrayBuffer();
60
74
  return new Uint8Array(buffer);
61
75
  } catch (error) {
@@ -69,8 +83,10 @@ export class OPFSStoreWorker {
69
83
  }
70
84
  }
71
85
  },
72
- put: async (key, value) => {
73
- const fileHandle = await m.getFileHandle(key, { create: true });
86
+ put: async (key: string, value: Uint8Array) => {
87
+ const fileHandle = await m.getFileHandle(encodeName(key), {
88
+ create: true
89
+ });
74
90
  const writeFileHandle = await fileHandle.createSyncAccessHandle();
75
91
 
76
92
  writeFileHandle.write(value);
@@ -91,8 +107,11 @@ export class OPFSStoreWorker {
91
107
  status: () => (isOpen ? "open" : "closed"),
92
108
 
93
109
  sublevel: async (name) => {
94
- const fileHandle = await m.getDirectoryHandle(name, { create: true });
95
- const sublevel = [...level, name];
110
+ const encodedName = encodeName(name);
111
+ const fileHandle = await m.getDirectoryHandle(encodedName, {
112
+ create: true
113
+ });
114
+ const sublevel = [...level, encodedName];
96
115
  const subMemory = createMemory(fileHandle, sublevel);
97
116
  this._levels.set(memory.levelKey(sublevel), subMemory);
98
117
  await subMemory.open();
@@ -103,7 +122,7 @@ export class OPFSStoreWorker {
103
122
  for await (const v of m.values()) {
104
123
  if (v.kind == "file") {
105
124
  yield [
106
- v.name,
125
+ decodeName(v.name),
107
126
  new Uint8Array(await (await v.getFile()).arrayBuffer())
108
127
  ];
109
128
  }
@@ -125,7 +144,9 @@ export class OPFSStoreWorker {
125
144
  const m =
126
145
  message.level.length === 0
127
146
  ? this._rootStore
128
- : this._levels.get(memory.levelKey(message.level));
147
+ : this._levels.get(
148
+ memory.levelKey(message.level.map((x) => encodeName(x)))
149
+ );
129
150
  if (!m) {
130
151
  throw new Error("Recieved memory message for an undefined level");
131
152
  } else if (message instanceof memory.REQ_Clear) {