@xyo-network/react-standard-node 2.47.45 → 2.47.47
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/cjs/lib/Builders/MemoryNodeBuilder.js +10 -7
- package/dist/cjs/lib/Builders/MemoryNodeBuilder.js.map +1 -1
- package/dist/cjs/lib/Builders/SentinelBuilder.js +1 -1
- package/dist/cjs/lib/Builders/SentinelBuilder.js.map +1 -1
- package/dist/docs.json +1174 -473
- package/dist/esm/lib/Builders/MemoryNodeBuilder.js +8 -7
- package/dist/esm/lib/Builders/MemoryNodeBuilder.js.map +1 -1
- package/dist/esm/lib/Builders/SentinelBuilder.js +2 -5
- package/dist/esm/lib/Builders/SentinelBuilder.js.map +1 -1
- package/dist/types/lib/Builders/MemoryNodeBuilder.d.ts +3 -2
- package/dist/types/lib/Builders/MemoryNodeBuilder.d.ts.map +1 -1
- package/dist/types/lib/Builders/SentinelBuilder.d.ts +3 -7
- package/dist/types/lib/Builders/SentinelBuilder.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/lib/Builders/MemoryNodeBuilder.ts +12 -8
- package/src/lib/Builders/SentinelBuilder.ts +4 -12
|
@@ -14,13 +14,7 @@ export class MemoryNodeBuilder {
|
|
|
14
14
|
}
|
|
15
15
|
static async create({ name, node }, account) {
|
|
16
16
|
const instance = new this();
|
|
17
|
-
|
|
18
|
-
if (node) {
|
|
19
|
-
memoryNode = node;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
memoryNode = await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } });
|
|
23
|
-
}
|
|
17
|
+
const memoryNode = node ?? (await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } }));
|
|
24
18
|
instance._node = memoryNode;
|
|
25
19
|
instance._wrappedNode = NodeWrapper.wrap(memoryNode);
|
|
26
20
|
return instance;
|
|
@@ -52,6 +46,7 @@ export class MemoryNodeBuilder {
|
|
|
52
46
|
const witness = await witnesses?.[index]?.();
|
|
53
47
|
if (witness) {
|
|
54
48
|
try {
|
|
49
|
+
await this.witnessCleanup(witness);
|
|
55
50
|
await this.node.register(witness);
|
|
56
51
|
await this.node.attach(witness.address, true);
|
|
57
52
|
}
|
|
@@ -77,5 +72,11 @@ export class MemoryNodeBuilder {
|
|
|
77
72
|
throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`);
|
|
78
73
|
}
|
|
79
74
|
}
|
|
75
|
+
async witnessCleanup(witness) {
|
|
76
|
+
if ((await this.wrappedNode.registered()).includes(witness.address)) {
|
|
77
|
+
const [existingWitness] = await this.wrappedNode.resolve({ address: [witness.address] });
|
|
78
|
+
await this.node.unregister(existingWitness);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
80
81
|
}
|
|
81
82
|
//# sourceMappingURL=MemoryNodeBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNodeBuilder.js","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAExE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"MemoryNodeBuilder.js","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assertDefinedEx } from '@xyo-network/react-shared';
|
|
2
|
-
import { MemorySentinel
|
|
2
|
+
import { MemorySentinel } from '@xyo-network/sentinel';
|
|
3
3
|
export class SentinelBuilder {
|
|
4
4
|
config;
|
|
5
5
|
account;
|
|
@@ -24,10 +24,7 @@ export class SentinelBuilder {
|
|
|
24
24
|
buildParams() {
|
|
25
25
|
return {
|
|
26
26
|
account: this.account,
|
|
27
|
-
config:
|
|
28
|
-
...this.config,
|
|
29
|
-
schema: SentinelConfigSchema,
|
|
30
|
-
},
|
|
27
|
+
config: this.config,
|
|
31
28
|
};
|
|
32
29
|
}
|
|
33
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelBuilder.js","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"SentinelBuilder.js","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAkC,MAAM,uBAAuB,CAAA;AAEtF,MAAM,OAAO,eAAe;IAGI;IAAgC;IAFtD,SAAS,CAA4B;IAE7C,YAA8B,MAAsB,EAAU,OAAwB;QAAxD,WAAM,GAAN,MAAM,CAAgB;QAAU,YAAO,GAAP,OAAO,CAAiB;QACpF,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,wCAAwC,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAsB,EAAE,OAAwB;QAClE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC1C,QAAQ,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QACnD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAmB,CAAA;IAChE,CAAC;IAEO,WAAW;QACjB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
2
2
|
import { MemoryNode, NodeWrapper } from '@xyo-network/node';
|
|
3
3
|
import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin';
|
|
4
|
+
import { SentinelConfig } from '@xyo-network/sentinel';
|
|
4
5
|
import { WitnessModule } from '@xyo-network/witness';
|
|
5
|
-
import { SentinelBuilderConfig } from './SentinelBuilder';
|
|
6
6
|
interface MemoryNodeBuilderConfig {
|
|
7
7
|
name?: string;
|
|
8
8
|
node?: MemoryNode;
|
|
@@ -44,7 +44,7 @@ export declare class MemoryNodeBuilder {
|
|
|
44
44
|
static create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder>;
|
|
45
45
|
addArchivist(account: AccountInstance, moduleName: string, namespace: string): Promise<void>;
|
|
46
46
|
addBridge(apiDomain: string): Promise<void>;
|
|
47
|
-
addSentinel(config:
|
|
47
|
+
addSentinel(config: SentinelConfig, account: AccountInstance): Promise<import("@xyo-network/sentinel").MemorySentinel<import("@xyo-network/sentinel").MemorySentinelParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
48
48
|
name?: string | undefined;
|
|
49
49
|
paging?: Record<string, {
|
|
50
50
|
size?: number | undefined;
|
|
@@ -93,6 +93,7 @@ export declare class MemoryNodeBuilder {
|
|
|
93
93
|
}, "schema">>, import("@xyo-network/sentinel").SentinelModuleEventData>>;
|
|
94
94
|
addWitnesses(pluginSetResolver: PayloadSetPluginResolver, witnesses?: (() => Promise<WitnessModule>)[]): Promise<void>;
|
|
95
95
|
private attach;
|
|
96
|
+
private witnessCleanup;
|
|
96
97
|
}
|
|
97
98
|
export {};
|
|
98
99
|
//# sourceMappingURL=MemoryNodeBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,UAAU,EAAoB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MemoryNodeBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/MemoryNodeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,UAAU,EAAoB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAKpD,UAAU,uBAAuB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,YAAY,CAAyB;IAE7C,IAAI,IAAI,8GAEP;IAED,IAAI,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAEd;WAEY,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAS7G,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO5E,SAAS,CAAC,SAAS,EAAE,MAAM;IAW3B,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM5D,YAAY,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,GAAE,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,EAAO;YAkBlG,MAAM;YAgBN,cAAc;CAM7B"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
2
|
-
import { MemorySentinel } from '@xyo-network/sentinel';
|
|
3
|
-
export interface SentinelBuilderConfig {
|
|
4
|
-
name: string;
|
|
5
|
-
witnesses: string[];
|
|
6
|
-
}
|
|
2
|
+
import { MemorySentinel, SentinelConfig } from '@xyo-network/sentinel';
|
|
7
3
|
export declare class SentinelBuilder {
|
|
8
4
|
private config;
|
|
9
5
|
private account;
|
|
10
6
|
private _sentinel;
|
|
11
|
-
protected constructor(config:
|
|
7
|
+
protected constructor(config: SentinelConfig, account: AccountInstance);
|
|
12
8
|
get sentinel(): MemorySentinel<import("@xyo-network/sentinel").MemorySentinelParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
13
9
|
name?: string | undefined;
|
|
14
10
|
paging?: Record<string, {
|
|
@@ -56,7 +52,7 @@ export declare class SentinelBuilder {
|
|
|
56
52
|
}, "schema">, "schema"> & {
|
|
57
53
|
schema: string;
|
|
58
54
|
}, "schema">>, import("@xyo-network/sentinel").SentinelModuleEventData>;
|
|
59
|
-
static create(config:
|
|
55
|
+
static create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder>;
|
|
60
56
|
buildSentinel(): Promise<MemorySentinel<import("@xyo-network/sentinel").MemorySentinelParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
61
57
|
name?: string | undefined;
|
|
62
58
|
paging?: Record<string, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"SentinelBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/Builders/SentinelBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAA;AAEtF,qBAAa,eAAe;IAGJ,OAAO,CAAC,MAAM;IAAkB,OAAO,CAAC,OAAO;IAFrE,OAAO,CAAC,SAAS,CAA4B;IAE7C,SAAS,aAAqB,MAAM,EAAE,cAAc,EAAU,OAAO,EAAE,eAAe;IAItF,IAAI,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAEX;WAEY,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAMzF,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKnB,OAAO,CAAC,WAAW;CAMpB"}
|
package/package.json
CHANGED
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"@xyo-network/node": "^2.54.7",
|
|
19
19
|
"@xyo-network/payloadset-plugin": "^2.54.7",
|
|
20
20
|
"@xyo-network/protocol": "^2.54.7",
|
|
21
|
-
"@xyo-network/react-network": "^2.47.
|
|
22
|
-
"@xyo-network/react-node": "^2.47.
|
|
23
|
-
"@xyo-network/react-shared": "^2.47.
|
|
24
|
-
"@xyo-network/react-wallet": "^2.47.
|
|
21
|
+
"@xyo-network/react-network": "^2.47.47",
|
|
22
|
+
"@xyo-network/react-node": "^2.47.47",
|
|
23
|
+
"@xyo-network/react-shared": "^2.47.47",
|
|
24
|
+
"@xyo-network/react-wallet": "^2.47.47",
|
|
25
25
|
"@xyo-network/sentinel": "^2.54.7",
|
|
26
26
|
"@xyo-network/witness": "^2.54.7"
|
|
27
27
|
},
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
},
|
|
85
85
|
"sideEffects": false,
|
|
86
86
|
"types": "dist/types/index.d.ts",
|
|
87
|
-
"version": "2.47.
|
|
87
|
+
"version": "2.47.47"
|
|
88
88
|
}
|
|
@@ -4,9 +4,10 @@ import { Module } from '@xyo-network/module'
|
|
|
4
4
|
import { MemoryNode, NodeConfigSchema, NodeWrapper } from '@xyo-network/node'
|
|
5
5
|
import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
|
|
6
6
|
import { assertDefinedEx } from '@xyo-network/react-shared'
|
|
7
|
+
import { SentinelConfig } from '@xyo-network/sentinel'
|
|
7
8
|
import { WitnessModule } from '@xyo-network/witness'
|
|
8
9
|
|
|
9
|
-
import { SentinelBuilder
|
|
10
|
+
import { SentinelBuilder } from './SentinelBuilder'
|
|
10
11
|
import { StorageArchivistBuilder } from './StorageArchivistBuilder'
|
|
11
12
|
|
|
12
13
|
interface MemoryNodeBuilderConfig {
|
|
@@ -29,12 +30,7 @@ export class MemoryNodeBuilder {
|
|
|
29
30
|
static async create({ name, node }: MemoryNodeBuilderConfig, account?: AccountInstance): Promise<MemoryNodeBuilder> {
|
|
30
31
|
const instance = new this()
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
if (node) {
|
|
34
|
-
memoryNode = node
|
|
35
|
-
} else {
|
|
36
|
-
memoryNode = await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } })
|
|
37
|
-
}
|
|
33
|
+
const memoryNode: MemoryNode = node ?? (await MemoryNode.create({ account, config: { name, schema: NodeConfigSchema } }))
|
|
38
34
|
instance._node = memoryNode
|
|
39
35
|
instance._wrappedNode = NodeWrapper.wrap(memoryNode)
|
|
40
36
|
return instance
|
|
@@ -58,7 +54,7 @@ export class MemoryNodeBuilder {
|
|
|
58
54
|
}
|
|
59
55
|
}
|
|
60
56
|
|
|
61
|
-
async addSentinel(config:
|
|
57
|
+
async addSentinel(config: SentinelConfig, account: AccountInstance) {
|
|
62
58
|
const { sentinel } = await SentinelBuilder.create(config, account)
|
|
63
59
|
await this.attach(sentinel, true, true)
|
|
64
60
|
return sentinel
|
|
@@ -71,6 +67,7 @@ export class MemoryNodeBuilder {
|
|
|
71
67
|
const witness = await witnesses?.[index]?.()
|
|
72
68
|
if (witness) {
|
|
73
69
|
try {
|
|
70
|
+
await this.witnessCleanup(witness)
|
|
74
71
|
await this.node.register(witness)
|
|
75
72
|
await this.node.attach(witness.address, true)
|
|
76
73
|
} catch (e) {
|
|
@@ -96,4 +93,11 @@ export class MemoryNodeBuilder {
|
|
|
96
93
|
throw Error(`Error adding ${module.config.name ?? module.address} to MemoryNode: ${e}`)
|
|
97
94
|
}
|
|
98
95
|
}
|
|
96
|
+
|
|
97
|
+
private async witnessCleanup(witness: WitnessModule) {
|
|
98
|
+
if ((await this.wrappedNode.registered()).includes(witness.address)) {
|
|
99
|
+
const [existingWitness] = await this.wrappedNode.resolve({ address: [witness.address] })
|
|
100
|
+
await this.node.unregister(existingWitness)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
99
103
|
}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
2
|
import { assertDefinedEx } from '@xyo-network/react-shared'
|
|
3
|
-
import { MemorySentinel,
|
|
4
|
-
|
|
5
|
-
export interface SentinelBuilderConfig {
|
|
6
|
-
name: string
|
|
7
|
-
witnesses: string[]
|
|
8
|
-
}
|
|
3
|
+
import { MemorySentinel, SentinelConfig, SentinelParams } from '@xyo-network/sentinel'
|
|
9
4
|
|
|
10
5
|
export class SentinelBuilder {
|
|
11
6
|
private _sentinel: MemorySentinel | undefined
|
|
12
7
|
|
|
13
|
-
protected constructor(private config:
|
|
8
|
+
protected constructor(private config: SentinelConfig, private account: AccountInstance) {
|
|
14
9
|
assertDefinedEx(config, 'config was not defined')
|
|
15
10
|
}
|
|
16
11
|
|
|
@@ -18,7 +13,7 @@ export class SentinelBuilder {
|
|
|
18
13
|
return assertDefinedEx(this._sentinel, 'this._sentinel not defined upon create')
|
|
19
14
|
}
|
|
20
15
|
|
|
21
|
-
static async create(config:
|
|
16
|
+
static async create(config: SentinelConfig, account: AccountInstance): Promise<SentinelBuilder> {
|
|
22
17
|
const instance = new this(config, account)
|
|
23
18
|
instance._sentinel = await instance.buildSentinel()
|
|
24
19
|
return instance
|
|
@@ -32,10 +27,7 @@ export class SentinelBuilder {
|
|
|
32
27
|
private buildParams(): SentinelParams {
|
|
33
28
|
return {
|
|
34
29
|
account: this.account,
|
|
35
|
-
config:
|
|
36
|
-
...this.config,
|
|
37
|
-
schema: SentinelConfigSchema,
|
|
38
|
-
},
|
|
30
|
+
config: this.config,
|
|
39
31
|
}
|
|
40
32
|
}
|
|
41
33
|
}
|