@xyo-network/archivist 2.36.3 → 2.36.5

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,3 +1,4 @@
1
+ import { XyoAccount } from '@xyo-network/account';
1
2
  import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
3
  import { XyoPayload } from '@xyo-network/payload';
3
4
  import { PromisableArray } from '@xyo-network/promise';
@@ -13,15 +14,22 @@ export declare type XyoStorageArchivistConfig = XyoArchivistConfig<{
13
14
  namespace?: string;
14
15
  maxEntries?: number;
15
16
  maxEntrySize?: number;
17
+ persistAccount?: boolean;
16
18
  }>;
17
19
  export declare class XyoStorageArchivist extends XyoArchivist<XyoStorageArchivistConfig> {
18
20
  get type(): "local" | "session" | "page";
19
21
  get namespace(): string;
20
22
  get maxEntries(): number;
21
23
  get maxEntrySize(): number;
24
+ get persistAccount(): boolean;
22
25
  queries(): string[];
23
- private storage;
26
+ private _storage;
27
+ private get storage();
28
+ private _privateStorage;
29
+ private get privateStorage();
24
30
  constructor(config?: PartialArchivistConfig<XyoStorageArchivistConfig>);
31
+ protected loadAccount(): XyoAccount;
32
+ protected saveAccount(): void;
25
33
  delete(hashes: string[]): PromisableArray<boolean>;
26
34
  clear(): void | Promise<void>;
27
35
  get(hashes: string[]): Promise<(XyoPayload | null)[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"XyoStorageArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoStorageArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAkB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAItD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAUxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,oBAAY,+BAA+B,GAAG,6CAA6C,CAAA;AAC3F,eAAO,MAAM,+BAA+B,EAAE,+BAA+E,CAAA;AAE7H,oBAAY,yBAAyB,GAAG,kBAAkB,CAAC;IACzD,MAAM,EAAE,+BAA+B,CAAA;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAQF,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IAC9E,IAAW,IAAI,iCAEd;IAED,IAAW,SAAS,WAEnB;IAED,IAAW,UAAU,WAEpB;IAED,IAAW,YAAY,WAEtB;IAEe,OAAO;IAWvB,OAAO,CAAC,OAAO,CAAW;gBAEd,MAAM,CAAC,EAAE,sBAAsB,CAAC,yBAAyB,CAAC;IAKtD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAYlD,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAShC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAcrD,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAuBjD,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAehE,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC;IAS5B,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CA2B3D"}
1
+ {"version":3,"file":"XyoStorageArchivist.d.ts","sourceRoot":"","sources":["../../src/XyoStorageArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAkB,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAItD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAUxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,oBAAY,+BAA+B,GAAG,6CAA6C,CAAA;AAC3F,eAAO,MAAM,+BAA+B,EAAE,+BAA+E,CAAA;AAE7H,oBAAY,yBAAyB,GAAG,kBAAkB,CAAC;IACzD,MAAM,EAAE,+BAA+B,CAAA;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAC,CAAA;AAQF,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IAC9E,IAAW,IAAI,iCAEd;IAED,IAAW,SAAS,WAEnB;IAED,IAAW,UAAU,WAEpB;IAED,IAAW,YAAY,WAEtB;IAED,IAAW,cAAc,YAExB;IAEe,OAAO;IAYvB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,KAAK,OAAO,GAGlB;IAGD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,KAAK,cAAc,GAGzB;gBAEW,MAAM,CAAC,EAAE,sBAAsB,CAAC,yBAAyB,CAAC;cAKnD,WAAW;IAe9B,SAAS,CAAC,WAAW;IAML,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;IAYlD,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAShC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAcrD,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAuBjD,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAehE,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC;IAS5B,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CA2B3D"}
@@ -1,4 +1,5 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
+ import { XyoAccount } from '@xyo-network/account';
2
3
  import { PayloadWrapper } from '@xyo-network/payload';
3
4
  import compact from 'lodash/compact';
4
5
  import store from 'store2';
@@ -15,7 +16,7 @@ export class XyoStorageArchivist extends XyoArchivist {
15
16
  return this.config?.type ?? 'local';
16
17
  }
17
18
  get namespace() {
18
- return this.config?.namespace ?? 'xyoarch';
19
+ return this.config?.namespace ?? 'xyo-archivist';
19
20
  }
20
21
  get maxEntries() {
21
22
  return this.config?.maxEntries ?? 1000;
@@ -23,6 +24,9 @@ export class XyoStorageArchivist extends XyoArchivist {
23
24
  get maxEntrySize() {
24
25
  return this.config?.maxEntries ?? 16000;
25
26
  }
27
+ get persistAccount() {
28
+ return this.config?.persistAccount ?? false;
29
+ }
26
30
  queries() {
27
31
  return [
28
32
  XyoArchivistAllQuerySchema,
@@ -33,10 +37,41 @@ export class XyoStorageArchivist extends XyoArchivist {
33
37
  ...super.queries(),
34
38
  ];
35
39
  }
36
- storage;
40
+ /* This has to be a getter so that it can access it during construction */
41
+ _storage;
42
+ get storage() {
43
+ this._storage = this._storage ?? store[this.type].namespace(this.namespace);
44
+ return this._storage;
45
+ }
46
+ /* This has to be a getter so that it can access it during construction */
47
+ _privateStorage;
48
+ get privateStorage() {
49
+ this._privateStorage = this._storage ?? store[this.type].namespace(`${this.namespace}|private`);
50
+ return this._privateStorage;
51
+ }
37
52
  constructor(config) {
38
53
  super({ ...config, schema: XyoStorageArchivistConfigSchema });
39
- this.storage = store[this.type].namespace(this.namespace);
54
+ this.saveAccount();
55
+ }
56
+ loadAccount() {
57
+ if (this.persistAccount) {
58
+ const privateKey = this.privateStorage.get('privateKey');
59
+ if (privateKey) {
60
+ try {
61
+ return new XyoAccount({ privateKey });
62
+ }
63
+ catch {
64
+ console.error(`Error reading Account from storage [${this.type}] - Recreating Account`);
65
+ this.privateStorage.remove('privateKey');
66
+ }
67
+ }
68
+ }
69
+ return super.loadAccount();
70
+ }
71
+ saveAccount() {
72
+ if (this.persistAccount) {
73
+ this.privateStorage.set('privateKey', this.account.private.hex);
74
+ }
40
75
  }
41
76
  delete(hashes) {
42
77
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"XyoStorageArchivist.js","sourceRoot":"","sources":["../../src/XyoStorageArchivist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XyoStorageArchivist.js","sourceRoot":"","sources":["../../src/XyoStorageArchivist.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -10,11 +10,11 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@xylabs/assert": "^2.6.9",
13
- "@xyo-network/account": "^2.36.3",
14
- "@xyo-network/boundwitness": "^2.36.3",
15
- "@xyo-network/module": "^2.36.3",
16
- "@xyo-network/payload": "^2.36.3",
17
- "@xyo-network/promise": "^2.36.3",
13
+ "@xyo-network/account": "^2.36.5",
14
+ "@xyo-network/boundwitness": "^2.36.5",
15
+ "@xyo-network/module": "^2.36.5",
16
+ "@xyo-network/payload": "^2.36.5",
17
+ "@xyo-network/promise": "^2.36.5",
18
18
  "js-cookie": "^3.0.1",
19
19
  "lodash": "^4.17.21",
20
20
  "lru-cache": "^7.14.0",
@@ -58,5 +58,5 @@
58
58
  },
59
59
  "sideEffects": false,
60
60
  "types": "dist/esm/index.d.ts",
61
- "version": "2.36.3"
61
+ "version": "2.36.5"
62
62
  }
@@ -12,3 +12,10 @@ testArchivistRoundTrip(new XyoStorageArchivist({ namespace: 'test', type: 'page'
12
12
  testArchivistAll(new XyoStorageArchivist({ namespace: 'test', type: 'local' }), 'local')
13
13
  testArchivistAll(new XyoStorageArchivist({ namespace: 'test', type: 'session' }), 'session')
14
14
  testArchivistAll(new XyoStorageArchivist({ namespace: 'test', type: 'page' }), 'page')
15
+
16
+ test('XyoArchivist Private Key Save', () => {
17
+ const storage = new XyoStorageArchivist({ namespace: 'test', persistAccount: true, type: 'local' })
18
+ const address = storage.address
19
+ const storage2 = new XyoStorageArchivist({ namespace: 'test', persistAccount: true, type: 'local' })
20
+ expect(storage2.address).toBe(address)
21
+ })
@@ -1,4 +1,5 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
+ import { XyoAccount } from '@xyo-network/account'
2
3
  import { XyoBoundWitness } from '@xyo-network/boundwitness'
3
4
  import { PayloadWrapper, XyoPayload } from '@xyo-network/payload'
4
5
  import { PromisableArray } from '@xyo-network/promise'
@@ -28,6 +29,7 @@ export type XyoStorageArchivistConfig = XyoArchivistConfig<{
28
29
  namespace?: string
29
30
  maxEntries?: number
30
31
  maxEntrySize?: number
32
+ persistAccount?: boolean
31
33
  }>
32
34
 
33
35
  class StorageArchivistError extends Error {
@@ -42,7 +44,7 @@ export class XyoStorageArchivist extends XyoArchivist<XyoStorageArchivistConfig>
42
44
  }
43
45
 
44
46
  public get namespace() {
45
- return this.config?.namespace ?? 'xyoarch'
47
+ return this.config?.namespace ?? 'xyo-archivist'
46
48
  }
47
49
 
48
50
  public get maxEntries() {
@@ -53,6 +55,10 @@ export class XyoStorageArchivist extends XyoArchivist<XyoStorageArchivistConfig>
53
55
  return this.config?.maxEntries ?? 16000
54
56
  }
55
57
 
58
+ public get persistAccount() {
59
+ return this.config?.persistAccount ?? false
60
+ }
61
+
56
62
  public override queries() {
57
63
  return [
58
64
  XyoArchivistAllQuerySchema,
@@ -64,11 +70,44 @@ export class XyoStorageArchivist extends XyoArchivist<XyoStorageArchivistConfig>
64
70
  ]
65
71
  }
66
72
 
67
- private storage: StoreBase
73
+ /* This has to be a getter so that it can access it during construction */
74
+ private _storage: StoreBase | undefined
75
+ private get storage(): StoreBase {
76
+ this._storage = this._storage ?? store[this.type].namespace(this.namespace)
77
+ return this._storage
78
+ }
79
+
80
+ /* This has to be a getter so that it can access it during construction */
81
+ private _privateStorage: StoreBase | undefined
82
+ private get privateStorage(): StoreBase {
83
+ this._privateStorage = this._storage ?? store[this.type].namespace(`${this.namespace}|private`)
84
+ return this._privateStorage
85
+ }
68
86
 
69
87
  constructor(config?: PartialArchivistConfig<XyoStorageArchivistConfig>) {
70
88
  super({ ...config, schema: XyoStorageArchivistConfigSchema })
71
- this.storage = store[this.type].namespace(this.namespace)
89
+ this.saveAccount()
90
+ }
91
+
92
+ protected override loadAccount() {
93
+ if (this.persistAccount) {
94
+ const privateKey = this.privateStorage.get('privateKey')
95
+ if (privateKey) {
96
+ try {
97
+ return new XyoAccount({ privateKey })
98
+ } catch {
99
+ console.error(`Error reading Account from storage [${this.type}] - Recreating Account`)
100
+ this.privateStorage.remove('privateKey')
101
+ }
102
+ }
103
+ }
104
+ return super.loadAccount()
105
+ }
106
+
107
+ protected saveAccount() {
108
+ if (this.persistAccount) {
109
+ this.privateStorage.set('privateKey', this.account.private.hex)
110
+ }
72
111
  }
73
112
 
74
113
  public override delete(hashes: string[]): PromisableArray<boolean> {