@xyo-network/sentinel 2.70.2 → 2.70.4

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.
@@ -2,14 +2,11 @@ import { assertEx } from '@xylabs/assert';
2
2
  import { AbstractArchivingModule, asArchivistInstance } from '@xyo-network/archivist';
3
3
  import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder';
4
4
  import { isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model';
5
- import { SentinelConfigSchema, SentinelReportQuerySchema, } from '@xyo-network/sentinel-model';
5
+ import { SentinelReportQuerySchema, } from '@xyo-network/sentinel-model';
6
6
  import { isWitnessInstance } from '@xyo-network/witness';
7
7
  import uniq from 'lodash/uniq';
8
8
  export class AbstractSentinel extends AbstractArchivingModule {
9
- static configSchemas = [SentinelConfigSchema];
10
9
  history = [];
11
- _archivists;
12
- _witnesses;
13
10
  get queries() {
14
11
  return [SentinelReportQuerySchema, ...super.queries];
15
12
  }
@@ -20,41 +17,33 @@ export class AbstractSentinel extends AbstractArchivingModule {
20
17
  }
21
18
  addArchivist(address) {
22
19
  this.config.archivists = uniq([...address, ...(this.config.archivists ?? [])]);
23
- this._archivists = undefined;
24
20
  }
25
21
  addWitness(address) {
26
22
  this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])]);
27
- this._witnesses = undefined;
28
23
  }
29
- async getArchivists() {
30
- const addresses = this.config?.archivists
24
+ async archivists() {
25
+ this.logger?.debug(`archivists:config:archivist: ${this.config?.archivists?.length}`);
26
+ const namesOrAddresses = this.config?.archivists
31
27
  ? Array.isArray(this.config.archivists)
32
28
  ? this.config?.archivists
33
29
  : [this.config.archivists]
34
30
  : undefined;
35
- this._archivists = (await this.resolve(addresses ? { address: addresses, name: addresses } : undefined)).map((module) => assertEx(asArchivistInstance(module), 'Tried to resolve a non-archivist as an archivist'));
36
- if (addresses && addresses.length !== this._archivists.length) {
37
- this.logger?.warn(`Not all archivists found [Requested: ${addresses.length}, Found: ${this._archivists.length}]`);
31
+ this.logger?.debug(`archivist:namesOrAddresses: ${namesOrAddresses?.length}`);
32
+ const result = [
33
+ ...(await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : undefined)),
34
+ ...(await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : undefined)),
35
+ ].map((module) => assertEx(asArchivistInstance(module), 'Tried to resolve a non-archivist as an archivist'));
36
+ if (namesOrAddresses && namesOrAddresses.length !== result.length) {
37
+ this.logger?.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
38
38
  }
39
- return this._archivists;
40
- }
41
- async getWitnesses() {
42
- const addresses = this.config?.witnesses ? (Array.isArray(this.config.witnesses) ? this.config?.witnesses : [this.config.witnesses]) : undefined;
43
- this._witnesses = await this.resolve(addresses ? { address: addresses, name: addresses } : undefined, {
44
- identity: isWitnessInstance,
45
- });
46
- if (addresses && addresses.length !== this._witnesses.length) {
47
- this.logger?.warn(`Not all witnesses found [Requested: ${addresses.length}, Found: ${this._witnesses.length}]`);
48
- }
49
- return this._witnesses;
39
+ this.logger?.debug(`archivists:result: ${result?.length}`);
40
+ return result;
50
41
  }
51
42
  removeArchivist(address) {
52
43
  this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist));
53
- this._archivists = undefined;
54
44
  }
55
45
  removeWitness(address) {
56
46
  this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness));
57
- this._witnesses = undefined;
58
47
  }
59
48
  async report(inPayloads) {
60
49
  await this.emit('reportStart', { inPayloads, module: this });
@@ -65,6 +54,26 @@ export class AbstractSentinel extends AbstractArchivingModule {
65
54
  await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads });
66
55
  return payloads;
67
56
  }
57
+ async witnesses() {
58
+ this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`);
59
+ const namesOrAddresses = this.config?.witnesses
60
+ ? Array.isArray(this.config.witnesses)
61
+ ? this.config?.witnesses
62
+ : [this.config.witnesses]
63
+ : undefined;
64
+ this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`);
65
+ const result = namesOrAddresses
66
+ ? [
67
+ ...(await this.resolve({ address: namesOrAddresses }, { identity: isWitnessInstance })),
68
+ ...(await this.resolve({ name: namesOrAddresses }, { identity: isWitnessInstance })),
69
+ ]
70
+ : await this.resolve(undefined, { identity: isWitnessInstance });
71
+ if (namesOrAddresses && namesOrAddresses.length !== result.length) {
72
+ this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
73
+ }
74
+ this.logger?.debug(`witnesses:result: ${result?.length}`);
75
+ return result;
76
+ }
68
77
  async queryHandler(query, payloads, queryConfig) {
69
78
  const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
70
79
  const queryPayload = await wrapper.getQuery();
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export class MemorySentinel extends AbstractSentinel {
8
8
  async reportHandler(payloads = []) {
9
9
  await this.started('throw');
10
10
  const errors = [];
11
- const allWitnesses = [...(await this.getWitnesses())];
11
+ const allWitnesses = [...(await this.witnesses())];
12
12
  const resultPayloads = [];
13
13
  try {
14
14
  const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses);
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,EAEL,oBAAoB,EAIpB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,MAAM,OAAO,cAGX,SAAQ,gBAAqC;IAC7C,MAAM,CAAU,aAAa,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAEtD,KAAK,CAAC,aAAa,CAAC,WAAsB,EAAE;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3B,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,cAAc,GAAc,EAAE,CAAA;QAEpC,IAAI;YACF,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;YACrF,MAAM,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,QAAQ,CAAC,CAAA;YAC5D,cAAc,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;YACxC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;SAChC;QAAC,OAAO,EAAE,EAAE;YACX,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACH;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,cAAc,CAAC,CAAA;QACxG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QACzC,OAAO,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,CAAA;IAC1C,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAA4B;QACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACxF,MAAM,QAAQ,GAAG,OAAO;aACrB,MAAM,CAAC,SAAS,CAAC;aACjB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7B,IAAI,EAAE,CAAA;QACT,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9B,IAAI,EAAE,CAAA;QACT,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC3B,CAAC"}
1
+ {"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,OAAO,EAEL,oBAAoB,EAIpB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,MAAM,OAAO,cAGX,SAAQ,gBAAqC;IAC7C,MAAM,CAAU,aAAa,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAEtD,KAAK,CAAC,aAAa,CAAC,WAAsB,EAAE;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC3B,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAClD,MAAM,cAAc,GAAc,EAAE,CAAA;QAEpC,IAAI;YACF,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;YACrF,MAAM,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,QAAQ,CAAC,CAAA;YAC5D,cAAc,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;YACxC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;SAChC;QAAC,OAAO,EAAE,EAAE;YACX,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACH;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,cAAc,CAAC,CAAA;QACxG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QACzC,OAAO,CAAC,YAAY,EAAE,GAAG,cAAc,CAAC,CAAA;IAC1C,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAA4B;QACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACxF,MAAM,QAAQ,GAAG,OAAO;aACrB,MAAM,CAAC,SAAS,CAAC;aACjB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7B,IAAI,EAAE,CAAA;QACT,MAAM,MAAM,GAAG,OAAO;aACnB,MAAM,CAAC,QAAQ,CAAC;aAChB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9B,IAAI,EAAE,CAAA;QACT,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC3B,CAAC"}
@@ -5,10 +5,16 @@ export class SentinelWrapper extends ModuleWrapper {
5
5
  static instanceIdentityCheck = isSentinelInstance;
6
6
  static moduleIdentityCheck = isSentinelModule;
7
7
  static requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries];
8
+ archivists() {
9
+ throw Error('Not supported');
10
+ }
8
11
  async report(payloads) {
9
12
  const queryPayload = { schema: SentinelReportQuerySchema };
10
13
  const result = await this.sendQuery(queryPayload, payloads);
11
14
  return result;
12
15
  }
16
+ witnesses() {
17
+ throw Error('Not supported');
18
+ }
13
19
  }
14
20
  //# sourceMappingURL=Wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAIhB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAA;AAEpC,0BAA0B,EAAE,CAAA;AAC5B,MAAM,OAAO,eACX,SAAQ,aAAsB;IAG9B,MAAM,CAAU,qBAAqB,GAAG,kBAAkB,CAAA;IAC1D,MAAM,CAAU,mBAAmB,GAAG,gBAAgB,CAAA;IACtD,MAAM,CAAU,eAAe,GAAG,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;IAEvF,KAAK,CAAC,MAAM,CAAC,QAAoB;QAC/B,MAAM,YAAY,GAAwB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;QAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3D,OAAO,MAAM,CAAA;IACf,CAAC"}
1
+ {"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAIhB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAA;AAGpC,0BAA0B,EAAE,CAAA;AAC5B,MAAM,OAAO,eACX,SAAQ,aAAsB;IAG9B,MAAM,CAAU,qBAAqB,GAAG,kBAAkB,CAAA;IAC1D,MAAM,CAAU,mBAAmB,GAAG,gBAAgB,CAAA;IACtD,MAAM,CAAU,eAAe,GAAG,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;IAEvF,UAAU;QACR,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAoB;QAC/B,MAAM,YAAY,GAAwB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;QAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS;QACP,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AbstractArchivingModule, ArchivistInstance } from '@xyo-network/archivist';
1
+ import { AbstractArchivingModule } from '@xyo-network/archivist';
2
2
  import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
3
3
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
4
  import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module';
@@ -6,19 +6,16 @@ import { Payload } from '@xyo-network/payload-model';
6
6
  import { CustomSentinelInstance, SentinelInstance, SentinelModuleEventData, SentinelParams, SentinelQueryBase } from '@xyo-network/sentinel-model';
7
7
  import { WitnessInstance } from '@xyo-network/witness';
8
8
  export declare abstract class AbstractSentinel<TParams extends SentinelParams = SentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends AbstractArchivingModule<TParams, TEventData> implements CustomSentinelInstance<TParams, TEventData> {
9
- static readonly configSchemas: string[];
10
9
  history: BoundWitness[];
11
- private _archivists;
12
- private _witnesses;
13
10
  get queries(): string[];
14
11
  protected get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string>;
15
12
  addArchivist(address: string[]): void;
16
13
  addWitness(address: string[]): void;
17
- getArchivists(): Promise<ArchivistInstance[]>;
18
- getWitnesses(): Promise<WitnessInstance[]>;
14
+ archivists(): Promise<import("@xyo-network/archivist").ArchivistInstance[]>;
19
15
  removeArchivist(address: string[]): void;
20
16
  removeWitness(address: string[]): void;
21
17
  report(inPayloads?: Payload[]): Promise<Payload[]>;
18
+ witnesses(): Promise<WitnessInstance[]>;
22
19
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
23
20
  abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>;
24
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAuB,MAAM,wBAAwB,CAAA;AACxG,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAmC,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGzE,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,uBAAuB,CAAC,OAAO,EAAE,UAAU,CACnD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyB;IAEzE,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,UAAU,CAA+B;IAEjD,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAED,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE;IAK9B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAKtB,aAAa;IAgBb,YAAY;IAalB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAKjC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IAKzB,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAU/B,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
+ {"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAuB,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAmC,MAAM,iCAAiC,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,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,sBAAsB,CAAA;AAGzE,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,uBAAuB,CAAC,OAAO,EAAE,UAAU,CACnD,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,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE;IAI9B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAItB,UAAU;IAsBhB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAIjC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IAIzB,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUlD,SAAS;cAwBU,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,10 +1,14 @@
1
+ import { ArchivistInstance } from '@xyo-network/archivist';
1
2
  import { ModuleWrapper } from '@xyo-network/module';
2
3
  import { Payload } from '@xyo-network/payload-model';
3
4
  import { SentinelInstance, SentinelModule } from '@xyo-network/sentinel-model';
5
+ import { WitnessInstance } from '@xyo-network/witness';
4
6
  export declare class SentinelWrapper<TModule extends SentinelModule = SentinelModule> extends ModuleWrapper<TModule> implements SentinelInstance<TModule['params']> {
5
7
  static instanceIdentityCheck: import("@xyo-network/object-identity").ObjectTypeCheck<SentinelInstance>;
6
8
  static moduleIdentityCheck: import("@xyo-network/module").ModuleTypeCheck<SentinelModule>;
7
9
  static requiredQueries: string[];
10
+ archivists(): Promise<ArchivistInstance[]>;
8
11
  report(payloads?: Payload[]): Promise<Payload[]>;
12
+ witnesses(): Promise<WitnessInstance[]>;
9
13
  }
10
14
  //# sourceMappingURL=Wrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAGL,gBAAgB,EAChB,cAAc,EAGf,MAAM,6BAA6B,CAAA;AAGpC,qBAAa,eAAe,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,CAC1E,SAAQ,aAAa,CAAC,OAAO,CAC7B,YAAW,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAgB,qBAAqB,2EAAqB;IAC1D,OAAgB,mBAAmB,gEAAmB;IACtD,OAAgB,eAAe,WAAwD;IAEjF,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAKvD"}
1
+ {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAA8B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAGL,gBAAgB,EAChB,cAAc,EAGf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,qBAAa,eAAe,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,CAC1E,SAAQ,aAAa,CAAC,OAAO,CAC7B,YAAW,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAgB,qBAAqB,2EAAqB;IAC1D,OAAgB,mBAAmB,gEAAmB;IACtD,OAAgB,eAAe,WAAwD;IAEvF,UAAU,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIpC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAMtD,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAGxC"}
package/package.json CHANGED
@@ -12,16 +12,16 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.9.3",
14
14
  "@xylabs/promise": "^2.9.3",
15
- "@xyo-network/archivist": "~2.70.2",
16
- "@xyo-network/boundwitness-builder": "~2.70.2",
17
- "@xyo-network/boundwitness-model": "~2.70.2",
18
- "@xyo-network/core": "~2.70.2",
19
- "@xyo-network/error": "~2.70.2",
20
- "@xyo-network/module": "~2.70.2",
21
- "@xyo-network/payload-model": "~2.70.2",
22
- "@xyo-network/payload-wrapper": "~2.70.2",
23
- "@xyo-network/sentinel-model": "~2.70.2",
24
- "@xyo-network/witness": "~2.70.2",
15
+ "@xyo-network/archivist": "~2.70.4",
16
+ "@xyo-network/boundwitness-builder": "~2.70.4",
17
+ "@xyo-network/boundwitness-model": "~2.70.4",
18
+ "@xyo-network/core": "~2.70.4",
19
+ "@xyo-network/error": "~2.70.4",
20
+ "@xyo-network/module": "~2.70.4",
21
+ "@xyo-network/payload-model": "~2.70.4",
22
+ "@xyo-network/payload-wrapper": "~2.70.4",
23
+ "@xyo-network/sentinel-model": "~2.70.4",
24
+ "@xyo-network/witness": "~2.70.4",
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.70.2"
66
+ "version": "2.70.4"
67
67
  }
@@ -1,12 +1,11 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
- import { AbstractArchivingModule, ArchivistInstance, asArchivistInstance } from '@xyo-network/archivist'
2
+ import { AbstractArchivingModule, asArchivistInstance } from '@xyo-network/archivist'
3
3
  import { QueryBoundWitness, QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder'
4
4
  import { BoundWitness, isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model'
5
5
  import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module'
6
6
  import { Payload } from '@xyo-network/payload-model'
7
7
  import {
8
8
  CustomSentinelInstance,
9
- SentinelConfigSchema,
10
9
  SentinelInstance,
11
10
  SentinelModuleEventData,
12
11
  SentinelParams,
@@ -23,13 +22,8 @@ export abstract class AbstractSentinel<
23
22
  extends AbstractArchivingModule<TParams, TEventData>
24
23
  implements CustomSentinelInstance<TParams, TEventData>
25
24
  {
26
- static override readonly configSchemas: string[] = [SentinelConfigSchema]
27
-
28
25
  history: BoundWitness[] = []
29
26
 
30
- private _archivists: ArchivistInstance[] | undefined
31
- private _witnesses: WitnessInstance[] | undefined
32
-
33
27
  override get queries(): string[] {
34
28
  return [SentinelReportQuerySchema, ...super.queries]
35
29
  }
@@ -42,51 +36,40 @@ export abstract class AbstractSentinel<
42
36
 
43
37
  addArchivist(address: string[]) {
44
38
  this.config.archivists = uniq([...address, ...(this.config.archivists ?? [])])
45
- this._archivists = undefined
46
39
  }
47
40
 
48
41
  addWitness(address: string[]) {
49
42
  this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])])
50
- this._witnesses = undefined
51
43
  }
52
44
 
53
- async getArchivists() {
54
- const addresses = this.config?.archivists
45
+ async archivists() {
46
+ this.logger?.debug(`archivists:config:archivist: ${this.config?.archivists?.length}`)
47
+ const namesOrAddresses = this.config?.archivists
55
48
  ? Array.isArray(this.config.archivists)
56
49
  ? this.config?.archivists
57
50
  : [this.config.archivists]
58
51
  : undefined
59
- this._archivists = (await this.resolve(addresses ? { address: addresses, name: addresses } : undefined)).map((module) =>
60
- assertEx(asArchivistInstance(module), 'Tried to resolve a non-archivist as an archivist'),
61
- )
62
- if (addresses && addresses.length !== this._archivists.length) {
63
- this.logger?.warn(`Not all archivists found [Requested: ${addresses.length}, Found: ${this._archivists.length}]`)
52
+ this.logger?.debug(`archivist:namesOrAddresses: ${namesOrAddresses?.length}`)
53
+ const result = [
54
+ ...(await this.resolve(namesOrAddresses ? { address: namesOrAddresses } : undefined)),
55
+ ...(await this.resolve(namesOrAddresses ? { name: namesOrAddresses } : undefined)),
56
+ ].map((module) => assertEx(asArchivistInstance(module), 'Tried to resolve a non-archivist as an archivist'))
57
+
58
+ if (namesOrAddresses && namesOrAddresses.length !== result.length) {
59
+ this.logger?.warn(`Not all archivists found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)
64
60
  }
65
61
 
66
- return this._archivists
67
- }
68
-
69
- async getWitnesses() {
70
- const addresses = this.config?.witnesses ? (Array.isArray(this.config.witnesses) ? this.config?.witnesses : [this.config.witnesses]) : undefined
71
- this._witnesses = await this.resolve<WitnessInstance>(addresses ? { address: addresses, name: addresses } : undefined, {
72
- identity: isWitnessInstance,
73
- })
74
-
75
- if (addresses && addresses.length !== this._witnesses.length) {
76
- this.logger?.warn(`Not all witnesses found [Requested: ${addresses.length}, Found: ${this._witnesses.length}]`)
77
- }
62
+ this.logger?.debug(`archivists:result: ${result?.length}`)
78
63
 
79
- return this._witnesses
64
+ return result
80
65
  }
81
66
 
82
67
  removeArchivist(address: string[]) {
83
68
  this.config.archivists = (this.config.archivists ?? []).filter((archivist) => !address.includes(archivist))
84
- this._archivists = undefined
85
69
  }
86
70
 
87
71
  removeWitness(address: string[]) {
88
72
  this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness))
89
- this._witnesses = undefined
90
73
  }
91
74
 
92
75
  async report(inPayloads?: Payload[]): Promise<Payload[]> {
@@ -99,6 +82,30 @@ export abstract class AbstractSentinel<
99
82
  return payloads
100
83
  }
101
84
 
85
+ async witnesses() {
86
+ this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`)
87
+ const namesOrAddresses = this.config?.witnesses
88
+ ? Array.isArray(this.config.witnesses)
89
+ ? this.config?.witnesses
90
+ : [this.config.witnesses]
91
+ : undefined
92
+ this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`)
93
+ const result = namesOrAddresses
94
+ ? [
95
+ ...(await this.resolve<WitnessInstance>({ address: namesOrAddresses }, { identity: isWitnessInstance })),
96
+ ...(await this.resolve<WitnessInstance>({ name: namesOrAddresses }, { identity: isWitnessInstance })),
97
+ ]
98
+ : await this.resolve<WitnessInstance>(undefined, { identity: isWitnessInstance })
99
+
100
+ if (namesOrAddresses && namesOrAddresses.length !== result.length) {
101
+ this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`)
102
+ }
103
+
104
+ this.logger?.debug(`witnesses:result: ${result?.length}`)
105
+
106
+ return result
107
+ }
108
+
102
109
  protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
103
110
  query: T,
104
111
  payloads?: Payload[],
@@ -28,7 +28,7 @@ export class MemorySentinel<
28
28
  async reportHandler(payloads: Payload[] = []): Promise<Payload[]> {
29
29
  await this.started('throw')
30
30
  const errors: Error[] = []
31
- const allWitnesses = [...(await this.getWitnesses())]
31
+ const allWitnesses = [...(await this.witnesses())]
32
32
  const resultPayloads: Payload[] = []
33
33
 
34
34
  try {
package/src/Wrapper.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ArchivistInstance } from '@xyo-network/archivist'
1
2
  import { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module'
2
3
  import { Payload } from '@xyo-network/payload-model'
3
4
  import {
@@ -8,6 +9,7 @@ import {
8
9
  SentinelReportQuery,
9
10
  SentinelReportQuerySchema,
10
11
  } from '@xyo-network/sentinel-model'
12
+ import { WitnessInstance } from '@xyo-network/witness'
11
13
 
12
14
  constructableModuleWrapper()
13
15
  export class SentinelWrapper<TModule extends SentinelModule = SentinelModule>
@@ -18,9 +20,17 @@ export class SentinelWrapper<TModule extends SentinelModule = SentinelModule>
18
20
  static override moduleIdentityCheck = isSentinelModule
19
21
  static override requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries]
20
22
 
23
+ archivists(): Promise<ArchivistInstance[]> {
24
+ throw Error('Not supported')
25
+ }
26
+
21
27
  async report(payloads?: Payload[]): Promise<Payload[]> {
22
28
  const queryPayload: SentinelReportQuery = { schema: SentinelReportQuerySchema }
23
29
  const result = await this.sendQuery(queryPayload, payloads)
24
30
  return result
25
31
  }
32
+
33
+ witnesses(): Promise<WitnessInstance[]> {
34
+ throw Error('Not supported')
35
+ }
26
36
  }