@xyo-network/previous-hash-store-storage 6.0.9 → 6.1.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/README.md +3 -1
- package/package.json +6 -12
- package/dist/browser/NamespacedStorage.d.ts +0 -10
- package/dist/browser/NamespacedStorage.d.ts.map +0 -1
- package/dist/browser/StoragePreviousHashStore.d.ts +0 -24
- package/dist/browser/StoragePreviousHashStore.d.ts.map +0 -1
- package/dist/browser/index.d.ts +0 -3
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.mjs +0 -104
- package/dist/browser/index.mjs.map +0 -7
- package/dist/node/NamespacedStorage.d.ts +0 -10
- package/dist/node/NamespacedStorage.d.ts.map +0 -1
- package/dist/node/StoragePreviousHashStore.d.ts +0 -24
- package/dist/node/StoragePreviousHashStore.d.ts.map +0 -1
- package/dist/node/index.d.ts +0 -3
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/index.mjs +0 -104
- package/dist/node/index.mjs.map +0 -7
package/README.md
CHANGED
|
@@ -38,10 +38,12 @@ bun add {{name}}
|
|
|
38
38
|
|
|
39
39
|
See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
|
|
40
40
|
|
|
41
|
+
## Credits
|
|
41
42
|
|
|
43
|
+
[Made with 🔥 and ❄️ by XYO Foundation](https://xyo.network)
|
|
42
44
|
|
|
43
|
-
[logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
|
|
44
45
|
[npm-badge]: https://img.shields.io/npm/v/@xyo-network/previous-hash-store-storage.svg
|
|
45
46
|
[npm-link]: https://www.npmjs.com/package/@xyo-network/previous-hash-store-storage
|
|
46
47
|
[license-badge]: https://img.shields.io/npm/l/@xyo-network/previous-hash-store-storage.svg
|
|
47
48
|
[license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
|
|
49
|
+
[logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/previous-hash-store-storage",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -34,21 +34,18 @@
|
|
|
34
34
|
"README.md"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@xyo-network/address": "~6.0
|
|
38
|
-
"@xyo-network/previous-hash-store-model": "~6.0
|
|
37
|
+
"@xyo-network/address": "~6.1.0",
|
|
38
|
+
"@xyo-network/previous-hash-store-model": "~6.1.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@opentelemetry/api": "^1.9.1",
|
|
42
42
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
43
43
|
"@scure/base": "~2.2.0",
|
|
44
|
-
"@xylabs/sdk-js": "^6.0
|
|
45
|
-
"@xylabs/toolchain": "~8.1.
|
|
46
|
-
"@xylabs/tsconfig": "~8.1.
|
|
44
|
+
"@xylabs/sdk-js": "^6.1.0",
|
|
45
|
+
"@xylabs/toolchain": "~8.1.20",
|
|
46
|
+
"@xylabs/tsconfig": "~8.1.20",
|
|
47
47
|
"async-mutex": "^0.5.0",
|
|
48
|
-
"bn.js": "^5.2.3",
|
|
49
|
-
"buffer": "^6.0.3",
|
|
50
48
|
"eslint": "^10.4.1",
|
|
51
|
-
"ethers": "^6.16.0",
|
|
52
49
|
"typescript": "~6.0.3",
|
|
53
50
|
"vite": "^8.0.16",
|
|
54
51
|
"vitest": "~4.1.8",
|
|
@@ -60,9 +57,6 @@
|
|
|
60
57
|
"@scure/base": "~2.2",
|
|
61
58
|
"@xylabs/sdk-js": "^6.0",
|
|
62
59
|
"async-mutex": "^0.5",
|
|
63
|
-
"bn.js": "^5.2",
|
|
64
|
-
"buffer": "^6.0",
|
|
65
|
-
"ethers": "^6.16",
|
|
66
60
|
"zod": "^4.4"
|
|
67
61
|
},
|
|
68
62
|
"engines": {
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type StorageArea = 'local' | 'session' | 'page';
|
|
2
|
-
export declare class NamespacedStorage<T> {
|
|
3
|
-
private readonly backend;
|
|
4
|
-
private readonly prefix;
|
|
5
|
-
constructor(area: StorageArea, namespace: string);
|
|
6
|
-
get(key: string): T | undefined;
|
|
7
|
-
remove(key: string): void;
|
|
8
|
-
set(key: string, value: T): void;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=NamespacedStorage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NamespacedStorage.d.ts","sourceRoot":"","sources":["../../src/NamespacedStorage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAiEtD,qBAAa,iBAAiB,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;IAKhD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAU/B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAGjC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Hash } from '@xylabs/sdk-js';
|
|
2
|
-
import type { XyoAddress } from '@xyo-network/address';
|
|
3
|
-
import type { PreviousHashStore } from '@xyo-network/previous-hash-store-model';
|
|
4
|
-
import type { StorageArea } from './NamespacedStorage.ts';
|
|
5
|
-
export type Storage = StorageArea;
|
|
6
|
-
export interface StoragePreviousHashOpts {
|
|
7
|
-
namespace?: string;
|
|
8
|
-
type?: Storage;
|
|
9
|
-
}
|
|
10
|
-
export declare class StoragePreviousHashStore implements PreviousHashStore {
|
|
11
|
-
static readonly DefaultNamespace = "xyo-previous-hash-store";
|
|
12
|
-
static readonly DefaultStorageType: Storage;
|
|
13
|
-
private _namespace;
|
|
14
|
-
private _storage;
|
|
15
|
-
private _type;
|
|
16
|
-
constructor(opts?: StoragePreviousHashOpts);
|
|
17
|
-
get namespace(): string;
|
|
18
|
-
get type(): Storage;
|
|
19
|
-
private get storage();
|
|
20
|
-
getItem(address: XyoAddress): Promise<Hash | null>;
|
|
21
|
-
removeItem(address: XyoAddress): Promise<void>;
|
|
22
|
-
setItem(address: XyoAddress, previousHash: Hash): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=StoragePreviousHashStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePreviousHashStore.d.ts","sourceRoot":"","sources":["../../src/StoragePreviousHashStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,OAAO,GAAG,WAAW,CAAA;AAEjC,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,6BAA4B;IAC5D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAU;IACrD,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,KAAK,CAAuD;gBAExD,IAAI,CAAC,EAAE,uBAAuB;IAM1C,IAAI,SAAS,WAEZ;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,OAAO,KAAK,OAAO,GAGlB;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAIlD,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
|
package/dist/browser/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA"}
|
package/dist/browser/index.mjs
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
// src/NamespacedStorage.ts
|
|
2
|
-
var InMemoryBackend = class {
|
|
3
|
-
data = /* @__PURE__ */ new Map();
|
|
4
|
-
get(key) {
|
|
5
|
-
return this.data.get(key) ?? null;
|
|
6
|
-
}
|
|
7
|
-
remove(key) {
|
|
8
|
-
this.data.delete(key);
|
|
9
|
-
}
|
|
10
|
-
set(key, value) {
|
|
11
|
-
this.data.set(key, value);
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
var WebStorageBackend = class {
|
|
15
|
-
storage;
|
|
16
|
-
constructor(storage) {
|
|
17
|
-
this.storage = storage;
|
|
18
|
-
}
|
|
19
|
-
get(key) {
|
|
20
|
-
return this.storage.getItem(key);
|
|
21
|
-
}
|
|
22
|
-
remove(key) {
|
|
23
|
-
this.storage.removeItem(key);
|
|
24
|
-
}
|
|
25
|
-
set(key, value) {
|
|
26
|
-
this.storage.setItem(key, value);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var pageBackend = new InMemoryBackend();
|
|
30
|
-
var localBackend;
|
|
31
|
-
var sessionBackend;
|
|
32
|
-
function getBackend(area) {
|
|
33
|
-
if (area === "page") return pageBackend;
|
|
34
|
-
const g = globalThis;
|
|
35
|
-
if (area === "local") {
|
|
36
|
-
if (localBackend) return localBackend;
|
|
37
|
-
localBackend = g.localStorage ? new WebStorageBackend(g.localStorage) : new InMemoryBackend();
|
|
38
|
-
return localBackend;
|
|
39
|
-
}
|
|
40
|
-
if (sessionBackend) return sessionBackend;
|
|
41
|
-
sessionBackend = g.sessionStorage ? new WebStorageBackend(g.sessionStorage) : new InMemoryBackend();
|
|
42
|
-
return sessionBackend;
|
|
43
|
-
}
|
|
44
|
-
var NamespacedStorage = class {
|
|
45
|
-
backend;
|
|
46
|
-
prefix;
|
|
47
|
-
constructor(area, namespace) {
|
|
48
|
-
this.backend = getBackend(area);
|
|
49
|
-
this.prefix = `${namespace}.`;
|
|
50
|
-
}
|
|
51
|
-
get(key) {
|
|
52
|
-
const raw = this.backend.get(this.prefix + key);
|
|
53
|
-
if (raw === null) return void 0;
|
|
54
|
-
try {
|
|
55
|
-
return JSON.parse(raw);
|
|
56
|
-
} catch {
|
|
57
|
-
return void 0;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
remove(key) {
|
|
61
|
-
this.backend.remove(this.prefix + key);
|
|
62
|
-
}
|
|
63
|
-
set(key, value) {
|
|
64
|
-
this.backend.set(this.prefix + key, JSON.stringify(value));
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/StoragePreviousHashStore.ts
|
|
69
|
-
var StoragePreviousHashStore = class _StoragePreviousHashStore {
|
|
70
|
-
static DefaultNamespace = "xyo-previous-hash-store";
|
|
71
|
-
static DefaultStorageType = "local";
|
|
72
|
-
_namespace = _StoragePreviousHashStore.DefaultNamespace;
|
|
73
|
-
_storage;
|
|
74
|
-
_type = _StoragePreviousHashStore.DefaultStorageType;
|
|
75
|
-
constructor(opts) {
|
|
76
|
-
if (opts?.namespace) this._namespace = opts.namespace;
|
|
77
|
-
if (opts?.type) this._type = opts.type;
|
|
78
|
-
this._storage = new NamespacedStorage(this.type, this.namespace);
|
|
79
|
-
}
|
|
80
|
-
get namespace() {
|
|
81
|
-
return this._namespace;
|
|
82
|
-
}
|
|
83
|
-
get type() {
|
|
84
|
-
return this._type;
|
|
85
|
-
}
|
|
86
|
-
get storage() {
|
|
87
|
-
this._storage ??= new NamespacedStorage(this.type, this.namespace);
|
|
88
|
-
return this._storage;
|
|
89
|
-
}
|
|
90
|
-
async getItem(address) {
|
|
91
|
-
return this.storage.get(address) ?? null;
|
|
92
|
-
}
|
|
93
|
-
async removeItem(address) {
|
|
94
|
-
this.storage.remove(address);
|
|
95
|
-
}
|
|
96
|
-
async setItem(address, previousHash) {
|
|
97
|
-
this.storage.set(address, previousHash);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
export {
|
|
101
|
-
NamespacedStorage,
|
|
102
|
-
StoragePreviousHashStore
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/NamespacedStorage.ts", "../../src/StoragePreviousHashStore.ts"],
|
|
4
|
-
"sourcesContent": ["export type StorageArea = 'local' | 'session' | 'page'\n\ninterface SyncStorageBackend {\n get(key: string): string | null\n remove(key: string): void\n set(key: string, value: string): void\n}\n\nclass InMemoryBackend implements SyncStorageBackend {\n private readonly data = new Map<string, string>()\n get(key: string): string | null {\n return this.data.get(key) ?? null\n }\n\n remove(key: string): void {\n this.data.delete(key)\n }\n\n set(key: string, value: string): void {\n this.data.set(key, value)\n }\n}\n\ninterface WebStorageLike {\n getItem(key: string): string | null\n removeItem(key: string): void\n setItem(key: string, value: string): void\n}\n\nclass WebStorageBackend implements SyncStorageBackend {\n private readonly storage: WebStorageLike\n constructor(storage: WebStorageLike) {\n this.storage = storage\n }\n\n get(key: string): string | null {\n return this.storage.getItem(key)\n }\n\n remove(key: string): void {\n this.storage.removeItem(key)\n }\n\n set(key: string, value: string): void {\n this.storage.setItem(key, value)\n }\n}\n\nconst pageBackend = new InMemoryBackend()\nlet localBackend: SyncStorageBackend | undefined\nlet sessionBackend: SyncStorageBackend | undefined\n\nfunction getBackend(area: StorageArea): SyncStorageBackend {\n if (area === 'page') return pageBackend\n const g = globalThis as unknown as { localStorage?: WebStorageLike; sessionStorage?: WebStorageLike }\n if (area === 'local') {\n if (localBackend) return localBackend\n localBackend = g.localStorage ? new WebStorageBackend(g.localStorage) : new InMemoryBackend()\n return localBackend\n }\n if (sessionBackend) return sessionBackend\n sessionBackend = g.sessionStorage ? new WebStorageBackend(g.sessionStorage) : new InMemoryBackend()\n return sessionBackend\n}\n\nexport class NamespacedStorage<T> {\n private readonly backend: SyncStorageBackend\n private readonly prefix: string\n\n constructor(area: StorageArea, namespace: string) {\n this.backend = getBackend(area)\n this.prefix = `${namespace}.`\n }\n\n get(key: string): T | undefined {\n const raw = this.backend.get(this.prefix + key)\n if (raw === null) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n }\n\n remove(key: string): void {\n this.backend.remove(this.prefix + key)\n }\n\n set(key: string, value: T): void {\n this.backend.set(this.prefix + key, JSON.stringify(value))\n }\n}\n", "import type { Hash } from '@xylabs/sdk-js'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { StorageArea } from './NamespacedStorage.ts'\nimport { NamespacedStorage } from './NamespacedStorage.ts'\n\nexport type Storage = StorageArea\n\nexport interface StoragePreviousHashOpts {\n namespace?: string\n type?: Storage\n}\n\nexport class StoragePreviousHashStore implements PreviousHashStore {\n static readonly DefaultNamespace = 'xyo-previous-hash-store'\n static readonly DefaultStorageType: Storage = 'local'\n private _namespace = StoragePreviousHashStore.DefaultNamespace\n private _storage: NamespacedStorage<Hash> | undefined\n private _type: Storage = StoragePreviousHashStore.DefaultStorageType\n\n constructor(opts?: StoragePreviousHashOpts) {\n if (opts?.namespace) this._namespace = opts.namespace\n if (opts?.type) this._type = opts.type\n this._storage = new NamespacedStorage<Hash>(this.type, this.namespace)\n }\n\n get namespace() {\n return this._namespace\n }\n\n get type(): Storage {\n return this._type\n }\n\n private get storage(): NamespacedStorage<Hash> {\n this._storage ??= new NamespacedStorage<Hash>(this.type, this.namespace)\n return this._storage\n }\n\n async getItem(address: XyoAddress): Promise<Hash | null> {\n return this.storage.get(address) ?? null\n }\n\n async removeItem(address: XyoAddress): Promise<void> {\n this.storage.remove(address)\n }\n\n async setItem(address: XyoAddress, previousHash: Hash): Promise<void> {\n this.storage.set(address, previousHash)\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type StorageArea = 'local' | 'session' | 'page';
|
|
2
|
-
export declare class NamespacedStorage<T> {
|
|
3
|
-
private readonly backend;
|
|
4
|
-
private readonly prefix;
|
|
5
|
-
constructor(area: StorageArea, namespace: string);
|
|
6
|
-
get(key: string): T | undefined;
|
|
7
|
-
remove(key: string): void;
|
|
8
|
-
set(key: string, value: T): void;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=NamespacedStorage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NamespacedStorage.d.ts","sourceRoot":"","sources":["../../src/NamespacedStorage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAiEtD,qBAAa,iBAAiB,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;IAKhD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAU/B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAGjC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Hash } from '@xylabs/sdk-js';
|
|
2
|
-
import type { XyoAddress } from '@xyo-network/address';
|
|
3
|
-
import type { PreviousHashStore } from '@xyo-network/previous-hash-store-model';
|
|
4
|
-
import type { StorageArea } from './NamespacedStorage.ts';
|
|
5
|
-
export type Storage = StorageArea;
|
|
6
|
-
export interface StoragePreviousHashOpts {
|
|
7
|
-
namespace?: string;
|
|
8
|
-
type?: Storage;
|
|
9
|
-
}
|
|
10
|
-
export declare class StoragePreviousHashStore implements PreviousHashStore {
|
|
11
|
-
static readonly DefaultNamespace = "xyo-previous-hash-store";
|
|
12
|
-
static readonly DefaultStorageType: Storage;
|
|
13
|
-
private _namespace;
|
|
14
|
-
private _storage;
|
|
15
|
-
private _type;
|
|
16
|
-
constructor(opts?: StoragePreviousHashOpts);
|
|
17
|
-
get namespace(): string;
|
|
18
|
-
get type(): Storage;
|
|
19
|
-
private get storage();
|
|
20
|
-
getItem(address: XyoAddress): Promise<Hash | null>;
|
|
21
|
-
removeItem(address: XyoAddress): Promise<void>;
|
|
22
|
-
setItem(address: XyoAddress, previousHash: Hash): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=StoragePreviousHashStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePreviousHashStore.d.ts","sourceRoot":"","sources":["../../src/StoragePreviousHashStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,OAAO,GAAG,WAAW,CAAA;AAEjC,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,6BAA4B;IAC5D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAU;IACrD,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,KAAK,CAAuD;gBAExD,IAAI,CAAC,EAAE,uBAAuB;IAM1C,IAAI,SAAS,WAEZ;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,OAAO,KAAK,OAAO,GAGlB;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAIlD,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE"}
|
package/dist/node/index.d.ts
DELETED
package/dist/node/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA"}
|
package/dist/node/index.mjs
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
// src/NamespacedStorage.ts
|
|
2
|
-
var InMemoryBackend = class {
|
|
3
|
-
data = /* @__PURE__ */ new Map();
|
|
4
|
-
get(key) {
|
|
5
|
-
return this.data.get(key) ?? null;
|
|
6
|
-
}
|
|
7
|
-
remove(key) {
|
|
8
|
-
this.data.delete(key);
|
|
9
|
-
}
|
|
10
|
-
set(key, value) {
|
|
11
|
-
this.data.set(key, value);
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
var WebStorageBackend = class {
|
|
15
|
-
storage;
|
|
16
|
-
constructor(storage) {
|
|
17
|
-
this.storage = storage;
|
|
18
|
-
}
|
|
19
|
-
get(key) {
|
|
20
|
-
return this.storage.getItem(key);
|
|
21
|
-
}
|
|
22
|
-
remove(key) {
|
|
23
|
-
this.storage.removeItem(key);
|
|
24
|
-
}
|
|
25
|
-
set(key, value) {
|
|
26
|
-
this.storage.setItem(key, value);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var pageBackend = new InMemoryBackend();
|
|
30
|
-
var localBackend;
|
|
31
|
-
var sessionBackend;
|
|
32
|
-
function getBackend(area) {
|
|
33
|
-
if (area === "page") return pageBackend;
|
|
34
|
-
const g = globalThis;
|
|
35
|
-
if (area === "local") {
|
|
36
|
-
if (localBackend) return localBackend;
|
|
37
|
-
localBackend = g.localStorage ? new WebStorageBackend(g.localStorage) : new InMemoryBackend();
|
|
38
|
-
return localBackend;
|
|
39
|
-
}
|
|
40
|
-
if (sessionBackend) return sessionBackend;
|
|
41
|
-
sessionBackend = g.sessionStorage ? new WebStorageBackend(g.sessionStorage) : new InMemoryBackend();
|
|
42
|
-
return sessionBackend;
|
|
43
|
-
}
|
|
44
|
-
var NamespacedStorage = class {
|
|
45
|
-
backend;
|
|
46
|
-
prefix;
|
|
47
|
-
constructor(area, namespace) {
|
|
48
|
-
this.backend = getBackend(area);
|
|
49
|
-
this.prefix = `${namespace}.`;
|
|
50
|
-
}
|
|
51
|
-
get(key) {
|
|
52
|
-
const raw = this.backend.get(this.prefix + key);
|
|
53
|
-
if (raw === null) return void 0;
|
|
54
|
-
try {
|
|
55
|
-
return JSON.parse(raw);
|
|
56
|
-
} catch {
|
|
57
|
-
return void 0;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
remove(key) {
|
|
61
|
-
this.backend.remove(this.prefix + key);
|
|
62
|
-
}
|
|
63
|
-
set(key, value) {
|
|
64
|
-
this.backend.set(this.prefix + key, JSON.stringify(value));
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/StoragePreviousHashStore.ts
|
|
69
|
-
var StoragePreviousHashStore = class _StoragePreviousHashStore {
|
|
70
|
-
static DefaultNamespace = "xyo-previous-hash-store";
|
|
71
|
-
static DefaultStorageType = "local";
|
|
72
|
-
_namespace = _StoragePreviousHashStore.DefaultNamespace;
|
|
73
|
-
_storage;
|
|
74
|
-
_type = _StoragePreviousHashStore.DefaultStorageType;
|
|
75
|
-
constructor(opts) {
|
|
76
|
-
if (opts?.namespace) this._namespace = opts.namespace;
|
|
77
|
-
if (opts?.type) this._type = opts.type;
|
|
78
|
-
this._storage = new NamespacedStorage(this.type, this.namespace);
|
|
79
|
-
}
|
|
80
|
-
get namespace() {
|
|
81
|
-
return this._namespace;
|
|
82
|
-
}
|
|
83
|
-
get type() {
|
|
84
|
-
return this._type;
|
|
85
|
-
}
|
|
86
|
-
get storage() {
|
|
87
|
-
this._storage ??= new NamespacedStorage(this.type, this.namespace);
|
|
88
|
-
return this._storage;
|
|
89
|
-
}
|
|
90
|
-
async getItem(address) {
|
|
91
|
-
return this.storage.get(address) ?? null;
|
|
92
|
-
}
|
|
93
|
-
async removeItem(address) {
|
|
94
|
-
this.storage.remove(address);
|
|
95
|
-
}
|
|
96
|
-
async setItem(address, previousHash) {
|
|
97
|
-
this.storage.set(address, previousHash);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
export {
|
|
101
|
-
NamespacedStorage,
|
|
102
|
-
StoragePreviousHashStore
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/node/index.mjs.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/NamespacedStorage.ts", "../../src/StoragePreviousHashStore.ts"],
|
|
4
|
-
"sourcesContent": ["export type StorageArea = 'local' | 'session' | 'page'\n\ninterface SyncStorageBackend {\n get(key: string): string | null\n remove(key: string): void\n set(key: string, value: string): void\n}\n\nclass InMemoryBackend implements SyncStorageBackend {\n private readonly data = new Map<string, string>()\n get(key: string): string | null {\n return this.data.get(key) ?? null\n }\n\n remove(key: string): void {\n this.data.delete(key)\n }\n\n set(key: string, value: string): void {\n this.data.set(key, value)\n }\n}\n\ninterface WebStorageLike {\n getItem(key: string): string | null\n removeItem(key: string): void\n setItem(key: string, value: string): void\n}\n\nclass WebStorageBackend implements SyncStorageBackend {\n private readonly storage: WebStorageLike\n constructor(storage: WebStorageLike) {\n this.storage = storage\n }\n\n get(key: string): string | null {\n return this.storage.getItem(key)\n }\n\n remove(key: string): void {\n this.storage.removeItem(key)\n }\n\n set(key: string, value: string): void {\n this.storage.setItem(key, value)\n }\n}\n\nconst pageBackend = new InMemoryBackend()\nlet localBackend: SyncStorageBackend | undefined\nlet sessionBackend: SyncStorageBackend | undefined\n\nfunction getBackend(area: StorageArea): SyncStorageBackend {\n if (area === 'page') return pageBackend\n const g = globalThis as unknown as { localStorage?: WebStorageLike; sessionStorage?: WebStorageLike }\n if (area === 'local') {\n if (localBackend) return localBackend\n localBackend = g.localStorage ? new WebStorageBackend(g.localStorage) : new InMemoryBackend()\n return localBackend\n }\n if (sessionBackend) return sessionBackend\n sessionBackend = g.sessionStorage ? new WebStorageBackend(g.sessionStorage) : new InMemoryBackend()\n return sessionBackend\n}\n\nexport class NamespacedStorage<T> {\n private readonly backend: SyncStorageBackend\n private readonly prefix: string\n\n constructor(area: StorageArea, namespace: string) {\n this.backend = getBackend(area)\n this.prefix = `${namespace}.`\n }\n\n get(key: string): T | undefined {\n const raw = this.backend.get(this.prefix + key)\n if (raw === null) return undefined\n try {\n return JSON.parse(raw) as T\n } catch {\n return undefined\n }\n }\n\n remove(key: string): void {\n this.backend.remove(this.prefix + key)\n }\n\n set(key: string, value: T): void {\n this.backend.set(this.prefix + key, JSON.stringify(value))\n }\n}\n", "import type { Hash } from '@xylabs/sdk-js'\nimport type { XyoAddress } from '@xyo-network/address'\nimport type { PreviousHashStore } from '@xyo-network/previous-hash-store-model'\n\nimport type { StorageArea } from './NamespacedStorage.ts'\nimport { NamespacedStorage } from './NamespacedStorage.ts'\n\nexport type Storage = StorageArea\n\nexport interface StoragePreviousHashOpts {\n namespace?: string\n type?: Storage\n}\n\nexport class StoragePreviousHashStore implements PreviousHashStore {\n static readonly DefaultNamespace = 'xyo-previous-hash-store'\n static readonly DefaultStorageType: Storage = 'local'\n private _namespace = StoragePreviousHashStore.DefaultNamespace\n private _storage: NamespacedStorage<Hash> | undefined\n private _type: Storage = StoragePreviousHashStore.DefaultStorageType\n\n constructor(opts?: StoragePreviousHashOpts) {\n if (opts?.namespace) this._namespace = opts.namespace\n if (opts?.type) this._type = opts.type\n this._storage = new NamespacedStorage<Hash>(this.type, this.namespace)\n }\n\n get namespace() {\n return this._namespace\n }\n\n get type(): Storage {\n return this._type\n }\n\n private get storage(): NamespacedStorage<Hash> {\n this._storage ??= new NamespacedStorage<Hash>(this.type, this.namespace)\n return this._storage\n }\n\n async getItem(address: XyoAddress): Promise<Hash | null> {\n return this.storage.get(address) ?? null\n }\n\n async removeItem(address: XyoAddress): Promise<void> {\n this.storage.remove(address)\n }\n\n async setItem(address: XyoAddress, previousHash: Hash): Promise<void> {\n this.storage.set(address, previousHash)\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|