@xyo-network/sentinel 2.72.8 → 2.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/index.d.mts +291 -0
  2. package/dist/index.d.ts +291 -0
  3. package/dist/index.js +7542 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +7517 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/package.json +40 -27
  8. package/src/AbstractSentinel.ts +1 -1
  9. package/tsup.config.ts +16 -0
  10. package/dist/cjs/AbstractSentinel.js +0 -125
  11. package/dist/cjs/AbstractSentinel.js.map +0 -1
  12. package/dist/cjs/Automation.js +0 -5
  13. package/dist/cjs/Automation.js.map +0 -1
  14. package/dist/cjs/MemorySentinel.js +0 -50
  15. package/dist/cjs/MemorySentinel.js.map +0 -1
  16. package/dist/cjs/SentinelIntervalAutomationWrapper.js +0 -51
  17. package/dist/cjs/SentinelIntervalAutomationWrapper.js.map +0 -1
  18. package/dist/cjs/SentinelRunner.js +0 -102
  19. package/dist/cjs/SentinelRunner.js.map +0 -1
  20. package/dist/cjs/Wrapper.js +0 -29
  21. package/dist/cjs/Wrapper.js.map +0 -1
  22. package/dist/cjs/index.js +0 -11
  23. package/dist/cjs/index.js.map +0 -1
  24. package/dist/docs.json +0 -68111
  25. package/dist/esm/AbstractSentinel.js +0 -98
  26. package/dist/esm/AbstractSentinel.js.map +0 -1
  27. package/dist/esm/Automation.js +0 -2
  28. package/dist/esm/Automation.js.map +0 -1
  29. package/dist/esm/MemorySentinel.js +0 -41
  30. package/dist/esm/MemorySentinel.js.map +0 -1
  31. package/dist/esm/SentinelIntervalAutomationWrapper.js +0 -44
  32. package/dist/esm/SentinelIntervalAutomationWrapper.js.map +0 -1
  33. package/dist/esm/SentinelRunner.js +0 -86
  34. package/dist/esm/SentinelRunner.js.map +0 -1
  35. package/dist/esm/Wrapper.js +0 -20
  36. package/dist/esm/Wrapper.js.map +0 -1
  37. package/dist/esm/index.js +0 -8
  38. package/dist/esm/index.js.map +0 -1
  39. package/dist/types/AbstractSentinel.d.ts +0 -22
  40. package/dist/types/AbstractSentinel.d.ts.map +0 -1
  41. package/dist/types/Automation.d.ts +0 -28
  42. package/dist/types/Automation.d.ts.map +0 -1
  43. package/dist/types/MemorySentinel.d.ts +0 -11
  44. package/dist/types/MemorySentinel.d.ts.map +0 -1
  45. package/dist/types/SentinelIntervalAutomationWrapper.d.ts +0 -11
  46. package/dist/types/SentinelIntervalAutomationWrapper.d.ts.map +0 -1
  47. package/dist/types/SentinelRunner.d.ts +0 -24
  48. package/dist/types/SentinelRunner.d.ts.map +0 -1
  49. package/dist/types/Wrapper.d.ts +0 -14
  50. package/dist/types/Wrapper.d.ts.map +0 -1
  51. package/dist/types/index.d.ts +0 -8
  52. package/dist/types/index.d.ts.map +0 -1
@@ -1,98 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { AbstractArchivingModule, asArchivistInstance } from '@xyo-network/archivist';
3
- import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder';
4
- import { isBoundWitness, notBoundWitness } from '@xyo-network/boundwitness-model';
5
- import { SentinelReportQuerySchema, } from '@xyo-network/sentinel-model';
6
- import { isWitnessInstance } from '@xyo-network/witness';
7
- import uniq from 'lodash/uniq';
8
- export class AbstractSentinel extends AbstractArchivingModule {
9
- history = [];
10
- get queries() {
11
- return [SentinelReportQuerySchema, ...super.queries];
12
- }
13
- get _queryAccountPaths() {
14
- return {
15
- 'network.xyo.query.sentinel.report': '1/1',
16
- };
17
- }
18
- addArchivist(address) {
19
- this.config.archivists = uniq([...address, ...(this.config.archivists ?? [])]);
20
- }
21
- addWitness(address) {
22
- this.config.witnesses = uniq([...address, ...(this.config.witnesses ?? [])]);
23
- }
24
- async archivists() {
25
- this.logger?.debug(`archivists:config:archivist: ${this.config?.archivists?.length}`);
26
- const namesOrAddresses = this.config?.archivists
27
- ? Array.isArray(this.config.archivists)
28
- ? this.config?.archivists
29
- : [this.config.archivists]
30
- : undefined;
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
- }
39
- this.logger?.debug(`archivists:result: ${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
- async report(inPayloads) {
49
- this._noOverride('report');
50
- await this.emit('reportStart', { inPayloads, module: this });
51
- const payloads = await this.reportHandler(inPayloads);
52
- this.logger?.debug(`report:payloads: ${JSON.stringify(payloads, null, 2)}`);
53
- const outPayloads = payloads.filter(notBoundWitness);
54
- const boundwitnesses = payloads.filter(isBoundWitness);
55
- const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address));
56
- await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads });
57
- return payloads;
58
- }
59
- async witnesses() {
60
- this.logger?.debug(`witnesses:config:witnesses: ${this.config?.witnesses?.length}`);
61
- const namesOrAddresses = this.config?.witnesses
62
- ? Array.isArray(this.config.witnesses)
63
- ? this.config?.witnesses
64
- : [this.config.witnesses]
65
- : undefined;
66
- this.logger?.debug(`witnesses:namesOrAddresses: ${namesOrAddresses?.length}`);
67
- const result = namesOrAddresses
68
- ? [
69
- ...(await this.resolve({ address: namesOrAddresses }, { identity: isWitnessInstance })),
70
- ...(await this.resolve({ name: namesOrAddresses }, { identity: isWitnessInstance })),
71
- ]
72
- : await this.resolve(undefined, { identity: isWitnessInstance });
73
- if (namesOrAddresses && namesOrAddresses.length !== result.length) {
74
- this.logger?.warn(`Not all witnesses found [Requested: ${namesOrAddresses.length}, Found: ${result.length}]`);
75
- }
76
- result.map((item) => {
77
- this.logger?.debug(`witnesses:result: ${item.config.schema}`);
78
- });
79
- return result;
80
- }
81
- async queryHandler(query, payloads, queryConfig) {
82
- const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
83
- const queryPayload = await wrapper.getQuery();
84
- assertEx(this.queryable(query, payloads, queryConfig));
85
- const resultPayloads = [];
86
- switch (queryPayload.schema) {
87
- case SentinelReportQuerySchema: {
88
- resultPayloads.push(...(await this.report(payloads)));
89
- break;
90
- }
91
- default: {
92
- return super.queryHandler(query, payloads);
93
- }
94
- }
95
- return resultPayloads;
96
- }
97
- }
98
- //# sourceMappingURL=AbstractSentinel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export const SentinelAutomationSchema = 'network.xyo.automation';
2
- //# sourceMappingURL=Automation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Automation.js","sourceRoot":"","sources":["../../src/Automation.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,wBAAwB,GAA6B,wBAAwB,CAAA"}
@@ -1,41 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { fulfilled, rejected } from '@xylabs/promise';
3
- import { handleError } from '@xyo-network/error';
4
- import { SentinelConfigSchema, SentinelReportQuerySchema, } from '@xyo-network/sentinel-model';
5
- import { AbstractSentinel } from './AbstractSentinel';
6
- export class MemorySentinel extends AbstractSentinel {
7
- static configSchemas = [SentinelConfigSchema];
8
- async reportHandler(payloads = []) {
9
- await this.started('throw');
10
- const errors = [];
11
- const allWitnesses = [...(await this.witnesses())];
12
- const resultPayloads = [];
13
- try {
14
- const [generatedPayloads, generatedErrors] = await this.generateResults(allWitnesses);
15
- const combinedPayloads = [...generatedPayloads, ...payloads];
16
- resultPayloads.push(...combinedPayloads);
17
- errors.push(...generatedErrors);
18
- }
19
- catch (ex) {
20
- handleError(ex, (error) => {
21
- errors.push(error);
22
- });
23
- }
24
- const [boundWitness] = await this.bindQueryResult({ schema: SentinelReportQuerySchema }, resultPayloads);
25
- this.history.push(assertEx(boundWitness));
26
- return [boundWitness, ...resultPayloads];
27
- }
28
- async generateResults(witnesses) {
29
- const results = await Promise.allSettled(witnesses?.map((witness) => witness.observe()));
30
- const payloads = results
31
- .filter(fulfilled)
32
- .map((result) => result.value)
33
- .flat();
34
- const errors = results
35
- .filter(rejected)
36
- .map((result) => result.reason)
37
- .flat();
38
- return [payloads, errors];
39
- }
40
- }
41
- //# sourceMappingURL=MemorySentinel.js.map
@@ -1 +0,0 @@
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"}
@@ -1,44 +0,0 @@
1
- import { PayloadWrapper } from '@xyo-network/payload-wrapper';
2
- export class SentinelIntervalAutomationWrapper extends PayloadWrapper {
3
- constructor(payload) {
4
- super(payload);
5
- }
6
- get frequencyMillis() {
7
- const frequency = this.payload().frequency;
8
- if (frequency === undefined)
9
- return Infinity;
10
- switch (this.payload().frequencyUnits ?? 'hour') {
11
- case 'second':
12
- return frequency * 1000;
13
- case 'minute':
14
- return frequency * 60 * 1000;
15
- case 'hour':
16
- return frequency * 60 * 60 * 1000;
17
- case 'day':
18
- return frequency * 24 * 60 * 60 * 1000;
19
- }
20
- }
21
- get remaining() {
22
- //if remaining is not defined, we assume Infinity
23
- return this.payload().remaining ?? Infinity;
24
- }
25
- next() {
26
- this.payload().start = this.payload().start + this.frequencyMillis;
27
- this.consumeRemaining();
28
- this.checkEnd();
29
- return this;
30
- }
31
- checkEnd() {
32
- if (this.payload().start > (this.payload().end ?? Infinity)) {
33
- this.payload().start = Infinity;
34
- }
35
- }
36
- consumeRemaining(count = 1) {
37
- const remaining = this.remaining - count;
38
- this.payload().remaining = remaining;
39
- if (remaining <= 0) {
40
- this.payload().start = Infinity;
41
- }
42
- }
43
- }
44
- //# sourceMappingURL=SentinelIntervalAutomationWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SentinelIntervalAutomationWrapper.js","sourceRoot":"","sources":["../../src/SentinelIntervalAutomationWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAI7D,MAAM,OAAO,iCAEX,SAAQ,cAAiB;IACzB,YAAY,OAAU;QACpB,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IAED,IAAc,eAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAA;QAC1C,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QAC5C,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,IAAI,MAAM,EAAE;YAC/C,KAAK,QAAQ;gBACX,OAAO,SAAS,GAAG,IAAI,CAAA;YACzB,KAAK,QAAQ;gBACX,OAAO,SAAS,GAAG,EAAE,GAAG,IAAI,CAAA;YAC9B,KAAK,MAAM;gBACT,OAAO,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YACnC,KAAK,KAAK;gBACR,OAAO,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;SACzC;IACH,CAAC;IAED,IAAc,SAAS;QACrB,iDAAiD;QACjD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,IAAI,QAAQ,CAAA;IAC7C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;QAClE,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAES,QAAQ;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE;YAC3D,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAA;SAChC;IACH,CAAC;IAES,gBAAgB,CAAC,KAAK,GAAG,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,GAAG,SAAS,CAAA;QAEpC,IAAI,SAAS,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAA;SAChC;IACH,CAAC;CACF"}
@@ -1,86 +0,0 @@
1
- import { assertEx } from '@xylabs/assert';
2
- import { PayloadWrapper } from '@xyo-network/payload-wrapper';
3
- import { SentinelIntervalAutomationWrapper } from './SentinelIntervalAutomationWrapper';
4
- export class SentinelRunner {
5
- _automations = {};
6
- onTriggerResult;
7
- sentinel;
8
- timeoutId;
9
- constructor(sentinel, automations, onTriggerResult) {
10
- this.sentinel = sentinel;
11
- this.onTriggerResult = onTriggerResult;
12
- automations?.forEach((automation) => this.add(automation));
13
- }
14
- get automations() {
15
- return this._automations;
16
- }
17
- get next() {
18
- return Object.values(this._automations).reduce((previous, current) => {
19
- if (current.type === 'interval') {
20
- return current.start < (previous?.start ?? Infinity) ? current : previous;
21
- }
22
- }, undefined);
23
- }
24
- async add(automation, restart = true) {
25
- const hash = await PayloadWrapper.hashAsync(automation);
26
- this._automations[hash] = automation;
27
- if (restart)
28
- await this.restart();
29
- return hash;
30
- }
31
- find(hash) {
32
- Object.entries(this._automations).find(([key]) => key === hash);
33
- }
34
- async remove(hash, restart = true) {
35
- delete this._automations[hash];
36
- if (restart)
37
- await this.restart();
38
- }
39
- removeAll() {
40
- this.stop();
41
- this._automations = {};
42
- }
43
- async restart() {
44
- this.stop();
45
- await this.start();
46
- }
47
- async start() {
48
- assertEx(this.timeoutId === undefined, 'Already started');
49
- const automation = this.next;
50
- if (automation) {
51
- const delay = automation.start - Date.now();
52
- if (delay < 0) {
53
- //automation is due, just do it
54
- await this.trigger(automation);
55
- }
56
- else {
57
- this.timeoutId = setTimeout(async () => {
58
- this.timeoutId = undefined;
59
- await this.start();
60
- }, delay > 0 ? delay : 0);
61
- }
62
- }
63
- }
64
- stop() {
65
- if (this.timeoutId) {
66
- clearTimeout(this.timeoutId);
67
- this.timeoutId = undefined;
68
- }
69
- }
70
- async update(hash, automation, restart = true) {
71
- await this.remove(hash, false);
72
- await this.add(automation, false);
73
- if (restart)
74
- await this.restart();
75
- }
76
- async trigger(automation) {
77
- const wrapper = new SentinelIntervalAutomationWrapper(automation);
78
- await this.remove(await wrapper.hashAsync(), false);
79
- wrapper.next();
80
- await this.add(wrapper.payload(), false);
81
- const triggerResult = await this.sentinel.report();
82
- this.onTriggerResult?.(triggerResult);
83
- await this.start();
84
- }
85
- }
86
- //# sourceMappingURL=SentinelRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SentinelRunner.js","sourceRoot":"","sources":["../../src/SentinelRunner.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module';
2
- import { isSentinelInstance, isSentinelModule, SentinelReportQuerySchema, } from '@xyo-network/sentinel-model';
3
- constructableModuleWrapper();
4
- export class SentinelWrapper extends ModuleWrapper {
5
- static instanceIdentityCheck = isSentinelInstance;
6
- static moduleIdentityCheck = isSentinelModule;
7
- static requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries];
8
- archivists() {
9
- throw Error('Not supported');
10
- }
11
- async report(payloads) {
12
- const queryPayload = { schema: SentinelReportQuerySchema };
13
- const result = await this.sendQuery(queryPayload, payloads);
14
- return result;
15
- }
16
- witnesses() {
17
- throw Error('Not supported');
18
- }
19
- }
20
- //# sourceMappingURL=Wrapper.js.map
@@ -1 +0,0 @@
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"}
package/dist/esm/index.js DELETED
@@ -1,8 +0,0 @@
1
- export * from './AbstractSentinel';
2
- export * from './Automation';
3
- export * from './MemorySentinel';
4
- export * from './SentinelIntervalAutomationWrapper';
5
- export * from './SentinelRunner';
6
- export * from './Wrapper';
7
- export * from '@xyo-network/sentinel-model';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,6BAA6B,CAAA"}
@@ -1,22 +0,0 @@
1
- import { AbstractArchivingModule } from '@xyo-network/archivist';
2
- import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
3
- import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module';
5
- import { Payload } from '@xyo-network/payload-model';
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 AbstractArchivingModule<TParams, TEventData> implements CustomSentinelInstance<TParams, TEventData> {
9
- history: BoundWitness[];
10
- get queries(): string[];
11
- protected get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string>;
12
- addArchivist(address: string[]): void;
13
- addWitness(address: string[]): void;
14
- archivists(): Promise<import("@xyo-network/archivist").ArchivistInstance[]>;
15
- removeArchivist(address: string[]): void;
16
- removeWitness(address: string[]): void;
17
- report(inPayloads?: Payload[]): Promise<Payload[]>;
18
- witnesses(): Promise<WitnessInstance[]>;
19
- protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryHandlerResult>;
20
- abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>;
21
- }
22
- //# sourceMappingURL=AbstractSentinel.d.ts.map
@@ -1 +0,0 @@
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;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,28 +0,0 @@
1
- import { AnyObject } from '@xyo-network/core';
2
- import { Payload } from '@xyo-network/payload-model';
3
- export type SentinelAutomationSchema = 'network.xyo.automation';
4
- export declare const SentinelAutomationSchema: SentinelAutomationSchema;
5
- export type SentinelBaseAutomationPayload<T extends AnyObject = AnyObject> = Payload<T & {
6
- schema: SentinelAutomationSchema;
7
- type?: 'interval' | 'change';
8
- /** @field The list of witnesses to invoke [all if undefined] */
9
- witnesses?: string[];
10
- }>;
11
- export type SentinelIntervalAutomationPayload = SentinelBaseAutomationPayload<{
12
- /** @field epoch after which any reoccurrence stops */
13
- end?: number;
14
- /** @field time between triggers [non-repeating if undefined] */
15
- frequency?: number;
16
- /** @field units for frequency field [hour if undefined] */
17
- frequencyUnits?: 'second' | 'minute' | 'hour' | 'day';
18
- /** @field remaining triggers [infinite if undefined] */
19
- remaining?: number;
20
- /** @field epoch of the next trigger */
21
- start: number;
22
- type: 'interval';
23
- }>;
24
- export type SentinelChangeAutomationPayload = SentinelBaseAutomationPayload<{
25
- type: 'change';
26
- }>;
27
- export type SentinelAutomationPayload = SentinelIntervalAutomationPayload | SentinelChangeAutomationPayload;
28
- //# sourceMappingURL=Automation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Automation.d.ts","sourceRoot":"","sources":["../../src/Automation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAA;AAC/D,eAAO,MAAM,wBAAwB,EAAE,wBAAmD,CAAA;AAE1F,MAAM,MAAM,6BAA6B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,OAAO,CAClF,CAAC,GAAG;IACF,MAAM,EAAE,wBAAwB,CAAA;IAChC,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,CACF,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,6BAA6B,CAAC;IAC5E,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAA;IAErD,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IAEb,IAAI,EAAE,UAAU,CAAA;CACjB,CAAC,CAAA;AAEF,MAAM,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;IAC1E,IAAI,EAAE,QAAQ,CAAA;CACf,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,iCAAiC,GAAG,+BAA+B,CAAA"}
@@ -1,11 +0,0 @@
1
- import { AnyConfigSchema } from '@xyo-network/module';
2
- import { Payload } from '@xyo-network/payload-model';
3
- import { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
4
- import { AbstractSentinel } from './AbstractSentinel';
5
- export type MemorySentinelParams<TConfig extends AnyConfigSchema<SentinelConfig> = AnyConfigSchema<SentinelConfig>> = SentinelParams<AnyConfigSchema<TConfig>>;
6
- export declare class MemorySentinel<TParams extends MemorySentinelParams = MemorySentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends AbstractSentinel<TParams, TEventData> {
7
- static configSchemas: "network.xyo.sentinel.config"[];
8
- reportHandler(payloads?: Payload[]): Promise<Payload[]>;
9
- private generateResults;
10
- }
11
- //# sourceMappingURL=MemorySentinel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemorySentinel.d.ts","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,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,CAClI,eAAe,CAAC,OAAO,CAAC,CACzB,CAAA;AAED,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,11 +0,0 @@
1
- import { PayloadWrapper } from '@xyo-network/payload-wrapper';
2
- import { SentinelIntervalAutomationPayload } from './Automation';
3
- export declare class SentinelIntervalAutomationWrapper<T extends SentinelIntervalAutomationPayload = SentinelIntervalAutomationPayload> extends PayloadWrapper<T> {
4
- constructor(payload: T);
5
- protected get frequencyMillis(): number;
6
- protected get remaining(): number;
7
- next(): this;
8
- protected checkEnd(): void;
9
- protected consumeRemaining(count?: number): void;
10
- }
11
- //# sourceMappingURL=SentinelIntervalAutomationWrapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SentinelIntervalAutomationWrapper.d.ts","sourceRoot":"","sources":["../../src/SentinelIntervalAutomationWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAEhE,qBAAa,iCAAiC,CAC5C,CAAC,SAAS,iCAAiC,GAAG,iCAAiC,CAC/E,SAAQ,cAAc,CAAC,CAAC,CAAC;gBACb,OAAO,EAAE,CAAC;IAItB,SAAS,KAAK,eAAe,WAa5B;IAED,SAAS,KAAK,SAAS,WAGtB;IAED,IAAI;IAOJ,SAAS,CAAC,QAAQ;IAMlB,SAAS,CAAC,gBAAgB,CAAC,KAAK,SAAI;CAQrC"}
@@ -1,24 +0,0 @@
1
- /// <reference types="node" />
2
- import { Payload } from '@xyo-network/payload-model';
3
- import { SentinelInstance } from '@xyo-network/sentinel-model';
4
- import { SentinelAutomationPayload } from './Automation';
5
- export type OnSentinelRunnerTriggerResult = (result: Payload[]) => void;
6
- export declare class SentinelRunner {
7
- protected _automations: Record<string, SentinelAutomationPayload>;
8
- protected onTriggerResult: OnSentinelRunnerTriggerResult | undefined;
9
- protected sentinel: SentinelInstance;
10
- protected timeoutId?: NodeJS.Timeout | string | number;
11
- constructor(sentinel: SentinelInstance, automations?: SentinelAutomationPayload[], onTriggerResult?: OnSentinelRunnerTriggerResult);
12
- get automations(): Record<string, SentinelAutomationPayload>;
13
- private get next();
14
- add(automation: SentinelAutomationPayload, restart?: boolean): Promise<string>;
15
- find(hash: string): void;
16
- remove(hash: string, restart?: boolean): Promise<void>;
17
- removeAll(): void;
18
- restart(): Promise<void>;
19
- start(): Promise<void>;
20
- stop(): void;
21
- update(hash: string, automation: SentinelAutomationPayload, restart?: boolean): Promise<void>;
22
- private trigger;
23
- }
24
- //# sourceMappingURL=SentinelRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SentinelRunner.d.ts","sourceRoot":"","sources":["../../src/SentinelRunner.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EAAE,yBAAyB,EAAqC,MAAM,cAAc,CAAA;AAG3F,MAAM,MAAM,6BAA6B,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;AAEvE,qBAAa,cAAc;IACzB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAK;IACtE,SAAS,CAAC,eAAe,EAAE,6BAA6B,GAAG,SAAS,CAAA;IACpE,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACpC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;gBAE1C,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,yBAAyB,EAAE,EAAE,eAAe,CAAC,EAAE,6BAA6B;IAMlI,IAAI,WAAW,8CAEd;IAED,OAAO,KAAK,IAAI,GAMf;IAEK,GAAG,CAAC,UAAU,EAAE,yBAAyB,EAAE,OAAO,UAAO;IAO/D,IAAI,CAAC,IAAI,EAAE,MAAM;IAIX,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAO;IAKzC,SAAS;IAKH,OAAO;IAKP,KAAK;IAoBX,IAAI;IAOE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,yBAAyB,EAAE,OAAO,UAAO;YAMlE,OAAO;CAStB"}
@@ -1,14 +0,0 @@
1
- import { ArchivistInstance } from '@xyo-network/archivist';
2
- import { ModuleWrapper } from '@xyo-network/module';
3
- import { Payload } from '@xyo-network/payload-model';
4
- import { SentinelInstance, SentinelModule } from '@xyo-network/sentinel-model';
5
- import { WitnessInstance } from '@xyo-network/witness';
6
- export declare class SentinelWrapper<TModule extends SentinelModule = SentinelModule> extends ModuleWrapper<TModule> implements SentinelInstance<TModule['params']> {
7
- static instanceIdentityCheck: import("@xyo-network/object-identity").ObjectTypeCheck<SentinelInstance>;
8
- static moduleIdentityCheck: import("@xyo-network/module").ModuleTypeCheck<SentinelModule>;
9
- static requiredQueries: string[];
10
- archivists(): Promise<ArchivistInstance[]>;
11
- report(payloads?: Payload[]): Promise<Payload[]>;
12
- witnesses(): Promise<WitnessInstance[]>;
13
- }
14
- //# sourceMappingURL=Wrapper.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,8 +0,0 @@
1
- export * from './AbstractSentinel';
2
- export * from './Automation';
3
- export * from './MemorySentinel';
4
- export * from './SentinelIntervalAutomationWrapper';
5
- export * from './SentinelRunner';
6
- export * from './Wrapper';
7
- export * from '@xyo-network/sentinel-model';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qCAAqC,CAAA;AACnD,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,6BAA6B,CAAA"}