@xyo-network/sentinel 2.75.13 → 2.75.15
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/browser/AbstractSentinel.cjs +6 -30
- package/dist/browser/AbstractSentinel.cjs.map +1 -1
- package/dist/browser/AbstractSentinel.d.cts +4 -8
- package/dist/browser/AbstractSentinel.d.cts.map +1 -1
- package/dist/browser/AbstractSentinel.d.mts +4 -8
- package/dist/browser/AbstractSentinel.d.mts.map +1 -1
- package/dist/browser/AbstractSentinel.d.ts +4 -8
- package/dist/browser/AbstractSentinel.d.ts.map +1 -1
- package/dist/browser/AbstractSentinel.js +3 -27
- package/dist/browser/AbstractSentinel.js.map +1 -1
- package/dist/browser/MemorySentinel.cjs +7 -31
- package/dist/browser/MemorySentinel.cjs.map +1 -1
- package/dist/browser/MemorySentinel.d.cts +1 -1
- package/dist/browser/MemorySentinel.d.cts.map +1 -1
- package/dist/browser/MemorySentinel.d.mts +1 -1
- package/dist/browser/MemorySentinel.d.mts.map +1 -1
- package/dist/browser/MemorySentinel.d.ts +1 -1
- package/dist/browser/MemorySentinel.d.ts.map +1 -1
- package/dist/browser/MemorySentinel.js +4 -28
- package/dist/browser/MemorySentinel.js.map +1 -1
- package/dist/browser/Wrapper.cjs +3 -3
- package/dist/browser/Wrapper.cjs.map +1 -1
- package/dist/browser/Wrapper.d.cts +3 -3
- package/dist/browser/Wrapper.d.cts.map +1 -1
- package/dist/browser/Wrapper.d.mts +3 -3
- package/dist/browser/Wrapper.d.mts.map +1 -1
- package/dist/browser/Wrapper.d.ts +3 -3
- package/dist/browser/Wrapper.d.ts.map +1 -1
- package/dist/browser/Wrapper.js +1 -1
- package/dist/browser/Wrapper.js.map +1 -1
- package/dist/browser/index.cjs +10 -34
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +5 -29
- package/dist/browser/index.js.map +1 -1
- package/dist/docs.json +7814 -11998
- package/dist/node/AbstractSentinel.d.cts +4 -8
- package/dist/node/AbstractSentinel.d.cts.map +1 -1
- package/dist/node/AbstractSentinel.d.mts +4 -8
- package/dist/node/AbstractSentinel.d.mts.map +1 -1
- package/dist/node/AbstractSentinel.d.ts +4 -8
- package/dist/node/AbstractSentinel.d.ts.map +1 -1
- package/dist/node/AbstractSentinel.js +6 -32
- package/dist/node/AbstractSentinel.js.map +1 -1
- package/dist/node/AbstractSentinel.mjs +3 -29
- package/dist/node/AbstractSentinel.mjs.map +1 -1
- package/dist/node/MemorySentinel.d.cts +1 -1
- package/dist/node/MemorySentinel.d.cts.map +1 -1
- package/dist/node/MemorySentinel.d.mts +1 -1
- package/dist/node/MemorySentinel.d.mts.map +1 -1
- package/dist/node/MemorySentinel.d.ts +1 -1
- package/dist/node/MemorySentinel.d.ts.map +1 -1
- package/dist/node/MemorySentinel.js +7 -33
- package/dist/node/MemorySentinel.js.map +1 -1
- package/dist/node/MemorySentinel.mjs +4 -30
- package/dist/node/MemorySentinel.mjs.map +1 -1
- package/dist/node/Wrapper.d.cts +3 -3
- package/dist/node/Wrapper.d.cts.map +1 -1
- package/dist/node/Wrapper.d.mts +3 -3
- package/dist/node/Wrapper.d.mts.map +1 -1
- package/dist/node/Wrapper.d.ts +3 -3
- package/dist/node/Wrapper.d.ts.map +1 -1
- package/dist/node/Wrapper.js +3 -3
- package/dist/node/Wrapper.js.map +1 -1
- package/dist/node/Wrapper.mjs +1 -1
- package/dist/node/Wrapper.mjs.map +1 -1
- package/dist/node/index.js +10 -36
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +5 -31
- package/dist/node/index.mjs.map +1 -1
- package/package.json +26 -23
- package/src/AbstractSentinel.ts +5 -39
- package/src/MemorySentinel.ts +3 -3
- package/src/Wrapper.ts +2 -2
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { AbstractArchivingModule } from '@xyo-network/archivist';
|
|
2
1
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
|
|
3
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
4
|
-
import {
|
|
3
|
+
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
4
|
+
import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model';
|
|
5
5
|
import { Payload } from '@xyo-network/payload-model';
|
|
6
6
|
import { CustomSentinelInstance, SentinelInstance, SentinelModuleEventData, SentinelParams, SentinelQueryBase } from '@xyo-network/sentinel-model';
|
|
7
|
-
import { WitnessInstance } from '@xyo-network/witness';
|
|
8
|
-
export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends
|
|
7
|
+
import { WitnessInstance } from '@xyo-network/witness-model';
|
|
8
|
+
export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends AbstractModuleInstance<TParams, TEventData> implements CustomSentinelInstance<TParams, TEventData> {
|
|
9
9
|
history: BoundWitness[];
|
|
10
10
|
get queries(): string[];
|
|
11
11
|
protected get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string>;
|
|
12
|
-
addArchivist(address: string[]): void;
|
|
13
12
|
addWitness(address: string[]): void;
|
|
14
|
-
archivists(): Promise<import("@xyo-network/archivist").ArchivistInstance[]>;
|
|
15
|
-
removeArchivist(address: string[]): void;
|
|
16
|
-
removeWitness(address: string[]): void;
|
|
17
13
|
report(inPayloads?: Payload[]): Promise<Payload[]>;
|
|
18
14
|
witnesses(): Promise<WitnessInstance[]>;
|
|
19
15
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAmC,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE/E,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAItB,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYlD,SAAS;cAyBU,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;IAiBpC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CACjE"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { AbstractArchivingModule } from '@xyo-network/archivist';
|
|
2
1
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
|
|
3
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
4
|
-
import {
|
|
3
|
+
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
4
|
+
import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model';
|
|
5
5
|
import { Payload } from '@xyo-network/payload-model';
|
|
6
6
|
import { CustomSentinelInstance, SentinelInstance, SentinelModuleEventData, SentinelParams, SentinelQueryBase } from '@xyo-network/sentinel-model';
|
|
7
|
-
import { WitnessInstance } from '@xyo-network/witness';
|
|
8
|
-
export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends
|
|
7
|
+
import { WitnessInstance } from '@xyo-network/witness-model';
|
|
8
|
+
export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends AbstractModuleInstance<TParams, TEventData> implements CustomSentinelInstance<TParams, TEventData> {
|
|
9
9
|
history: BoundWitness[];
|
|
10
10
|
get queries(): string[];
|
|
11
11
|
protected get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string>;
|
|
12
|
-
addArchivist(address: string[]): void;
|
|
13
12
|
addWitness(address: string[]): void;
|
|
14
|
-
archivists(): Promise<import("@xyo-network/archivist").ArchivistInstance[]>;
|
|
15
|
-
removeArchivist(address: string[]): void;
|
|
16
|
-
removeWitness(address: string[]): void;
|
|
17
13
|
report(inPayloads?: Payload[]): Promise<Payload[]>;
|
|
18
14
|
witnesses(): Promise<WitnessInstance[]>;
|
|
19
15
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAmC,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE/E,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAItB,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYlD,SAAS;cAyBU,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;IAiBpC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CACjE"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { AbstractArchivingModule } from '@xyo-network/archivist';
|
|
2
1
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
|
|
3
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
4
|
-
import {
|
|
3
|
+
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
4
|
+
import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model';
|
|
5
5
|
import { Payload } from '@xyo-network/payload-model';
|
|
6
6
|
import { CustomSentinelInstance, SentinelInstance, SentinelModuleEventData, SentinelParams, SentinelQueryBase } from '@xyo-network/sentinel-model';
|
|
7
|
-
import { WitnessInstance } from '@xyo-network/witness';
|
|
8
|
-
export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends
|
|
7
|
+
import { WitnessInstance } from '@xyo-network/witness-model';
|
|
8
|
+
export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends AbstractModuleInstance<TParams, TEventData> implements CustomSentinelInstance<TParams, TEventData> {
|
|
9
9
|
history: BoundWitness[];
|
|
10
10
|
get queries(): string[];
|
|
11
11
|
protected get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string>;
|
|
12
|
-
addArchivist(address: string[]): void;
|
|
13
12
|
addWitness(address: string[]): void;
|
|
14
|
-
archivists(): Promise<import("@xyo-network/archivist").ArchivistInstance[]>;
|
|
15
|
-
removeArchivist(address: string[]): void;
|
|
16
|
-
removeWitness(address: string[]): void;
|
|
17
13
|
report(inPayloads?: Payload[]): Promise<Payload[]>;
|
|
18
14
|
witnesses(): Promise<WitnessInstance[]>;
|
|
19
15
|
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAmC,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE/E,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAItB,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAYlD,SAAS;cAyBU,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,wBAAwB,CAAC;IAiBpC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CACjE"}
|
|
@@ -25,12 +25,12 @@ __export(AbstractSentinel_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(AbstractSentinel_exports);
|
|
26
26
|
var import_assert = require("@xylabs/assert");
|
|
27
27
|
var import_lodash = require("@xylabs/lodash");
|
|
28
|
-
var import_archivist = require("@xyo-network/archivist");
|
|
29
28
|
var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
|
|
30
29
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
30
|
+
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
31
31
|
var import_sentinel_model = require("@xyo-network/sentinel-model");
|
|
32
|
-
var
|
|
33
|
-
var AbstractSentinel = class extends
|
|
32
|
+
var import_witness_model = require("@xyo-network/witness-model");
|
|
33
|
+
var AbstractSentinel = class extends import_module_abstract.AbstractModuleInstance {
|
|
34
34
|
history = [];
|
|
35
35
|
get queries() {
|
|
36
36
|
return [import_sentinel_model.SentinelReportQuerySchema, ...super.queries];
|
|
@@ -40,39 +40,13 @@ var AbstractSentinel = class extends import_archivist.AbstractArchivingModule {
|
|
|
40
40
|
"network.xyo.query.sentinel.report": "1/1"
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
addArchivist(address) {
|
|
44
|
-
this.config.archivists = (0, import_lodash.uniq)([...address, ...this.config.archivists ?? []]);
|
|
45
|
-
}
|
|
46
43
|
addWitness(address) {
|
|
47
44
|
this.config.witnesses = (0, import_lodash.uniq)([...address, ...this.config.witnesses ?? []]);
|
|
48
45
|
}
|
|
49
|
-
async archivists() {
|
|
50
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
51
|
-
(_c = this.logger) == null ? void 0 : _c.debug(`archivists:config:archivist: ${(_b = (_a = this.config) == null ? void 0 : _a.archivists) == null ? void 0 : _b.length}`);
|
|
52
|
-
const namesOrAddresses = ((_d = this.config) == null ? void 0 : _d.archivists) ? Array.isArray(this.config.archivists) ? (_e = this.config) == null ? void 0 : _e.archivists : [this.config.archivists] : void 0;
|
|
53
|
-
(_f = this.logger) == null ? void 0 : _f.debug(`archivist:namesOrAddresses: ${namesOrAddresses == null ? void 0 : namesOrAddresses.length}`);
|
|
54
|
-
const result = [
|
|
55
|
-
...await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : void 0),
|
|
56
|
-
...await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : void 0)
|
|
57
|
-
].map((module2) => (0, import_assert.assertEx)((0, import_archivist.asArchivistInstance)(module2), "Tried to resolve a non-archivist as an archivist"));
|
|
58
|
-
if (namesOrAddresses && namesOrAddresses.length !== result.length) {
|
|
59
|
-
(_g = this.logger) == null ? void 0 : _g.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
|
|
60
|
-
}
|
|
61
|
-
(_h = this.logger) == null ? void 0 : _h.debug(`archivists:result: ${result == null ? void 0 : result.length}`);
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
removeArchivist(address) {
|
|
65
|
-
this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist));
|
|
66
|
-
}
|
|
67
|
-
removeWitness(address) {
|
|
68
|
-
this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness));
|
|
69
|
-
}
|
|
70
46
|
async report(inPayloads) {
|
|
71
|
-
var _a;
|
|
72
47
|
this._noOverride("report");
|
|
73
48
|
await this.emit("reportStart", { inPayloads, module: this });
|
|
74
49
|
const payloads = await this.reportHandler(inPayloads);
|
|
75
|
-
(_a = this.logger) == null ? void 0 : _a.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`);
|
|
76
50
|
const outPayloads = payloads.filter(import_boundwitness_model.notBoundWitness);
|
|
77
51
|
const boundwitnesses = payloads.filter(import_boundwitness_model.isBoundWitness);
|
|
78
52
|
const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address));
|
|
@@ -85,9 +59,9 @@ var AbstractSentinel = class extends import_archivist.AbstractArchivingModule {
|
|
|
85
59
|
const namesOrAddresses = ((_d = this.config) == null ? void 0 : _d.witnesses) ? Array.isArray(this.config.witnesses) ? (_e = this.config) == null ? void 0 : _e.witnesses : [this.config.witnesses] : void 0;
|
|
86
60
|
(_f = this.logger) == null ? void 0 : _f.debug(`witnesses:namesOrAddresses: ${namesOrAddresses == null ? void 0 : namesOrAddresses.length}`);
|
|
87
61
|
const result = namesOrAddresses ? [
|
|
88
|
-
...await this.resolve({ address: namesOrAddresses }, { identity:
|
|
89
|
-
...await this.resolve({ name: namesOrAddresses }, { identity:
|
|
90
|
-
] : await this.resolve(void 0, { identity:
|
|
62
|
+
...await this.resolve({ address: namesOrAddresses }, { identity: import_witness_model.isWitnessInstance }),
|
|
63
|
+
...await this.resolve({ name: namesOrAddresses }, { identity: import_witness_model.isWitnessInstance })
|
|
64
|
+
] : await this.resolve(void 0, { identity: import_witness_model.isWitnessInstance });
|
|
91
65
|
if (namesOrAddresses && namesOrAddresses.length !== result.length) {
|
|
92
66
|
(_g = this.logger) == null ? void 0 : _g.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
|
|
93
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { uniq } from '@xylabs/lodash'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { uniq } from '@xylabs/lodash'\nimport { QueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n SentinelInstance,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\nimport { isWitnessInstance, WitnessInstance } from '@xyo-network/witness-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n addWitness(address: string[]) {\n this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])])\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n //this.logger?.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`)\n const outPayloads = payloads.filter(notBoundWitness)\n const boundwitnesses = payloads.filter(isBoundWitness)\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n return payloads\n }\n\n async witnesses() {\n this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`)\n const namesOrAddresses = this.config?.witnesses\n ? Array.isArray(this.config.witnesses)\n ? this.config?.witnesses\n : [this.config.witnesses]\n : undefined\n this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`)\n const result = namesOrAddresses\n ? [\n ...(await this.resolve<WitnessInstance>({ address: namesOrAddresses }, { identity: isWitnessInstance })),\n ...(await this.resolve<WitnessInstance>({ name: namesOrAddresses }, { identity: isWitnessInstance })),\n ]\n : await this.resolve<WitnessInstance>(undefined, { identity: isWitnessInstance })\n\n if (namesOrAddresses && namesOrAddresses.length !== result.length) {\n this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)\n }\n result.map((item) => {\n this.logger?.debug(`witnesses:result: ${item.config.schema}`)\n })\n\n return result\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AACzB,oBAAqB;AACrB,kCAA4D;AAC5D,gCAA8D;AAC9D,6BAAuC;AAGvC,4BAOO;AACP,2BAAmD;AAE5C,IAAe,mBAAf,cAIG,8CAEV;AAAA,EACE,UAA0B,CAAC;AAAA,EAE3B,IAAa,UAAoB;AAC/B,WAAO,CAAC,iDAA2B,GAAG,MAAM,OAAO;AAAA,EACrD;AAAA,EAEA,IAAuB,qBAAkE;AACvF,WAAO;AAAA,MACL,qCAAqC;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,WAAW,SAAmB;AAC5B,SAAK,OAAO,gBAAY,oBAAK,CAAC,GAAG,SAAS,GAAI,KAAK,OAAO,aAAa,CAAC,CAAE,CAAC;AAAA,EAC7E;AAAA,EAEA,MAAM,OAAO,YAA4C;AACvD,SAAK,YAAY,QAAQ;AACzB,UAAM,KAAK,KAAK,eAAe,EAAE,YAAY,QAAQ,KAAK,CAAC;AAC3D,UAAM,WAAW,MAAM,KAAK,cAAc,UAAU;AAEpD,UAAM,cAAc,SAAS,OAAO,yCAAe;AACnD,UAAM,iBAAiB,SAAS,OAAO,wCAAc;AACrD,UAAM,eAAe,eAAe,KAAK,CAAC,OAAO,GAAG,UAAU,SAAS,KAAK,OAAO,CAAC;AACpF,UAAM,KAAK,KAAK,aAAa,EAAE,cAAc,YAAY,QAAQ,MAAM,YAAY,CAAC;AACpF,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY;AApDpB;AAqDI,eAAK,WAAL,mBAAa,MAAM,gCAA+B,gBAAK,WAAL,mBAAa,cAAb,mBAAwB,MAAM;AAChF,UAAM,qBAAmB,UAAK,WAAL,mBAAa,aAClC,MAAM,QAAQ,KAAK,OAAO,SAAS,KACjC,UAAK,WAAL,mBAAa,YACb,CAAC,KAAK,OAAO,SAAS,IACxB;AACJ,eAAK,WAAL,mBAAa,MAAM,+BAA+B,qDAAkB,MAAM;AAC1E,UAAM,SAAS,mBACX;AAAA,MACE,GAAI,MAAM,KAAK,QAAyB,EAAE,SAAS,iBAAiB,GAAG,EAAE,UAAU,uCAAkB,CAAC;AAAA,MACtG,GAAI,MAAM,KAAK,QAAyB,EAAE,MAAM,iBAAiB,GAAG,EAAE,UAAU,uCAAkB,CAAC;AAAA,IACrG,IACA,MAAM,KAAK,QAAyB,QAAW,EAAE,UAAU,uCAAkB,CAAC;AAElF,QAAI,oBAAoB,iBAAiB,WAAW,OAAO,QAAQ;AACjE,iBAAK,WAAL,mBAAa,KAAK,uCAAuC,iBAAiB,MAAM,YAAY,OAAO,MAAM;AAAA,IAC3G;AACA,WAAO,IAAI,CAAC,SAAS;AAtEzB,UAAAA;AAuEM,OAAAA,MAAA,KAAK,WAAL,gBAAAA,IAAa,MAAM,qBAAqB,KAAK,OAAO,MAAM;AAAA,IAC5D,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,aACvB,OACA,UACA,aACmC;AACnC,UAAM,UAAU,qDAAyB,WAA8B,OAAO,QAAQ;AACtF,UAAM,eAAe,MAAM,QAAQ,SAAS;AAC5C,gCAAS,KAAK,UAAU,OAAO,UAAU,WAAW,CAAC;AACrD,UAAM,iBAA4B,CAAC;AACnC,YAAQ,aAAa,QAAQ;AAAA,MAC3B,KAAK,iDAA2B;AAC9B,uBAAe,KAAK,GAAI,MAAM,KAAK,OAAO,QAAQ,CAAE;AACpD;AAAA,MACF;AAAA,MACA,SAAS;AACP,eAAO,MAAM,aAAa,OAAO,QAAQ;AAAA,MAC3C;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGF;","names":["_a"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// src/AbstractSentinel.ts
|
|
2
2
|
import { assertEx } from "@xylabs/assert";
|
|
3
3
|
import { uniq } from "@xylabs/lodash";
|
|
4
|
-
import { AbstractArchivingModule, asArchivistInstance } from "@xyo-network/archivist";
|
|
5
4
|
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
|
|
6
5
|
import { isBoundWitness, notBoundWitness } from "@xyo-network/boundwitness-model";
|
|
6
|
+
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
7
7
|
import {
|
|
8
8
|
SentinelReportQuerySchema
|
|
9
9
|
} from "@xyo-network/sentinel-model";
|
|
10
|
-
import { isWitnessInstance } from "@xyo-network/witness";
|
|
11
|
-
var AbstractSentinel = class extends
|
|
10
|
+
import { isWitnessInstance } from "@xyo-network/witness-model";
|
|
11
|
+
var AbstractSentinel = class extends AbstractModuleInstance {
|
|
12
12
|
history = [];
|
|
13
13
|
get queries() {
|
|
14
14
|
return [SentinelReportQuerySchema, ...super.queries];
|
|
@@ -18,39 +18,13 @@ var AbstractSentinel = class extends AbstractArchivingModule {
|
|
|
18
18
|
"network.xyo.query.sentinel.report": "1/1"
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
addArchivist(address) {
|
|
22
|
-
this.config.archivists = uniq([...address, ...this.config.archivists ?? []]);
|
|
23
|
-
}
|
|
24
21
|
addWitness(address) {
|
|
25
22
|
this.config.witnesses = uniq([...address, ...this.config.witnesses ?? []]);
|
|
26
23
|
}
|
|
27
|
-
async archivists() {
|
|
28
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
29
|
-
(_c = this.logger) == null ? void 0 : _c.debug(`archivists:config:archivist: ${(_b = (_a = this.config) == null ? void 0 : _a.archivists) == null ? void 0 : _b.length}`);
|
|
30
|
-
const namesOrAddresses = ((_d = this.config) == null ? void 0 : _d.archivists) ? Array.isArray(this.config.archivists) ? (_e = this.config) == null ? void 0 : _e.archivists : [this.config.archivists] : void 0;
|
|
31
|
-
(_f = this.logger) == null ? void 0 : _f.debug(`archivist:namesOrAddresses: ${namesOrAddresses == null ? void 0 : namesOrAddresses.length}`);
|
|
32
|
-
const result = [
|
|
33
|
-
...await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : void 0),
|
|
34
|
-
...await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : void 0)
|
|
35
|
-
].map((module) => assertEx(asArchivistInstance(module), "Tried to resolve a non-archivist as an archivist"));
|
|
36
|
-
if (namesOrAddresses && namesOrAddresses.length !== result.length) {
|
|
37
|
-
(_g = this.logger) == null ? void 0 : _g.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
|
|
38
|
-
}
|
|
39
|
-
(_h = this.logger) == null ? void 0 : _h.debug(`archivists:result: ${result == null ? void 0 : result.length}`);
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
removeArchivist(address) {
|
|
43
|
-
this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist));
|
|
44
|
-
}
|
|
45
|
-
removeWitness(address) {
|
|
46
|
-
this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness));
|
|
47
|
-
}
|
|
48
24
|
async report(inPayloads) {
|
|
49
|
-
var _a;
|
|
50
25
|
this._noOverride("report");
|
|
51
26
|
await this.emit("reportStart", { inPayloads, module: this });
|
|
52
27
|
const payloads = await this.reportHandler(inPayloads);
|
|
53
|
-
(_a = this.logger) == null ? void 0 : _a.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`);
|
|
54
28
|
const outPayloads = payloads.filter(notBoundWitness);
|
|
55
29
|
const boundwitnesses = payloads.filter(isBoundWitness);
|
|
56
30
|
const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { uniq } from '@xylabs/lodash'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { uniq } from '@xylabs/lodash'\nimport { QueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n SentinelInstance,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\nimport { isWitnessInstance, WitnessInstance } from '@xyo-network/witness-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n addWitness(address: string[]) {\n this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])])\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n //this.logger?.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`)\n const outPayloads = payloads.filter(notBoundWitness)\n const boundwitnesses = payloads.filter(isBoundWitness)\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n return payloads\n }\n\n async witnesses() {\n this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`)\n const namesOrAddresses = this.config?.witnesses\n ? Array.isArray(this.config.witnesses)\n ? this.config?.witnesses\n : [this.config.witnesses]\n : undefined\n this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`)\n const result = namesOrAddresses\n ? [\n ...(await this.resolve<WitnessInstance>({ address: namesOrAddresses }, { identity: isWitnessInstance })),\n ...(await this.resolve<WitnessInstance>({ name: namesOrAddresses }, { identity: isWitnessInstance })),\n ]\n : await this.resolve<WitnessInstance>(undefined, { identity: isWitnessInstance })\n\n if (namesOrAddresses && namesOrAddresses.length !== result.length) {\n this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)\n }\n result.map((item) => {\n this.logger?.debug(`witnesses:result: ${item.config.schema}`)\n })\n\n return result\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAA4B,gCAAgC;AAC5D,SAAuB,gBAAgB,uBAAuB;AAC9D,SAAS,8BAA8B;AAGvC;AAAA,EAME;AAAA,OACK;AACP,SAAS,yBAA0C;AAE5C,IAAe,mBAAf,cAIG,uBAEV;AAAA,EACE,UAA0B,CAAC;AAAA,EAE3B,IAAa,UAAoB;AAC/B,WAAO,CAAC,2BAA2B,GAAG,MAAM,OAAO;AAAA,EACrD;AAAA,EAEA,IAAuB,qBAAkE;AACvF,WAAO;AAAA,MACL,qCAAqC;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,WAAW,SAAmB;AAC5B,SAAK,OAAO,YAAY,KAAK,CAAC,GAAG,SAAS,GAAI,KAAK,OAAO,aAAa,CAAC,CAAE,CAAC;AAAA,EAC7E;AAAA,EAEA,MAAM,OAAO,YAA4C;AACvD,SAAK,YAAY,QAAQ;AACzB,UAAM,KAAK,KAAK,eAAe,EAAE,YAAY,QAAQ,KAAK,CAAC;AAC3D,UAAM,WAAW,MAAM,KAAK,cAAc,UAAU;AAEpD,UAAM,cAAc,SAAS,OAAO,eAAe;AACnD,UAAM,iBAAiB,SAAS,OAAO,cAAc;AACrD,UAAM,eAAe,eAAe,KAAK,CAAC,OAAO,GAAG,UAAU,SAAS,KAAK,OAAO,CAAC;AACpF,UAAM,KAAK,KAAK,aAAa,EAAE,cAAc,YAAY,QAAQ,MAAM,YAAY,CAAC;AACpF,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY;AApDpB;AAqDI,eAAK,WAAL,mBAAa,MAAM,gCAA+B,gBAAK,WAAL,mBAAa,cAAb,mBAAwB,MAAM;AAChF,UAAM,qBAAmB,UAAK,WAAL,mBAAa,aAClC,MAAM,QAAQ,KAAK,OAAO,SAAS,KACjC,UAAK,WAAL,mBAAa,YACb,CAAC,KAAK,OAAO,SAAS,IACxB;AACJ,eAAK,WAAL,mBAAa,MAAM,+BAA+B,qDAAkB,MAAM;AAC1E,UAAM,SAAS,mBACX;AAAA,MACE,GAAI,MAAM,KAAK,QAAyB,EAAE,SAAS,iBAAiB,GAAG,EAAE,UAAU,kBAAkB,CAAC;AAAA,MACtG,GAAI,MAAM,KAAK,QAAyB,EAAE,MAAM,iBAAiB,GAAG,EAAE,UAAU,kBAAkB,CAAC;AAAA,IACrG,IACA,MAAM,KAAK,QAAyB,QAAW,EAAE,UAAU,kBAAkB,CAAC;AAElF,QAAI,oBAAoB,iBAAiB,WAAW,OAAO,QAAQ;AACjE,iBAAK,WAAL,mBAAa,KAAK,uCAAuC,iBAAiB,MAAM,YAAY,OAAO,MAAM;AAAA,IAC3G;AACA,WAAO,IAAI,CAAC,SAAS;AAtEzB,UAAAA;AAuEM,OAAAA,MAAA,KAAK,WAAL,gBAAAA,IAAa,MAAM,qBAAqB,KAAK,OAAO,MAAM;AAAA,IAC5D,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,aACvB,OACA,UACA,aACmC;AACnC,UAAM,UAAU,yBAAyB,WAA8B,OAAO,QAAQ;AACtF,UAAM,eAAe,MAAM,QAAQ,SAAS;AAC5C,aAAS,KAAK,UAAU,OAAO,UAAU,WAAW,CAAC;AACrD,UAAM,iBAA4B,CAAC;AACnC,YAAQ,aAAa,QAAQ;AAAA,MAC3B,KAAK,2BAA2B;AAC9B,uBAAe,KAAK,GAAI,MAAM,KAAK,OAAO,QAAQ,CAAE;AACpD;AAAA,MACF;AAAA,MACA,SAAS;AACP,eAAO,MAAM,aAAa,OAAO,QAAQ;AAAA,MAC3C;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGF;","names":["_a"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyConfigSchema } from '@xyo-network/module';
|
|
1
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
2
2
|
import { Payload } from '@xyo-network/payload-model';
|
|
3
3
|
import { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
|
|
4
4
|
import { AbstractSentinel } from './AbstractSentinel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EAEf,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;AAE7I,qBAAa,cAAc,CACzB,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1H,SAAQ,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7C,OAAgB,aAAa,kCAAyB;IAEhD,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAsBnD,eAAe;CAY9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyConfigSchema } from '@xyo-network/module';
|
|
1
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
2
2
|
import { Payload } from '@xyo-network/payload-model';
|
|
3
3
|
import { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
|
|
4
4
|
import { AbstractSentinel } from './AbstractSentinel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EAEf,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;AAE7I,qBAAa,cAAc,CACzB,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1H,SAAQ,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7C,OAAgB,aAAa,kCAAyB;IAEhD,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAsBnD,eAAe;CAY9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyConfigSchema } from '@xyo-network/module';
|
|
1
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
2
2
|
import { Payload } from '@xyo-network/payload-model';
|
|
3
3
|
import { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
|
|
4
4
|
import { AbstractSentinel } from './AbstractSentinel';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EAEf,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;AAE7I,qBAAa,cAAc,CACzB,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1H,SAAQ,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7C,OAAgB,aAAa,kCAAyB;IAEhD,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAsBnD,eAAe;CAY9B"}
|
|
@@ -31,12 +31,12 @@ var import_sentinel_model2 = require("@xyo-network/sentinel-model");
|
|
|
31
31
|
// src/AbstractSentinel.ts
|
|
32
32
|
var import_assert = require("@xylabs/assert");
|
|
33
33
|
var import_lodash = require("@xylabs/lodash");
|
|
34
|
-
var import_archivist = require("@xyo-network/archivist");
|
|
35
34
|
var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
|
|
36
35
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
36
|
+
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
37
37
|
var import_sentinel_model = require("@xyo-network/sentinel-model");
|
|
38
|
-
var
|
|
39
|
-
var AbstractSentinel = class extends
|
|
38
|
+
var import_witness_model = require("@xyo-network/witness-model");
|
|
39
|
+
var AbstractSentinel = class extends import_module_abstract.AbstractModuleInstance {
|
|
40
40
|
history = [];
|
|
41
41
|
get queries() {
|
|
42
42
|
return [import_sentinel_model.SentinelReportQuerySchema, ...super.queries];
|
|
@@ -46,39 +46,13 @@ var AbstractSentinel = class extends import_archivist.AbstractArchivingModule {
|
|
|
46
46
|
"network.xyo.query.sentinel.report": "1/1"
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
addArchivist(address) {
|
|
50
|
-
this.config.archivists = (0, import_lodash.uniq)([...address, ...this.config.archivists ?? []]);
|
|
51
|
-
}
|
|
52
49
|
addWitness(address) {
|
|
53
50
|
this.config.witnesses = (0, import_lodash.uniq)([...address, ...this.config.witnesses ?? []]);
|
|
54
51
|
}
|
|
55
|
-
async archivists() {
|
|
56
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
57
|
-
(_c = this.logger) == null ? void 0 : _c.debug(`archivists:config:archivist: ${(_b = (_a = this.config) == null ? void 0 : _a.archivists) == null ? void 0 : _b.length}`);
|
|
58
|
-
const namesOrAddresses = ((_d = this.config) == null ? void 0 : _d.archivists) ? Array.isArray(this.config.archivists) ? (_e = this.config) == null ? void 0 : _e.archivists : [this.config.archivists] : void 0;
|
|
59
|
-
(_f = this.logger) == null ? void 0 : _f.debug(`archivist:namesOrAddresses: ${namesOrAddresses == null ? void 0 : namesOrAddresses.length}`);
|
|
60
|
-
const result = [
|
|
61
|
-
...await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : void 0),
|
|
62
|
-
...await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : void 0)
|
|
63
|
-
].map((module2) => (0, import_assert.assertEx)((0, import_archivist.asArchivistInstance)(module2), "Tried to resolve a non-archivist as an archivist"));
|
|
64
|
-
if (namesOrAddresses && namesOrAddresses.length !== result.length) {
|
|
65
|
-
(_g = this.logger) == null ? void 0 : _g.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
|
|
66
|
-
}
|
|
67
|
-
(_h = this.logger) == null ? void 0 : _h.debug(`archivists:result: ${result == null ? void 0 : result.length}`);
|
|
68
|
-
return result;
|
|
69
|
-
}
|
|
70
|
-
removeArchivist(address) {
|
|
71
|
-
this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist));
|
|
72
|
-
}
|
|
73
|
-
removeWitness(address) {
|
|
74
|
-
this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness));
|
|
75
|
-
}
|
|
76
52
|
async report(inPayloads) {
|
|
77
|
-
var _a;
|
|
78
53
|
this._noOverride("report");
|
|
79
54
|
await this.emit("reportStart", { inPayloads, module: this });
|
|
80
55
|
const payloads = await this.reportHandler(inPayloads);
|
|
81
|
-
(_a = this.logger) == null ? void 0 : _a.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`);
|
|
82
56
|
const outPayloads = payloads.filter(import_boundwitness_model.notBoundWitness);
|
|
83
57
|
const boundwitnesses = payloads.filter(import_boundwitness_model.isBoundWitness);
|
|
84
58
|
const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address));
|
|
@@ -91,9 +65,9 @@ var AbstractSentinel = class extends import_archivist.AbstractArchivingModule {
|
|
|
91
65
|
const namesOrAddresses = ((_d = this.config) == null ? void 0 : _d.witnesses) ? Array.isArray(this.config.witnesses) ? (_e = this.config) == null ? void 0 : _e.witnesses : [this.config.witnesses] : void 0;
|
|
92
66
|
(_f = this.logger) == null ? void 0 : _f.debug(`witnesses:namesOrAddresses: ${namesOrAddresses == null ? void 0 : namesOrAddresses.length}`);
|
|
93
67
|
const result = namesOrAddresses ? [
|
|
94
|
-
...await this.resolve({ address: namesOrAddresses }, { identity:
|
|
95
|
-
...await this.resolve({ name: namesOrAddresses }, { identity:
|
|
96
|
-
] : await this.resolve(void 0, { identity:
|
|
68
|
+
...await this.resolve({ address: namesOrAddresses }, { identity: import_witness_model.isWitnessInstance }),
|
|
69
|
+
...await this.resolve({ name: namesOrAddresses }, { identity: import_witness_model.isWitnessInstance })
|
|
70
|
+
] : await this.resolve(void 0, { identity: import_witness_model.isWitnessInstance });
|
|
97
71
|
if (namesOrAddresses && namesOrAddresses.length !== result.length) {
|
|
98
72
|
(_g = this.logger) == null ? void 0 : _g.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
|
|
99
73
|
}
|
|
@@ -130,7 +104,7 @@ var MemorySentinel = class extends AbstractSentinel {
|
|
|
130
104
|
const allWitnesses = [...await this.witnesses()];
|
|
131
105
|
const resultPayloads = [];
|
|
132
106
|
try {
|
|
133
|
-
const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses
|
|
107
|
+
const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses);
|
|
134
108
|
const combinedPayloads = [...generatedPayloads, ...payloads];
|
|
135
109
|
resultPayloads.push(...combinedPayloads);
|
|
136
110
|
errors.push(...generatedErrors);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/MemorySentinel.ts","../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { fulfilled, rejected } from '@xylabs/promise'\nimport { handleError } from '@xyo-network/error'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n SentinelConfig,\n SentinelConfigSchema,\n SentinelInstance,\n SentinelModuleEventData,\n SentinelParams,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\nimport { WitnessInstance } from '@xyo-network/witness'\n\nimport { AbstractSentinel } from './AbstractSentinel'\n\nexport type MemorySentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>> = SentinelParams<TConfig>\n\nexport class MemorySentinel<\n TParams extends MemorySentinelParams = MemorySentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n> extends AbstractSentinel<TParams, TEventData> {\n static override configSchemas = [SentinelConfigSchema]\n\n async reportHandler(payloads: Payload[] = []): Promise<Payload[]> {\n await this.started('throw')\n const errors: Error[] = []\n const allWitnesses = [...(await this.witnesses())]\n const resultPayloads: Payload[] = []\n\n try {\n const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses, payloads)\n const combinedPayloads = [...generatedPayloads, ...payloads]\n resultPayloads.push(...combinedPayloads)\n errors.push(...generatedErrors)\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n\n const [boundWitness] = await this.bindQueryResult({ schema: SentinelReportQuerySchema }, resultPayloads)\n this.history.push(assertEx(boundWitness))\n return [boundWitness, ...resultPayloads]\n }\n\n private async generateResults(witnesses: WitnessInstance[], inPayloads?: Payload[]): Promise<[Payload[], Error[]]> {\n const results = await Promise.allSettled(witnesses?.map((witness) => witness.observe(inPayloads)))\n const payloads = results\n .filter(fulfilled)\n .map((result) => result.value)\n .flat()\n const errors = results\n .filter(rejected)\n .map((result) => result.reason)\n .flat()\n return [payloads, errors]\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { uniq } from '@xylabs/lodash'\nimport { AbstractArchivingModule, asArchivistInstance } from '@xyo-network/archivist'\nimport { QueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n SentinelInstance,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\nimport { isWitnessInstance, WitnessInstance } from '@xyo-network/witness'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractArchivingModule<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n addArchivist(address: string[]) {\n this.config.archivists = uniq([...address, ...(this.config.archivists ?? [])])\n }\n\n addWitness(address: string[]) {\n this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])])\n }\n\n async archivists() {\n this.logger?.debug(`archivists:config:archivist: ${this.config?.archivists?.length}`)\n const namesOrAddresses = this.config?.archivists\n ? Array.isArray(this.config.archivists)\n ? this.config?.archivists\n : [this.config.archivists]\n : undefined\n this.logger?.debug(`archivist:namesOrAddresses: ${namesOrAddresses?.length}`)\n const result = [\n ...(await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : undefined)),\n ...(await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : undefined)),\n ].map((module) => assertEx(asArchivistInstance(module), 'Tried to resolve a non-archivist as an archivist'))\n\n if (namesOrAddresses && namesOrAddresses.length !== result.length) {\n this.logger?.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)\n }\n\n this.logger?.debug(`archivists:result: ${result?.length}`)\n\n return result\n }\n\n removeArchivist(address: string[]) {\n this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist))\n }\n\n removeWitness(address: string[]) {\n this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness))\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n this.logger?.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`)\n const outPayloads = payloads.filter(notBoundWitness)\n const boundwitnesses = payloads.filter(isBoundWitness)\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n return payloads\n }\n\n async witnesses() {\n this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`)\n const namesOrAddresses = this.config?.witnesses\n ? Array.isArray(this.config.witnesses)\n ? this.config?.witnesses\n : [this.config.witnesses]\n : undefined\n this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`)\n const result = namesOrAddresses\n ? [\n ...(await this.resolve<WitnessInstance>({ address: namesOrAddresses }, { identity: isWitnessInstance })),\n ...(await this.resolve<WitnessInstance>({ name: namesOrAddresses }, { identity: isWitnessInstance })),\n ]\n : await this.resolve<WitnessInstance>(undefined, { identity: isWitnessInstance })\n\n if (namesOrAddresses && namesOrAddresses.length !== result.length) {\n this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)\n }\n result.map((item) => {\n this.logger?.debug(`witnesses:result: ${item.config.schema}`)\n })\n\n return result\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":"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","names":["import_assert","import_sentinel_model","module","_a"]}
|
|
1
|
+
{"version":3,"sources":["../../src/MemorySentinel.ts","../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { fulfilled, rejected } from '@xylabs/promise'\nimport { handleError } from '@xyo-network/error'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n SentinelConfig,\n SentinelConfigSchema,\n SentinelInstance,\n SentinelModuleEventData,\n SentinelParams,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\nimport { WitnessInstance } from '@xyo-network/witness-model'\n\nimport { AbstractSentinel } from './AbstractSentinel'\n\nexport type MemorySentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>> = SentinelParams<TConfig>\n\nexport class MemorySentinel<\n TParams extends MemorySentinelParams = MemorySentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n> extends AbstractSentinel<TParams, TEventData> {\n static override configSchemas = [SentinelConfigSchema]\n\n async reportHandler(payloads: Payload[] = []): Promise<Payload[]> {\n await this.started('throw')\n const errors: Error[] = []\n const allWitnesses = [...(await this.witnesses())]\n const resultPayloads: Payload[] = []\n\n try {\n const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses)\n const combinedPayloads = [...generatedPayloads, ...payloads]\n resultPayloads.push(...combinedPayloads)\n errors.push(...generatedErrors)\n } catch (ex) {\n handleError(ex, (error) => {\n errors.push(error)\n })\n }\n\n const [boundWitness] = await this.bindQueryResult({ schema: SentinelReportQuerySchema }, resultPayloads)\n this.history.push(assertEx(boundWitness))\n return [boundWitness, ...resultPayloads]\n }\n\n private async generateResults(witnesses: WitnessInstance[], inPayloads?: Payload[]): Promise<[Payload[], Error[]]> {\n const results = await Promise.allSettled(witnesses?.map((witness) => witness.observe(inPayloads)))\n const payloads = results\n .filter(fulfilled)\n .map((result) => result.value)\n .flat()\n const errors = results\n .filter(rejected)\n .map((result) => result.reason)\n .flat()\n return [payloads, errors]\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { uniq } from '@xylabs/lodash'\nimport { QueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n SentinelInstance,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\nimport { isWitnessInstance, WitnessInstance } from '@xyo-network/witness-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n addWitness(address: string[]) {\n this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])])\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n //this.logger?.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`)\n const outPayloads = payloads.filter(notBoundWitness)\n const boundwitnesses = payloads.filter(isBoundWitness)\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n return payloads\n }\n\n async witnesses() {\n this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`)\n const namesOrAddresses = this.config?.witnesses\n ? Array.isArray(this.config.witnesses)\n ? this.config?.witnesses\n : [this.config.witnesses]\n : undefined\n this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`)\n const result = namesOrAddresses\n ? [\n ...(await this.resolve<WitnessInstance>({ address: namesOrAddresses }, { identity: isWitnessInstance })),\n ...(await this.resolve<WitnessInstance>({ name: namesOrAddresses }, { identity: isWitnessInstance })),\n ]\n : await this.resolve<WitnessInstance>(undefined, { identity: isWitnessInstance })\n\n if (namesOrAddresses && namesOrAddresses.length !== result.length) {\n this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)\n }\n result.map((item) => {\n this.logger?.debug(`witnesses:result: ${item.config.schema}`)\n })\n\n return result\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":"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","names":["import_assert","import_sentinel_model","_a"]}
|
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
// src/AbstractSentinel.ts
|
|
11
11
|
import { assertEx } from "@xylabs/assert";
|
|
12
12
|
import { uniq } from "@xylabs/lodash";
|
|
13
|
-
import { AbstractArchivingModule, asArchivistInstance } from "@xyo-network/archivist";
|
|
14
13
|
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-builder";
|
|
15
14
|
import { isBoundWitness, notBoundWitness } from "@xyo-network/boundwitness-model";
|
|
15
|
+
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
16
16
|
import {
|
|
17
17
|
SentinelReportQuerySchema
|
|
18
18
|
} from "@xyo-network/sentinel-model";
|
|
19
|
-
import { isWitnessInstance } from "@xyo-network/witness";
|
|
20
|
-
var AbstractSentinel = class extends
|
|
19
|
+
import { isWitnessInstance } from "@xyo-network/witness-model";
|
|
20
|
+
var AbstractSentinel = class extends AbstractModuleInstance {
|
|
21
21
|
history = [];
|
|
22
22
|
get queries() {
|
|
23
23
|
return [SentinelReportQuerySchema, ...super.queries];
|
|
@@ -27,39 +27,13 @@ var AbstractSentinel = class extends AbstractArchivingModule {
|
|
|
27
27
|
"network.xyo.query.sentinel.report": "1/1"
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
addArchivist(address) {
|
|
31
|
-
this.config.archivists = uniq([...address, ...this.config.archivists ?? []]);
|
|
32
|
-
}
|
|
33
30
|
addWitness(address) {
|
|
34
31
|
this.config.witnesses = uniq([...address, ...this.config.witnesses ?? []]);
|
|
35
32
|
}
|
|
36
|
-
async archivists() {
|
|
37
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
38
|
-
(_c = this.logger) == null ? void 0 : _c.debug(`archivists:config:archivist: ${(_b = (_a = this.config) == null ? void 0 : _a.archivists) == null ? void 0 : _b.length}`);
|
|
39
|
-
const namesOrAddresses = ((_d = this.config) == null ? void 0 : _d.archivists) ? Array.isArray(this.config.archivists) ? (_e = this.config) == null ? void 0 : _e.archivists : [this.config.archivists] : void 0;
|
|
40
|
-
(_f = this.logger) == null ? void 0 : _f.debug(`archivist:namesOrAddresses: ${namesOrAddresses == null ? void 0 : namesOrAddresses.length}`);
|
|
41
|
-
const result = [
|
|
42
|
-
...await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : void 0),
|
|
43
|
-
...await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : void 0)
|
|
44
|
-
].map((module) => assertEx(asArchivistInstance(module), "Tried to resolve a non-archivist as an archivist"));
|
|
45
|
-
if (namesOrAddresses && namesOrAddresses.length !== result.length) {
|
|
46
|
-
(_g = this.logger) == null ? void 0 : _g.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
|
|
47
|
-
}
|
|
48
|
-
(_h = this.logger) == null ? void 0 : _h.debug(`archivists:result: ${result == null ? void 0 : result.length}`);
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
removeArchivist(address) {
|
|
52
|
-
this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist));
|
|
53
|
-
}
|
|
54
|
-
removeWitness(address) {
|
|
55
|
-
this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness));
|
|
56
|
-
}
|
|
57
33
|
async report(inPayloads) {
|
|
58
|
-
var _a;
|
|
59
34
|
this._noOverride("report");
|
|
60
35
|
await this.emit("reportStart", { inPayloads, module: this });
|
|
61
36
|
const payloads = await this.reportHandler(inPayloads);
|
|
62
|
-
(_a = this.logger) == null ? void 0 : _a.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`);
|
|
63
37
|
const outPayloads = payloads.filter(notBoundWitness);
|
|
64
38
|
const boundwitnesses = payloads.filter(isBoundWitness);
|
|
65
39
|
const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address));
|
|
@@ -111,7 +85,7 @@ var MemorySentinel = class extends AbstractSentinel {
|
|
|
111
85
|
const allWitnesses = [...await this.witnesses()];
|
|
112
86
|
const resultPayloads = [];
|
|
113
87
|
try {
|
|
114
|
-
const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses
|
|
88
|
+
const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses);
|
|
115
89
|
const combinedPayloads = [...generatedPayloads, ...payloads];
|
|
116
90
|
resultPayloads.push(...combinedPayloads);
|
|
117
91
|
errors.push(...generatedErrors);
|