@xyo-network/sentinel 2.49.4 → 2.50.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/dist/cjs/AbstractSentinel.js +4 -18
- package/dist/cjs/AbstractSentinel.js.map +1 -1
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/SentinelRunner.js +1 -1
- package/dist/cjs/SentinelRunner.js.map +1 -1
- package/dist/cjs/Wrapper.js +40 -0
- package/dist/cjs/Wrapper.js.map +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +9648 -11044
- package/dist/esm/AbstractSentinel.js +4 -15
- package/dist/esm/AbstractSentinel.js.map +1 -1
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/SentinelRunner.js +1 -1
- package/dist/esm/SentinelRunner.js.map +1 -1
- package/dist/esm/Wrapper.js +31 -0
- package/dist/esm/Wrapper.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/AbstractSentinel.d.ts +3 -5
- package/dist/types/AbstractSentinel.d.ts.map +1 -1
- package/dist/types/Config.d.ts +0 -6
- package/dist/types/Config.d.ts.map +1 -1
- package/dist/types/SentinelModel.d.ts +3 -6
- package/dist/types/SentinelModel.d.ts.map +1 -1
- package/dist/types/SentinelRunner.d.ts +1 -2
- package/dist/types/SentinelRunner.d.ts.map +1 -1
- package/dist/types/Wrapper.d.ts +13 -0
- package/dist/types/Wrapper.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/AbstractSentinel.ts +19 -25
- package/src/Config.ts +0 -6
- package/src/SentinelModel.ts +3 -5
- package/src/SentinelRunner.ts +2 -3
- package/src/Wrapper.ts +39 -0
- package/src/index.ts +1 -0
|
@@ -43,8 +43,7 @@ export class AbstractSentinel extends ArchivingModule {
|
|
|
43
43
|
try {
|
|
44
44
|
switch (typedQuery.schemaName) {
|
|
45
45
|
case SentinelReportQuerySchema: {
|
|
46
|
-
|
|
47
|
-
resultPayloads.push(...(reportResult[0], reportResult[1]));
|
|
46
|
+
resultPayloads.push(...(await this.report(payloads)));
|
|
48
47
|
break;
|
|
49
48
|
}
|
|
50
49
|
default:
|
|
@@ -67,7 +66,7 @@ export class AbstractSentinel extends ArchivingModule {
|
|
|
67
66
|
}
|
|
68
67
|
async report(payloads = []) {
|
|
69
68
|
const errors = [];
|
|
70
|
-
this.
|
|
69
|
+
this.params?.onReportStart?.();
|
|
71
70
|
const allWitnesses = [...(await this.getWitnesses())];
|
|
72
71
|
const allPayloads = [];
|
|
73
72
|
try {
|
|
@@ -80,18 +79,8 @@ export class AbstractSentinel extends ArchivingModule {
|
|
|
80
79
|
}
|
|
81
80
|
const [newBoundWitness] = await this.bindResult(allPayloads);
|
|
82
81
|
this.history.push(assertEx(newBoundWitness));
|
|
83
|
-
this.
|
|
84
|
-
return [newBoundWitness, allPayloads];
|
|
85
|
-
}
|
|
86
|
-
async tryReport(payloads = []) {
|
|
87
|
-
try {
|
|
88
|
-
return await this.report(payloads);
|
|
89
|
-
}
|
|
90
|
-
catch (ex) {
|
|
91
|
-
const error = ex;
|
|
92
|
-
this.logger?.warn(`report failed [${error.message}]`);
|
|
93
|
-
return [null, []];
|
|
94
|
-
}
|
|
82
|
+
this.params?.onReportEnd?.(newBoundWitness, errors.length > 0 ? errors : undefined);
|
|
83
|
+
return [newBoundWitness, ...allPayloads];
|
|
95
84
|
}
|
|
96
85
|
async generatePayloads(witnesses) {
|
|
97
86
|
return (await Promise.all(witnesses?.map(async (witness) => await witness.observe()))).flat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAqB,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAiD,wBAAwB,EAAE,eAAe,EAAwB,MAAM,qBAAqB,CAAA;AAEpJ,OAAO,EAAmB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,IAAI,MAAM,aAAa,CAAA;AAG9B,OAAO,EAAiB,yBAAyB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,oBAAoB,GAAyB,2BAA2B,CAAA"}
|
|
@@ -78,7 +78,7 @@ export class SentinelRunner {
|
|
|
78
78
|
await this.remove(wrapper.hash, false);
|
|
79
79
|
wrapper.next();
|
|
80
80
|
await this.add(wrapper.payload, false);
|
|
81
|
-
const triggerResult = await this.sentinel.
|
|
81
|
+
const triggerResult = await this.sentinel.report();
|
|
82
82
|
this.onTriggerResult?.(triggerResult);
|
|
83
83
|
await this.start();
|
|
84
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelRunner.js","sourceRoot":"","sources":["../../src/SentinelRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"SentinelRunner.js","sourceRoot":"","sources":["../../src/SentinelRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
2
|
+
import { ModuleWrapper } from '@xyo-network/module';
|
|
3
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
4
|
+
import { SentinelReportQuerySchema } from './Queries';
|
|
5
|
+
export class SentinelWrapper extends ModuleWrapper {
|
|
6
|
+
static requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries];
|
|
7
|
+
constructor(module, account) {
|
|
8
|
+
super(module, account);
|
|
9
|
+
assertEx(module.queries.includes(SentinelReportQuerySchema));
|
|
10
|
+
}
|
|
11
|
+
static tryWrap(module, account) {
|
|
12
|
+
if (module) {
|
|
13
|
+
const missingRequiredQueries = this.missingRequiredQueries(module);
|
|
14
|
+
if (missingRequiredQueries.length > 0) {
|
|
15
|
+
console.warn(`Missing queries: ${JSON.stringify(missingRequiredQueries, null, 2)}`);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return new SentinelWrapper(module, account);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
static wrap(module, account) {
|
|
23
|
+
return assertEx(this.tryWrap(module, account), 'Unable to wrap module as DivinerWrapper');
|
|
24
|
+
}
|
|
25
|
+
async report(payloads) {
|
|
26
|
+
const queryPayload = PayloadWrapper.parse({ schema: SentinelReportQuerySchema });
|
|
27
|
+
const result = await this.sendQuery(queryPayload, payloads);
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAuB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAG1E,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,MAAM,CAAU,eAAe,GAAG,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;IAEvF,YAAY,MAAc,EAAE,OAAiB;QAC3C,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,CAAU,OAAO,CAAC,MAAe,EAAE,OAAiB;QACxD,IAAI,MAAM,EAAE;YACV,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAClE,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;aACpF;iBAAM;gBACL,OAAO,IAAI,eAAe,CAAC,MAAwB,EAAE,OAAO,CAAC,CAAA;aAC9D;SACF;IACH,CAAC;IAED,MAAM,CAAU,IAAI,CAAC,MAAe,EAAE,OAAiB;QACrD,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,yCAAyC,CAAC,CAAA;IAC3F,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAuB;QAClC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAsB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAA;QACrG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3D,OAAO,MAAM,CAAA;IACf,CAAC"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA"}
|
|
@@ -6,14 +6,13 @@ import { XyoPayload } from '@xyo-network/payload-model';
|
|
|
6
6
|
import { WitnessWrapper } from '@xyo-network/witness';
|
|
7
7
|
import { SentinelConfig, SentinelConfigSchema } from './Config';
|
|
8
8
|
import { SentinelModule } from './SentinelModel';
|
|
9
|
-
export type
|
|
9
|
+
export type AbstractSentinelParams<TConfig extends SentinelConfig = SentinelConfig> = ModuleParams<TConfig, {
|
|
10
10
|
onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void;
|
|
11
11
|
onReportStart?: () => void;
|
|
12
12
|
onWitnessReportEnd?: (witness: WitnessWrapper, error?: Error) => void;
|
|
13
13
|
onWitnessReportStart?: (witness: WitnessWrapper) => void;
|
|
14
|
-
schema: SentinelConfigSchema;
|
|
15
14
|
}>;
|
|
16
|
-
export declare class AbstractSentinel<
|
|
15
|
+
export declare class AbstractSentinel<TParams extends AbstractSentinelParams = AbstractSentinelParams> extends ArchivingModule<TParams> implements SentinelModule<TParams['config']> {
|
|
17
16
|
static configSchema: SentinelConfigSchema;
|
|
18
17
|
history: XyoBoundWitness[];
|
|
19
18
|
private _archivists;
|
|
@@ -26,8 +25,7 @@ export declare class AbstractSentinel<TConfig extends SentinelConfig = SentinelC
|
|
|
26
25
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
27
26
|
removeArchivist(address: string[]): void;
|
|
28
27
|
removeWitness(address: string[]): void;
|
|
29
|
-
report(payloads?: XyoPayload[]): Promise<
|
|
30
|
-
tryReport(payloads?: XyoPayload[]): Promise<[XyoBoundWitness | null, XyoPayload[]]>;
|
|
28
|
+
report(payloads?: XyoPayload[]): Promise<XyoPayload[]>;
|
|
31
29
|
private generatePayloads;
|
|
32
30
|
}
|
|
33
31
|
//# sourceMappingURL=AbstractSentinel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAA6C,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAmB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAItE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,MAAM,sBAAsB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAA6C,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAmB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAItE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI,YAAY,CAChG,OAAO,EACP;IACE,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;IACxE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACrE,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CACzD,CACF,CAAA;AAED,qBAAa,gBAAgB,CAAC,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,CAC3F,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAgB,YAAY,EAAE,oBAAoB,CAAA;IAElD,OAAO,EAAE,eAAe,EAAE,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAA8B;IAEhD,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAKtB,aAAa;IAQb,YAAY;IAQH,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EACrH,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,UAAU,EAAE,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IAsB7B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAKjC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IAKzB,MAAM,CAAC,QAAQ,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAoBlD,gBAAgB;CAG/B"}
|
package/dist/types/Config.d.ts
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import { ArchivingModuleConfig } from '@xyo-network/archivist';
|
|
2
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
2
|
import { ModuleConfig } from '@xyo-network/module';
|
|
4
3
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
5
|
-
import { WitnessModule } from '@xyo-network/witness';
|
|
6
4
|
export type SentinelConfigSchema = 'network.xyo.node.sentinel';
|
|
7
5
|
export declare const SentinelConfigSchema: SentinelConfigSchema;
|
|
8
6
|
export type SentinelConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfig<ArchivingModuleConfig & {
|
|
9
|
-
onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void;
|
|
10
|
-
onReportStart?: () => void;
|
|
11
|
-
onWitnessReportEnd?: (witness: WitnessModule, error?: Error) => void;
|
|
12
|
-
onWitnessReportStart?: (witness: WitnessModule) => void;
|
|
13
7
|
witnesses?: string[];
|
|
14
8
|
} & TConfig>;
|
|
15
9
|
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,CAAA;AAC9D,eAAO,MAAM,oBAAoB,EAAE,oBAAkD,CAAA;AAErF,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,IAAI,YAAY,CAChF,qBAAqB,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,GAAG,OAAO,CACZ,CAAA"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
|
|
1
|
+
import { Module } from '@xyo-network/module';
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
4
3
|
import { Promisable } from '@xyo-network/promise';
|
|
5
4
|
import { SentinelConfig } from './Config';
|
|
6
5
|
export interface Sentinel {
|
|
7
|
-
report: (payloads?: XyoPayload[]) => Promisable<
|
|
8
|
-
tryReport: (payloads?: XyoPayload[]) => Promisable<[XyoBoundWitness | null, XyoPayload[]]>;
|
|
9
|
-
}
|
|
10
|
-
export interface SentinelModule<TConfig extends SentinelConfig = SentinelConfig> extends ArchivingModule<TConfig>, Sentinel {
|
|
6
|
+
report: (payloads?: XyoPayload[]) => Promisable<XyoPayload[]>;
|
|
11
7
|
}
|
|
8
|
+
export type SentinelModule<TConfig extends SentinelConfig = SentinelConfig> = Module<TConfig> & Sentinel;
|
|
12
9
|
//# sourceMappingURL=SentinelModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelModel.d.ts","sourceRoot":"","sources":["../../src/SentinelModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SentinelModel.d.ts","sourceRoot":"","sources":["../../src/SentinelModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;CAC9D;AAED,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload-model';
|
|
4
3
|
import { SentinelAutomationPayload } from './Automation';
|
|
5
4
|
import { SentinelModule } from './SentinelModel';
|
|
6
|
-
export type OnSentinelRunnerTriggerResult = (result:
|
|
5
|
+
export type OnSentinelRunnerTriggerResult = (result: XyoPayload[]) => void;
|
|
7
6
|
export declare class SentinelRunner {
|
|
8
7
|
protected _automations: Record<string, SentinelAutomationPayload>;
|
|
9
8
|
protected onTriggerResult: OnSentinelRunnerTriggerResult | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelRunner.d.ts","sourceRoot":"","sources":["../../src/SentinelRunner.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SentinelRunner.d.ts","sourceRoot":"","sources":["../../src/SentinelRunner.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAGvD,OAAO,EAAE,yBAAyB,EAAqC,MAAM,cAAc,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,MAAM,6BAA6B,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAA;AAE1E,qBAAa,cAAc;IACzB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAK;IACtE,SAAS,CAAC,eAAe,EAAE,6BAA6B,GAAG,SAAS,CAAA;IACpE,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAA;IAClC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAA;gBAEtB,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,yBAAyB,EAAE,EAAE,eAAe,CAAC,EAAE,6BAA6B;IAMhI,IAAI,WAAW,8CAEd;IAED,OAAO,KAAK,IAAI,GAMf;IAEK,GAAG,CAAC,UAAU,EAAE,yBAAyB,EAAE,OAAO,UAAO;IAO/D,IAAI,CAAC,IAAI,EAAE,MAAM;IAIX,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAO;IAKzC,SAAS;IAKH,OAAO;IAKP,KAAK;IAoBX,IAAI;IAOE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,yBAAyB,EAAE,OAAO,UAAO;YAMlE,OAAO;CAStB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Account } from '@xyo-network/account';
|
|
2
|
+
import { ModuleWrapper } from '@xyo-network/module';
|
|
3
|
+
import { Module } from '@xyo-network/module-model';
|
|
4
|
+
import { XyoPayload } from '@xyo-network/payload-model';
|
|
5
|
+
import { Sentinel } from './SentinelModel';
|
|
6
|
+
export declare class SentinelWrapper extends ModuleWrapper implements Sentinel {
|
|
7
|
+
static requiredQueries: string[];
|
|
8
|
+
constructor(module: Module, account?: Account);
|
|
9
|
+
static tryWrap(module?: Module, account?: Account): SentinelWrapper | undefined;
|
|
10
|
+
static wrap(module?: Module, account?: Account): SentinelWrapper;
|
|
11
|
+
report(payloads?: XyoPayload[]): Promise<XyoPayload[]>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAIvD,OAAO,EAAE,QAAQ,EAAkB,MAAM,iBAAiB,CAAA;AAE1D,qBAAa,eAAgB,SAAQ,aAAc,YAAW,QAAQ;IACpE,OAAgB,eAAe,WAAwD;gBAE3E,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;WAK7B,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS;WAWxE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe;IAInE,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAK7D"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.7.4",
|
|
14
|
-
"@xyo-network/account": "^2.
|
|
15
|
-
"@xyo-network/archivist": "^2.
|
|
16
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
17
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
18
|
-
"@xyo-network/core": "^2.
|
|
19
|
-
"@xyo-network/module": "^2.
|
|
20
|
-
"@xyo-network/module-model": "^2.
|
|
21
|
-
"@xyo-network/payload-model": "^2.
|
|
22
|
-
"@xyo-network/payload-wrapper": "^2.
|
|
23
|
-
"@xyo-network/promise": "^2.
|
|
24
|
-
"@xyo-network/witness": "^2.
|
|
14
|
+
"@xyo-network/account": "^2.50.0",
|
|
15
|
+
"@xyo-network/archivist": "^2.50.0",
|
|
16
|
+
"@xyo-network/archivist-wrapper": "^2.50.0",
|
|
17
|
+
"@xyo-network/boundwitness-model": "^2.50.0",
|
|
18
|
+
"@xyo-network/core": "^2.50.0",
|
|
19
|
+
"@xyo-network/module": "^2.50.0",
|
|
20
|
+
"@xyo-network/module-model": "^2.50.0",
|
|
21
|
+
"@xyo-network/payload-model": "^2.50.0",
|
|
22
|
+
"@xyo-network/payload-wrapper": "^2.50.0",
|
|
23
|
+
"@xyo-network/promise": "^2.50.0",
|
|
24
|
+
"@xyo-network/witness": "^2.50.0",
|
|
25
25
|
"lodash": "^4.17.21"
|
|
26
26
|
},
|
|
27
27
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
},
|
|
64
64
|
"sideEffects": false,
|
|
65
65
|
"types": "dist/types/index.d.ts",
|
|
66
|
-
"version": "2.
|
|
66
|
+
"version": "2.50.0"
|
|
67
67
|
}
|
package/src/AbstractSentinel.ts
CHANGED
|
@@ -13,15 +13,20 @@ import { SentinelConfig, SentinelConfigSchema } from './Config'
|
|
|
13
13
|
import { SentinelQuery, SentinelReportQuerySchema } from './Queries'
|
|
14
14
|
import { SentinelModule } from './SentinelModel'
|
|
15
15
|
|
|
16
|
-
export type
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
export type AbstractSentinelParams<TConfig extends SentinelConfig = SentinelConfig> = ModuleParams<
|
|
17
|
+
TConfig,
|
|
18
|
+
{
|
|
19
|
+
onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void
|
|
20
|
+
onReportStart?: () => void
|
|
21
|
+
onWitnessReportEnd?: (witness: WitnessWrapper, error?: Error) => void
|
|
22
|
+
onWitnessReportStart?: (witness: WitnessWrapper) => void
|
|
23
|
+
}
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
export class AbstractSentinel<TParams extends AbstractSentinelParams = AbstractSentinelParams>
|
|
27
|
+
extends ArchivingModule<TParams>
|
|
28
|
+
implements SentinelModule<TParams['config']>
|
|
29
|
+
{
|
|
25
30
|
static override configSchema: SentinelConfigSchema
|
|
26
31
|
|
|
27
32
|
history: XyoBoundWitness[] = []
|
|
@@ -70,8 +75,7 @@ export class AbstractSentinel<TConfig extends SentinelConfig = SentinelConfig> e
|
|
|
70
75
|
try {
|
|
71
76
|
switch (typedQuery.schemaName) {
|
|
72
77
|
case SentinelReportQuerySchema: {
|
|
73
|
-
|
|
74
|
-
resultPayloads.push(...(reportResult[0], reportResult[1]))
|
|
78
|
+
resultPayloads.push(...(await this.report(payloads)))
|
|
75
79
|
break
|
|
76
80
|
}
|
|
77
81
|
default:
|
|
@@ -94,9 +98,9 @@ export class AbstractSentinel<TConfig extends SentinelConfig = SentinelConfig> e
|
|
|
94
98
|
this._witnesses = undefined
|
|
95
99
|
}
|
|
96
100
|
|
|
97
|
-
async report(payloads: XyoPayload[] = []): Promise<
|
|
101
|
+
async report(payloads: XyoPayload[] = []): Promise<XyoPayload[]> {
|
|
98
102
|
const errors: Error[] = []
|
|
99
|
-
this.
|
|
103
|
+
this.params?.onReportStart?.()
|
|
100
104
|
const allWitnesses = [...(await this.getWitnesses())]
|
|
101
105
|
const allPayloads: XyoPayload[] = []
|
|
102
106
|
|
|
@@ -110,18 +114,8 @@ export class AbstractSentinel<TConfig extends SentinelConfig = SentinelConfig> e
|
|
|
110
114
|
|
|
111
115
|
const [newBoundWitness] = await this.bindResult(allPayloads)
|
|
112
116
|
this.history.push(assertEx(newBoundWitness))
|
|
113
|
-
this.
|
|
114
|
-
return [newBoundWitness, allPayloads]
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
async tryReport(payloads: XyoPayload[] = []): Promise<[XyoBoundWitness | null, XyoPayload[]]> {
|
|
118
|
-
try {
|
|
119
|
-
return await this.report(payloads)
|
|
120
|
-
} catch (ex) {
|
|
121
|
-
const error = ex as Error
|
|
122
|
-
this.logger?.warn(`report failed [${error.message}]`)
|
|
123
|
-
return [null, []]
|
|
124
|
-
}
|
|
117
|
+
this.params?.onReportEnd?.(newBoundWitness, errors.length > 0 ? errors : undefined)
|
|
118
|
+
return [newBoundWitness, ...allPayloads]
|
|
125
119
|
}
|
|
126
120
|
|
|
127
121
|
private async generatePayloads(witnesses: WitnessWrapper[]): Promise<XyoPayload[]> {
|
package/src/Config.ts
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { ArchivingModuleConfig } from '@xyo-network/archivist'
|
|
2
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
|
|
3
2
|
import { ModuleConfig } from '@xyo-network/module'
|
|
4
3
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
5
|
-
import { WitnessModule } from '@xyo-network/witness'
|
|
6
4
|
|
|
7
5
|
export type SentinelConfigSchema = 'network.xyo.node.sentinel'
|
|
8
6
|
export const SentinelConfigSchema: SentinelConfigSchema = 'network.xyo.node.sentinel'
|
|
9
7
|
|
|
10
8
|
export type SentinelConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfig<
|
|
11
9
|
ArchivingModuleConfig & {
|
|
12
|
-
onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void
|
|
13
|
-
onReportStart?: () => void
|
|
14
|
-
onWitnessReportEnd?: (witness: WitnessModule, error?: Error) => void
|
|
15
|
-
onWitnessReportStart?: (witness: WitnessModule) => void
|
|
16
10
|
witnesses?: string[]
|
|
17
11
|
} & TConfig
|
|
18
12
|
>
|
package/src/SentinelModel.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
|
|
1
|
+
import { Module } from '@xyo-network/module'
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
4
3
|
import { Promisable } from '@xyo-network/promise'
|
|
5
4
|
|
|
6
5
|
import { SentinelConfig } from './Config'
|
|
7
6
|
|
|
8
7
|
export interface Sentinel {
|
|
9
|
-
report: (payloads?: XyoPayload[]) => Promisable<
|
|
10
|
-
tryReport: (payloads?: XyoPayload[]) => Promisable<[XyoBoundWitness | null, XyoPayload[]]>
|
|
8
|
+
report: (payloads?: XyoPayload[]) => Promisable<XyoPayload[]>
|
|
11
9
|
}
|
|
12
10
|
|
|
13
|
-
export
|
|
11
|
+
export type SentinelModule<TConfig extends SentinelConfig = SentinelConfig> = Module<TConfig> & Sentinel
|
package/src/SentinelRunner.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
|
|
3
2
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
4
3
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
5
4
|
|
|
@@ -7,7 +6,7 @@ import { SentinelAutomationPayload, SentinelIntervalAutomationPayload } from './
|
|
|
7
6
|
import { SentinelIntervalAutomationWrapper } from './SentinelIntervalAutomationWrapper'
|
|
8
7
|
import { SentinelModule } from './SentinelModel'
|
|
9
8
|
|
|
10
|
-
export type OnSentinelRunnerTriggerResult = (result:
|
|
9
|
+
export type OnSentinelRunnerTriggerResult = (result: XyoPayload[]) => void
|
|
11
10
|
|
|
12
11
|
export class SentinelRunner {
|
|
13
12
|
protected _automations: Record<string, SentinelAutomationPayload> = {}
|
|
@@ -97,7 +96,7 @@ export class SentinelRunner {
|
|
|
97
96
|
await this.remove(wrapper.hash, false)
|
|
98
97
|
wrapper.next()
|
|
99
98
|
await this.add(wrapper.payload, false)
|
|
100
|
-
const triggerResult = await this.sentinel.
|
|
99
|
+
const triggerResult = await this.sentinel.report()
|
|
101
100
|
this.onTriggerResult?.(triggerResult)
|
|
102
101
|
await this.start()
|
|
103
102
|
}
|
package/src/Wrapper.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { Account } from '@xyo-network/account'
|
|
3
|
+
import { ModuleWrapper } from '@xyo-network/module'
|
|
4
|
+
import { Module } from '@xyo-network/module-model'
|
|
5
|
+
import { XyoPayload } from '@xyo-network/payload-model'
|
|
6
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper'
|
|
7
|
+
|
|
8
|
+
import { SentinelReportQuery, SentinelReportQuerySchema } from './Queries'
|
|
9
|
+
import { Sentinel, SentinelModule } from './SentinelModel'
|
|
10
|
+
|
|
11
|
+
export class SentinelWrapper extends ModuleWrapper implements Sentinel {
|
|
12
|
+
static override requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries]
|
|
13
|
+
|
|
14
|
+
constructor(module: Module, account?: Account) {
|
|
15
|
+
super(module, account)
|
|
16
|
+
assertEx(module.queries.includes(SentinelReportQuerySchema))
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static override tryWrap(module?: Module, account?: Account): SentinelWrapper | undefined {
|
|
20
|
+
if (module) {
|
|
21
|
+
const missingRequiredQueries = this.missingRequiredQueries(module)
|
|
22
|
+
if (missingRequiredQueries.length > 0) {
|
|
23
|
+
console.warn(`Missing queries: ${JSON.stringify(missingRequiredQueries, null, 2)}`)
|
|
24
|
+
} else {
|
|
25
|
+
return new SentinelWrapper(module as SentinelModule, account)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static override wrap(module?: Module, account?: Account): SentinelWrapper {
|
|
31
|
+
return assertEx(this.tryWrap(module, account), 'Unable to wrap module as DivinerWrapper')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async report(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
|
|
35
|
+
const queryPayload = PayloadWrapper.parse<SentinelReportQuery>({ schema: SentinelReportQuerySchema })
|
|
36
|
+
const result = await this.sendQuery(queryPayload, payloads)
|
|
37
|
+
return result
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/index.ts
CHANGED