@xyo-network/sentinel 2.51.9 → 2.51.10

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.
Files changed (57) hide show
  1. package/dist/cjs/AbstractSentinel.js +4 -2
  2. package/dist/cjs/AbstractSentinel.js.map +1 -1
  3. package/dist/cjs/Events/ReportEnd.js +3 -0
  4. package/dist/cjs/Events/ReportEnd.js.map +1 -0
  5. package/dist/cjs/Events/ReportStart.js +3 -0
  6. package/dist/cjs/Events/ReportStart.js.map +1 -0
  7. package/dist/cjs/Events/index.js +6 -0
  8. package/dist/cjs/Events/index.js.map +1 -0
  9. package/dist/cjs/MemorySentinel.js +2 -11
  10. package/dist/cjs/MemorySentinel.js.map +1 -1
  11. package/dist/cjs/Wrapper.js +4 -4
  12. package/dist/cjs/Wrapper.js.map +1 -1
  13. package/dist/cjs/index.js +1 -0
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/docs.json +54806 -25607
  16. package/dist/esm/AbstractSentinel.js +4 -2
  17. package/dist/esm/AbstractSentinel.js.map +1 -1
  18. package/dist/esm/Events/ReportEnd.js +2 -0
  19. package/dist/esm/Events/ReportEnd.js.map +1 -0
  20. package/dist/esm/Events/ReportStart.js +2 -0
  21. package/dist/esm/Events/ReportStart.js.map +1 -0
  22. package/dist/esm/Events/index.js +3 -0
  23. package/dist/esm/Events/index.js.map +1 -0
  24. package/dist/esm/MemorySentinel.js +3 -6
  25. package/dist/esm/MemorySentinel.js.map +1 -1
  26. package/dist/esm/Wrapper.js +4 -4
  27. package/dist/esm/Wrapper.js.map +1 -1
  28. package/dist/esm/index.js +1 -0
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/types/AbstractSentinel.d.ts +3 -10
  31. package/dist/types/AbstractSentinel.d.ts.map +1 -1
  32. package/dist/types/Config.d.ts +1 -0
  33. package/dist/types/Config.d.ts.map +1 -1
  34. package/dist/types/Events/ReportEnd.d.ts +10 -0
  35. package/dist/types/Events/ReportEnd.d.ts.map +1 -0
  36. package/dist/types/Events/ReportStart.d.ts +6 -0
  37. package/dist/types/Events/ReportStart.d.ts.map +1 -0
  38. package/dist/types/Events/index.d.ts +3 -0
  39. package/dist/types/Events/index.d.ts.map +1 -0
  40. package/dist/types/MemorySentinel.d.ts +5 -13
  41. package/dist/types/MemorySentinel.d.ts.map +1 -1
  42. package/dist/types/SentinelModel.d.ts +7 -2
  43. package/dist/types/SentinelModel.d.ts.map +1 -1
  44. package/dist/types/Wrapper.d.ts +4 -4
  45. package/dist/types/Wrapper.d.ts.map +1 -1
  46. package/dist/types/index.d.ts +1 -0
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/package.json +13 -13
  49. package/src/AbstractSentinel.ts +12 -23
  50. package/src/Config.ts +1 -0
  51. package/src/Events/ReportEnd.ts +11 -0
  52. package/src/Events/ReportStart.ts +7 -0
  53. package/src/Events/index.ts +2 -0
  54. package/src/MemorySentinel.ts +15 -19
  55. package/src/SentinelModel.ts +12 -2
  56. package/src/Wrapper.ts +7 -7
  57. package/src/index.ts +1 -0
@@ -18,13 +18,15 @@ export class AbstractSentinel extends ArchivingModule {
18
18
  async getArchivists() {
19
19
  const addresses = this.config?.archivists ? (Array.isArray(this.config.archivists) ? this.config?.archivists : [this.config.archivists]) : [];
20
20
  this._archivists =
21
- this._archivists || (await this.resolve({ address: addresses })).map((witness) => new ArchivistWrapper(witness));
21
+ this._archivists ||
22
+ (await this.resolve({ address: addresses })).map((witness) => new ArchivistWrapper({ account: this.account, module: witness }));
22
23
  return this._archivists;
23
24
  }
24
25
  async getWitnesses() {
25
26
  const addresses = this.config?.witnesses ? (Array.isArray(this.config.witnesses) ? this.config?.witnesses : [this.config.witnesses]) : [];
26
27
  this._witnesses =
27
- this._witnesses || (await this.resolve({ address: addresses })).map((witness) => new WitnessWrapper(witness));
28
+ this._witnesses ||
29
+ (await this.resolve({ address: addresses })).map((witness) => new WitnessWrapper({ account: this.account, module: witness }));
28
30
  return this._witnesses;
29
31
  }
30
32
  removeArchivist(address) {
@@ -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":"AAAA,OAAO,EAAqB,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAIjE,OAAO,EAAmB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,IAAI,MAAM,aAAa,CAAA;AAG9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAGrD,MAAM,OAAgB,gBACpB,SAAQ,eAAwB;IAGhC,MAAM,CAAU,YAAY,CAAsB;IAElD,OAAO,GAAsB,EAAE,CAAA;IACvB,WAAW,CAAgC;IAC3C,UAAU,CAA8B;IAEhD,IAAa,OAAO;QAClB,OAAO,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,UAAU,CAAC,OAAiB;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7I,IAAI,CAAC,WAAW;YACd,IAAI,CAAC,WAAW;gBACf,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAyB,CAAC,GAAG,CACvE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAC9E,CAAA;QAEH,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzI,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,UAAU;gBACd,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAuB,CAAC,GAAG,CACrE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAC5E,CAAA;QAEH,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,eAAe,CAAC,OAAiB;QAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;QAC3G,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;IAC9B,CAAC;IAED,aAAa,CAAC,OAAiB;QAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACrG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC7B,CAAC;CAGF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ReportEnd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportEnd.js","sourceRoot":"","sources":["../../../src/Events/ReportEnd.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ReportStart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportStart.js","sourceRoot":"","sources":["../../../src/Events/ReportStart.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './ReportEnd';
2
+ export * from './ReportStart';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -1,14 +1,11 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { Account } from '@xyo-network/account';
3
- import { QueryBoundWitnessWrapper, XyoErrorBuilder } from '@xyo-network/module';
3
+ import { QueryBoundWitnessWrapper, XyoErrorBuilder, } from '@xyo-network/module';
4
4
  import compact from 'lodash/compact';
5
5
  import { AbstractSentinel } from './AbstractSentinel';
6
6
  import { SentinelReportQuerySchema } from './Queries';
7
7
  export class MemorySentinel extends AbstractSentinel {
8
8
  static configSchema;
9
- static async create(params) {
10
- return (await super.create(params));
11
- }
12
9
  async query(query, payloads, queryConfig) {
13
10
  const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
14
11
  const typedQuery = wrapper.query;
@@ -33,7 +30,7 @@ export class MemorySentinel extends AbstractSentinel {
33
30
  }
34
31
  async report(payloads = []) {
35
32
  const errors = [];
36
- this.params?.onReportStart?.();
33
+ await this.emit('onReportStarted');
37
34
  const allWitnesses = [...(await this.getWitnesses())];
38
35
  const allPayloads = [];
39
36
  try {
@@ -46,7 +43,7 @@ export class MemorySentinel extends AbstractSentinel {
46
43
  }
47
44
  const [newBoundWitness] = await this.bindResult(allPayloads);
48
45
  this.history.push(assertEx(newBoundWitness));
49
- this.params?.onReportEnd?.(newBoundWitness, errors.length > 0 ? errors : undefined);
46
+ await this.emit('onReportEnded', { errors, newBoundWitness });
50
47
  return [newBoundWitness, ...allPayloads];
51
48
  }
52
49
  async generatePayloads(witnesses) {
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
4
4
  import { SentinelReportQuerySchema } from './Queries';
5
5
  export class SentinelWrapper extends ModuleWrapper {
6
6
  static requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries];
7
- constructor(module, account) {
8
- super(module, account);
9
- assertEx(module.queries.includes(SentinelReportQuerySchema));
7
+ constructor(params) {
8
+ super(params);
9
+ assertEx(params.module.queries.includes(SentinelReportQuerySchema));
10
10
  }
11
11
  static tryWrap(module, account) {
12
12
  if (module) {
@@ -15,7 +15,7 @@ export class SentinelWrapper extends ModuleWrapper {
15
15
  //console.warn(`Missing queries: ${JSON.stringify(missingRequiredQueries, null, 2)}`)
16
16
  }
17
17
  else {
18
- return new SentinelWrapper(module, account);
18
+ return new SentinelWrapper({ account, module: module });
19
19
  }
20
20
  }
21
21
  }
@@ -1 +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,OAAyB;QACnD,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,OAAyB;QAChE,IAAI,MAAM,EAAE;YACV,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAClE,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,qFAAqF;aACtF;iBAAM;gBACL,OAAO,IAAI,eAAe,CAAC,MAAwB,EAAE,OAAO,CAAC,CAAA;aAC9D;SACF;IACH,CAAC;IAED,MAAM,CAAU,IAAI,CAAC,MAAe,EAAE,OAAyB;QAC7D,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"}
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,EAAuB,MAAM,qBAAqB,CAAA;AAGxE,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,MAA2C;QACrD,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,CAAU,OAAO,CAAC,MAAe,EAAE,OAAyB;QAChE,IAAI,MAAM,EAAE;YACV,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAA;YAClE,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrC,qFAAqF;aACtF;iBAAM;gBACL,OAAO,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAwB,EAAE,CAAC,CAAA;aAC1E;SACF;IACH,CAAC;IAED,MAAM,CAAU,IAAI,CAAC,MAAe,EAAE,OAAyB;QAC7D,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
@@ -1,6 +1,7 @@
1
1
  export * from './AbstractSentinel';
2
2
  export * from './Automation';
3
3
  export * from './Config';
4
+ export * from './Events';
4
5
  export * from './MemorySentinel';
5
6
  export * from './Queries';
6
7
  export * from './SentinelIntervalAutomationWrapper';
@@ -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,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,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,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA"}
@@ -1,19 +1,12 @@
1
1
  import { ArchivingModule } from '@xyo-network/archivist';
2
2
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
3
3
  import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
4
- import { AnyObject } from '@xyo-network/core';
5
- import { ModuleParams, WithAdditional } from '@xyo-network/module';
4
+ import { AnyConfigSchema } from '@xyo-network/module';
6
5
  import { XyoPayload } from '@xyo-network/payload-model';
7
6
  import { WitnessWrapper } from '@xyo-network/witness';
8
7
  import { SentinelConfig, SentinelConfigSchema } from './Config';
9
- import { SentinelModule } from './SentinelModel';
10
- export type SentinelParams<TConfig extends SentinelConfig = SentinelConfig, TAdditionalParams extends AnyObject | undefined = undefined> = ModuleParams<TConfig, WithAdditional<{
11
- onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void;
12
- onReportStart?: () => void;
13
- onWitnessReportEnd?: (witness: WitnessWrapper, error?: Error) => void;
14
- onWitnessReportStart?: (witness: WitnessWrapper) => void;
15
- }, TAdditionalParams>>;
16
- export declare abstract class AbstractSentinel<TParams extends SentinelParams<SentinelConfig> = SentinelParams<SentinelConfig>> extends ArchivingModule<TParams> implements SentinelModule<TParams['config']> {
8
+ import { SentinelModule, SentinelParams } from './SentinelModel';
9
+ export declare abstract class AbstractSentinel<TParams extends SentinelParams<AnyConfigSchema<SentinelConfig>> = SentinelParams<SentinelConfig>> extends ArchivingModule<TParams> implements SentinelModule<TParams> {
17
10
  static configSchema: SentinelConfigSchema;
18
11
  history: XyoBoundWitness[];
19
12
  private _archivists;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAAA,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,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAmB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,iBAAiB,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IACzD,YAAY,CACd,OAAO,EACP,cAAc,CACZ;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,EACD,iBAAiB,CAClB,CACF,CAAA;AAED,8BAAsB,gBAAgB,CAAC,OAAO,SAAS,cAAc,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CACpH,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;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAKtB,aAAa;IAQb,YAAY;IAQlB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAKjC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IAK/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAChE"}
1
+ {"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAAA,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,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAmB,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhE,8BAAsB,gBAAgB,CAAC,OAAO,SAAS,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CACrI,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,cAAc,CAAC,OAAO,CAAC;IAElC,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;IAED,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;IAKtB,aAAa;IAWb,YAAY;IAWlB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAKjC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;IAK/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAChE"}
@@ -4,6 +4,7 @@ import { XyoPayload } from '@xyo-network/payload-model';
4
4
  export type SentinelConfigSchema = 'network.xyo.node.sentinel';
5
5
  export declare const SentinelConfigSchema: SentinelConfigSchema;
6
6
  export type SentinelConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfig<ArchivingModuleConfig & {
7
+ schema: SentinelConfigSchema;
7
8
  witnesses?: string[];
8
9
  } & TConfig>;
9
10
  //# 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,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
+ {"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,MAAM,EAAE,oBAAoB,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,GAAG,OAAO,CACZ,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
2
+ import { EventData, ModuleEventArgs } from '@xyo-network/module';
3
+ export type SentinelReportEndEventArgs = ModuleEventArgs<{
4
+ boundWitness?: XyoBoundWitness;
5
+ errors?: Error[];
6
+ }>;
7
+ export interface SentinelReportEndEventData extends EventData {
8
+ reportEnd: SentinelReportEndEventArgs;
9
+ }
10
+ //# sourceMappingURL=ReportEnd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportEnd.d.ts","sourceRoot":"","sources":["../../../src/Events/ReportEnd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEhE,MAAM,MAAM,0BAA0B,GAAG,eAAe,CAAC;IACvD,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;CACjB,CAAC,CAAA;AAEF,MAAM,WAAW,0BAA2B,SAAQ,SAAS;IAC3D,SAAS,EAAE,0BAA0B,CAAA;CACtC"}
@@ -0,0 +1,6 @@
1
+ import { EventData, ModuleEventArgs } from '@xyo-network/module';
2
+ export type SentinelReportStartEventArgs = ModuleEventArgs;
3
+ export interface SentinelReportStartEventData extends EventData {
4
+ reportStart: SentinelReportStartEventArgs;
5
+ }
6
+ //# sourceMappingURL=ReportStart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportStart.d.ts","sourceRoot":"","sources":["../../../src/Events/ReportStart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEhE,MAAM,MAAM,4BAA4B,GAAG,eAAe,CAAA;AAE1D,MAAM,WAAW,4BAA6B,SAAQ,SAAS;IAC7D,WAAW,EAAE,4BAA4B,CAAA;CAC1C"}
@@ -0,0 +1,3 @@
1
+ export * from './ReportEnd';
2
+ export * from './ReportStart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Events/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -1,19 +1,11 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness-model';
2
- import { ModuleConfig, ModuleQueryResult, XyoQueryBoundWitness } from '@xyo-network/module';
1
+ import { AnyConfigSchema, ModuleConfig, ModuleQueryResult, XyoQueryBoundWitness } from '@xyo-network/module';
3
2
  import { XyoPayload } from '@xyo-network/payload-model';
4
- import { WitnessWrapper } from '@xyo-network/witness';
5
- import { AbstractSentinel, SentinelParams } from './AbstractSentinel';
3
+ import { AbstractSentinel } from './AbstractSentinel';
6
4
  import { SentinelConfig, SentinelConfigSchema } from './Config';
7
- import { SentinelModule } from './SentinelModel';
8
- export type MemorySentinelParams<TConfig extends SentinelConfig = SentinelConfig> = SentinelParams<TConfig, {
9
- onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void;
10
- onReportStart?: () => void;
11
- onWitnessReportEnd?: (witness: WitnessWrapper, error?: Error) => void;
12
- onWitnessReportStart?: (witness: WitnessWrapper) => void;
13
- }>;
14
- export declare class MemorySentinel<TParams extends MemorySentinelParams = MemorySentinelParams> extends AbstractSentinel<TParams> implements SentinelModule<TParams['config']> {
5
+ import { SentinelModule, SentinelParams } from './SentinelModel';
6
+ export type MemorySentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>> = SentinelParams<AnyConfigSchema<TConfig>>;
7
+ export declare class MemorySentinel<TParams extends MemorySentinelParams = MemorySentinelParams> extends AbstractSentinel<TParams> implements SentinelModule<TParams> {
15
8
  static configSchema: SentinelConfigSchema;
16
- static create(params?: MemorySentinelParams): Promise<MemorySentinel>;
17
9
  query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: XyoPayload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
18
10
  report(payloads?: XyoPayload[]): Promise<XyoPayload[]>;
19
11
  private generatePayloads;
@@ -1 +1 @@
1
- {"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAA6C,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACtI,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI,cAAc,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,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CACrF,SAAQ,gBAAgB,CAAC,OAAO,CAChC,YAAW,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,OAAgB,YAAY,EAAE,oBAAoB,CAAA;WAE5B,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrE,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;IAsBvB,MAAM,CAAC,QAAQ,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAoBlD,gBAAgB;CAG/B"}
1
+ {"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,iBAAiB,EAGjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAIvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhE,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,cAAc,CAClI,eAAe,CAAC,OAAO,CAAC,CACzB,CAAA;AAED,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CACrF,SAAQ,gBAAgB,CAAC,OAAO,CAChC,YAAW,cAAc,CAAC,OAAO,CAAC;IAElC,OAAgB,YAAY,EAAE,oBAAoB,CAAA;IAEnC,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;IAsBvB,MAAM,CAAC,QAAQ,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAoBlD,gBAAgB;CAG/B"}
@@ -1,9 +1,14 @@
1
- import { Module } from '@xyo-network/module';
1
+ import { AnyObject } from '@xyo-network/core';
2
+ import { AnyConfigSchema, EventData, Module, ModuleEventData, ModuleParams } from '@xyo-network/module';
2
3
  import { XyoPayload } from '@xyo-network/payload-model';
3
4
  import { Promisable } from '@xyo-network/promise';
4
5
  import { SentinelConfig } from './Config';
6
+ import { SentinelReportEndEventData, SentinelReportStartEventData } from './Events';
5
7
  export interface Sentinel {
6
8
  report: (payloads?: XyoPayload[]) => Promisable<XyoPayload[]>;
7
9
  }
8
- export type SentinelModule<TConfig extends SentinelConfig = SentinelConfig> = Module<TConfig> & Sentinel;
10
+ export interface SentinelModuleEventData extends SentinelReportEndEventData, SentinelReportStartEventData {
11
+ }
12
+ export type SentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>, TEventData extends ModuleEventData = ModuleEventData, TAdditionalParams extends AnyObject | undefined = undefined> = ModuleParams<TConfig, TEventData extends EventData ? SentinelModuleEventData | TEventData : SentinelModuleEventData, TAdditionalParams>;
13
+ export type SentinelModule<TParams extends SentinelParams = SentinelParams> = Module<TParams> & Sentinel;
9
14
  //# sourceMappingURL=SentinelModel.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"SentinelModel.d.ts","sourceRoot":"","sources":["../../src/SentinelModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEnF,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,uBAAwB,SAAQ,0BAA0B,EAAE,4BAA4B;CAAG;AAE5G,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,eAAe,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,EACjF,UAAU,SAAS,eAAe,GAAG,eAAe,EACpD,iBAAiB,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,IACzD,YAAY,CAAC,OAAO,EAAE,UAAU,SAAS,SAAS,GAAG,uBAAuB,GAAG,UAAU,GAAG,uBAAuB,EAAE,iBAAiB,CAAC,CAAA;AAE3I,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAA"}
@@ -1,11 +1,11 @@
1
1
  import { AccountInstance } from '@xyo-network/account-model';
2
- import { ModuleWrapper } from '@xyo-network/module';
2
+ import { ModuleWrapper, ModuleWrapperParams } from '@xyo-network/module';
3
3
  import { Module } from '@xyo-network/module-model';
4
4
  import { XyoPayload } from '@xyo-network/payload-model';
5
- import { Sentinel } from './SentinelModel';
6
- export declare class SentinelWrapper extends ModuleWrapper implements Sentinel {
5
+ import { SentinelModule } from './SentinelModel';
6
+ export declare class SentinelWrapper extends ModuleWrapper implements SentinelModule {
7
7
  static requiredQueries: string[];
8
- constructor(module: Module, account?: AccountInstance);
8
+ constructor(params: ModuleWrapperParams<SentinelModule>);
9
9
  static tryWrap(module?: Module, account?: AccountInstance): SentinelWrapper | undefined;
10
10
  static wrap(module?: Module, account?: AccountInstance): SentinelWrapper;
11
11
  report(payloads?: XyoPayload[]): Promise<XyoPayload[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,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,eAAe;WAKrC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;WAWhF,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe;IAI3E,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAK7D"}
1
+ {"version":3,"file":"Wrapper.d.ts","sourceRoot":"","sources":["../../src/Wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAIvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,qBAAa,eAAgB,SAAQ,aAAc,YAAW,cAAc;IAC1E,OAAgB,eAAe,WAAwD;gBAE3E,MAAM,EAAE,mBAAmB,CAAC,cAAc,CAAC;WAKvC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;WAWhF,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,eAAe;IAI3E,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAK7D"}
@@ -1,6 +1,7 @@
1
1
  export * from './AbstractSentinel';
2
2
  export * from './Automation';
3
3
  export * from './Config';
4
+ export * from './Events';
4
5
  export * from './MemorySentinel';
5
6
  export * from './Queries';
6
7
  export * from './SentinelIntervalAutomationWrapper';
@@ -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,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,qCAAqC,CAAA;AACnD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,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,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,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,18 +11,18 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.7.4",
14
- "@xyo-network/account": "^2.51.9",
15
- "@xyo-network/account-model": "^2.51.9",
16
- "@xyo-network/archivist": "^2.51.9",
17
- "@xyo-network/archivist-wrapper": "^2.51.9",
18
- "@xyo-network/boundwitness-model": "^2.51.9",
19
- "@xyo-network/core": "^2.51.9",
20
- "@xyo-network/module": "^2.51.9",
21
- "@xyo-network/module-model": "^2.51.9",
22
- "@xyo-network/payload-model": "^2.51.9",
23
- "@xyo-network/payload-wrapper": "^2.51.9",
24
- "@xyo-network/promise": "^2.51.9",
25
- "@xyo-network/witness": "^2.51.9",
14
+ "@xyo-network/account": "^2.51.10",
15
+ "@xyo-network/account-model": "^2.51.10",
16
+ "@xyo-network/archivist": "^2.51.10",
17
+ "@xyo-network/archivist-wrapper": "^2.51.10",
18
+ "@xyo-network/boundwitness-model": "^2.51.10",
19
+ "@xyo-network/core": "^2.51.10",
20
+ "@xyo-network/module": "^2.51.10",
21
+ "@xyo-network/module-model": "^2.51.10",
22
+ "@xyo-network/payload-model": "^2.51.10",
23
+ "@xyo-network/payload-wrapper": "^2.51.10",
24
+ "@xyo-network/promise": "^2.51.10",
25
+ "@xyo-network/witness": "^2.51.10",
26
26
  "lodash": "^4.17.21"
27
27
  },
28
28
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -64,5 +64,5 @@
64
64
  },
65
65
  "sideEffects": false,
66
66
  "types": "dist/types/index.d.ts",
67
- "version": "2.51.9"
67
+ "version": "2.51.10"
68
68
  }
@@ -1,35 +1,18 @@
1
1
  import { AbstractArchivist, ArchivingModule } from '@xyo-network/archivist'
2
2
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
3
3
  import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
4
- import { AnyObject } from '@xyo-network/core'
5
- import { ModuleParams, WithAdditional } from '@xyo-network/module'
4
+ import { AnyConfigSchema } from '@xyo-network/module'
6
5
  import { XyoPayload } from '@xyo-network/payload-model'
7
6
  import { AbstractWitness, WitnessWrapper } from '@xyo-network/witness'
8
7
  import uniq from 'lodash/uniq'
9
8
 
10
9
  import { SentinelConfig, SentinelConfigSchema } from './Config'
11
10
  import { SentinelReportQuerySchema } from './Queries'
12
- import { SentinelModule } from './SentinelModel'
11
+ import { SentinelModule, SentinelParams } from './SentinelModel'
13
12
 
14
- export type SentinelParams<
15
- TConfig extends SentinelConfig = SentinelConfig,
16
- TAdditionalParams extends AnyObject | undefined = undefined,
17
- > = ModuleParams<
18
- TConfig,
19
- WithAdditional<
20
- {
21
- onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void
22
- onReportStart?: () => void
23
- onWitnessReportEnd?: (witness: WitnessWrapper, error?: Error) => void
24
- onWitnessReportStart?: (witness: WitnessWrapper) => void
25
- },
26
- TAdditionalParams
27
- >
28
- >
29
-
30
- export abstract class AbstractSentinel<TParams extends SentinelParams<SentinelConfig> = SentinelParams<SentinelConfig>>
13
+ export abstract class AbstractSentinel<TParams extends SentinelParams<AnyConfigSchema<SentinelConfig>> = SentinelParams<SentinelConfig>>
31
14
  extends ArchivingModule<TParams>
32
- implements SentinelModule<TParams['config']>
15
+ implements SentinelModule<TParams>
33
16
  {
34
17
  static override configSchema: SentinelConfigSchema
35
18
 
@@ -49,7 +32,10 @@ export abstract class AbstractSentinel<TParams extends SentinelParams<SentinelCo
49
32
  async getArchivists() {
50
33
  const addresses = this.config?.archivists ? (Array.isArray(this.config.archivists) ? this.config?.archivists : [this.config.archivists]) : []
51
34
  this._archivists =
52
- this._archivists || ((await this.resolve({ address: addresses })) as AbstractArchivist[]).map((witness) => new ArchivistWrapper(witness))
35
+ this._archivists ||
36
+ ((await this.resolve({ address: addresses })) as AbstractArchivist[]).map(
37
+ (witness) => new ArchivistWrapper({ account: this.account, module: witness }),
38
+ )
53
39
 
54
40
  return this._archivists
55
41
  }
@@ -57,7 +43,10 @@ export abstract class AbstractSentinel<TParams extends SentinelParams<SentinelCo
57
43
  async getWitnesses() {
58
44
  const addresses = this.config?.witnesses ? (Array.isArray(this.config.witnesses) ? this.config?.witnesses : [this.config.witnesses]) : []
59
45
  this._witnesses =
60
- this._witnesses || ((await this.resolve({ address: addresses })) as AbstractWitness[]).map((witness) => new WitnessWrapper(witness))
46
+ this._witnesses ||
47
+ ((await this.resolve({ address: addresses })) as AbstractWitness[]).map(
48
+ (witness) => new WitnessWrapper({ account: this.account, module: witness }),
49
+ )
61
50
 
62
51
  return this._witnesses
63
52
  }
package/src/Config.ts CHANGED
@@ -7,6 +7,7 @@ export const SentinelConfigSchema: SentinelConfigSchema = 'network.xyo.node.sent
7
7
 
8
8
  export type SentinelConfig<TConfig extends XyoPayload = XyoPayload> = ModuleConfig<
9
9
  ArchivingModuleConfig & {
10
+ schema: SentinelConfigSchema
10
11
  witnesses?: string[]
11
12
  } & TConfig
12
13
  >
@@ -0,0 +1,11 @@
1
+ import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
2
+ import { EventData, ModuleEventArgs } from '@xyo-network/module'
3
+
4
+ export type SentinelReportEndEventArgs = ModuleEventArgs<{
5
+ boundWitness?: XyoBoundWitness
6
+ errors?: Error[]
7
+ }>
8
+
9
+ export interface SentinelReportEndEventData extends EventData {
10
+ reportEnd: SentinelReportEndEventArgs
11
+ }
@@ -0,0 +1,7 @@
1
+ import { EventData, ModuleEventArgs } from '@xyo-network/module'
2
+
3
+ export type SentinelReportStartEventArgs = ModuleEventArgs
4
+
5
+ export interface SentinelReportStartEventData extends EventData {
6
+ reportStart: SentinelReportStartEventArgs
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './ReportEnd'
2
+ export * from './ReportStart'
@@ -1,36 +1,32 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { Account } from '@xyo-network/account'
3
- import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
4
- import { ModuleConfig, ModuleQueryResult, QueryBoundWitnessWrapper, XyoErrorBuilder, XyoQueryBoundWitness } from '@xyo-network/module'
3
+ import {
4
+ AnyConfigSchema,
5
+ ModuleConfig,
6
+ ModuleQueryResult,
7
+ QueryBoundWitnessWrapper,
8
+ XyoErrorBuilder,
9
+ XyoQueryBoundWitness,
10
+ } from '@xyo-network/module'
5
11
  import { XyoPayload } from '@xyo-network/payload-model'
6
12
  import { WitnessWrapper } from '@xyo-network/witness'
7
13
  import compact from 'lodash/compact'
8
14
 
9
- import { AbstractSentinel, SentinelParams } from './AbstractSentinel'
15
+ import { AbstractSentinel } from './AbstractSentinel'
10
16
  import { SentinelConfig, SentinelConfigSchema } from './Config'
11
17
  import { SentinelQuery, SentinelReportQuerySchema } from './Queries'
12
- import { SentinelModule } from './SentinelModel'
18
+ import { SentinelModule, SentinelParams } from './SentinelModel'
13
19
 
14
- export type MemorySentinelParams<TConfig extends SentinelConfig = SentinelConfig> = SentinelParams<
15
- TConfig,
16
- {
17
- onReportEnd?: (boundWitness?: XyoBoundWitness, errors?: Error[]) => void
18
- onReportStart?: () => void
19
- onWitnessReportEnd?: (witness: WitnessWrapper, error?: Error) => void
20
- onWitnessReportStart?: (witness: WitnessWrapper) => void
21
- }
20
+ export type MemorySentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>> = SentinelParams<
21
+ AnyConfigSchema<TConfig>
22
22
  >
23
23
 
24
24
  export class MemorySentinel<TParams extends MemorySentinelParams = MemorySentinelParams>
25
25
  extends AbstractSentinel<TParams>
26
- implements SentinelModule<TParams['config']>
26
+ implements SentinelModule<TParams>
27
27
  {
28
28
  static override configSchema: SentinelConfigSchema
29
29
 
30
- static override async create(params?: MemorySentinelParams): Promise<MemorySentinel> {
31
- return (await super.create(params)) as MemorySentinel
32
- }
33
-
34
30
  override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
35
31
  query: T,
36
32
  payloads?: XyoPayload[],
@@ -59,7 +55,7 @@ export class MemorySentinel<TParams extends MemorySentinelParams = MemorySentine
59
55
 
60
56
  async report(payloads: XyoPayload[] = []): Promise<XyoPayload[]> {
61
57
  const errors: Error[] = []
62
- this.params?.onReportStart?.()
58
+ await this.emit('onReportStarted')
63
59
  const allWitnesses = [...(await this.getWitnesses())]
64
60
  const allPayloads: XyoPayload[] = []
65
61
 
@@ -73,7 +69,7 @@ export class MemorySentinel<TParams extends MemorySentinelParams = MemorySentine
73
69
 
74
70
  const [newBoundWitness] = await this.bindResult(allPayloads)
75
71
  this.history.push(assertEx(newBoundWitness))
76
- this.params?.onReportEnd?.(newBoundWitness, errors.length > 0 ? errors : undefined)
72
+ await this.emit('onReportEnded', { errors, newBoundWitness })
77
73
  return [newBoundWitness, ...allPayloads]
78
74
  }
79
75
 
@@ -1,11 +1,21 @@
1
- import { Module } from '@xyo-network/module'
1
+ import { AnyObject } from '@xyo-network/core'
2
+ import { AnyConfigSchema, EventData, Module, ModuleEventData, ModuleParams } from '@xyo-network/module'
2
3
  import { XyoPayload } from '@xyo-network/payload-model'
3
4
  import { Promisable } from '@xyo-network/promise'
4
5
 
5
6
  import { SentinelConfig } from './Config'
7
+ import { SentinelReportEndEventData, SentinelReportStartEventData } from './Events'
6
8
 
7
9
  export interface Sentinel {
8
10
  report: (payloads?: XyoPayload[]) => Promisable<XyoPayload[]>
9
11
  }
10
12
 
11
- export type SentinelModule<TConfig extends SentinelConfig = SentinelConfig> = Module<TConfig> & Sentinel
13
+ export interface SentinelModuleEventData extends SentinelReportEndEventData, SentinelReportStartEventData {}
14
+
15
+ export type SentinelParams<
16
+ TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>,
17
+ TEventData extends ModuleEventData = ModuleEventData,
18
+ TAdditionalParams extends AnyObject | undefined = undefined,
19
+ > = ModuleParams<TConfig, TEventData extends EventData ? SentinelModuleEventData | TEventData : SentinelModuleEventData, TAdditionalParams>
20
+
21
+ export type SentinelModule<TParams extends SentinelParams = SentinelParams> = Module<TParams> & Sentinel
package/src/Wrapper.ts CHANGED
@@ -1,19 +1,19 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { AccountInstance } from '@xyo-network/account-model'
3
- import { ModuleWrapper } from '@xyo-network/module'
3
+ import { ModuleWrapper, ModuleWrapperParams } from '@xyo-network/module'
4
4
  import { Module } from '@xyo-network/module-model'
5
5
  import { XyoPayload } from '@xyo-network/payload-model'
6
6
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
7
7
 
8
8
  import { SentinelReportQuery, SentinelReportQuerySchema } from './Queries'
9
- import { Sentinel, SentinelModule } from './SentinelModel'
9
+ import { SentinelModule } from './SentinelModel'
10
10
 
11
- export class SentinelWrapper extends ModuleWrapper implements Sentinel {
11
+ export class SentinelWrapper extends ModuleWrapper implements SentinelModule {
12
12
  static override requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries]
13
13
 
14
- constructor(module: Module, account?: AccountInstance) {
15
- super(module, account)
16
- assertEx(module.queries.includes(SentinelReportQuerySchema))
14
+ constructor(params: ModuleWrapperParams<SentinelModule>) {
15
+ super(params)
16
+ assertEx(params.module.queries.includes(SentinelReportQuerySchema))
17
17
  }
18
18
 
19
19
  static override tryWrap(module?: Module, account?: AccountInstance): SentinelWrapper | undefined {
@@ -22,7 +22,7 @@ export class SentinelWrapper extends ModuleWrapper implements Sentinel {
22
22
  if (missingRequiredQueries.length > 0) {
23
23
  //console.warn(`Missing queries: ${JSON.stringify(missingRequiredQueries, null, 2)}`)
24
24
  } else {
25
- return new SentinelWrapper(module as SentinelModule, account)
25
+ return new SentinelWrapper({ account, module: module as SentinelModule })
26
26
  }
27
27
  }
28
28
  }