@xyo-network/sentinel 2.56.2 → 2.57.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.
- package/dist/cjs/AbstractSentinel.js +39 -1
- package/dist/cjs/AbstractSentinel.js.map +1 -1
- package/dist/cjs/MemorySentinel.js +9 -9
- package/dist/cjs/MemorySentinel.js.map +1 -1
- package/dist/cjs/Wrapper.js +1 -1
- package/dist/cjs/Wrapper.js.map +1 -1
- package/dist/docs.json +49667 -28372
- package/dist/esm/AbstractSentinel.js +34 -2
- package/dist/esm/AbstractSentinel.js.map +1 -1
- package/dist/esm/MemorySentinel.js +9 -10
- package/dist/esm/MemorySentinel.js.map +1 -1
- package/dist/esm/Wrapper.js +1 -2
- package/dist/esm/Wrapper.js.map +1 -1
- package/dist/types/AbstractSentinel.d.ts +35 -2
- package/dist/types/AbstractSentinel.d.ts.map +1 -1
- package/dist/types/Queries/index.d.ts +2 -1
- package/dist/types/Queries/index.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/AbstractSentinel.ts +47 -2
- package/src/MemorySentinel.ts +8 -8
- package/src/Queries/index.ts +2 -2
- package/typedoc.json +3 -3
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
2
|
+
import { Account } from '@xyo-network/account';
|
|
1
3
|
import { ArchivingModule } from '@xyo-network/archivist';
|
|
2
4
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
5
|
+
import { ModuleErrorBuilder, QueryBoundWitnessWrapper, } from '@xyo-network/module';
|
|
3
6
|
import { WitnessWrapper } from '@xyo-network/witness';
|
|
4
7
|
import uniq from 'lodash/uniq';
|
|
5
8
|
import { SentinelConfigSchema } from './Config';
|
|
6
9
|
import { SentinelReportQuerySchema } from './Queries';
|
|
7
|
-
class AbstractSentinel extends ArchivingModule {
|
|
10
|
+
export class AbstractSentinel extends ArchivingModule {
|
|
8
11
|
static configSchema = SentinelConfigSchema;
|
|
9
12
|
history = [];
|
|
10
13
|
_archivists;
|
|
@@ -12,6 +15,11 @@ class AbstractSentinel extends ArchivingModule {
|
|
|
12
15
|
get queries() {
|
|
13
16
|
return [SentinelReportQuerySchema, ...super.queries];
|
|
14
17
|
}
|
|
18
|
+
get _queryAccountPaths() {
|
|
19
|
+
return {
|
|
20
|
+
'network.xyo.query.sentinel.report': '1/1',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
15
23
|
addArchivist(address) {
|
|
16
24
|
this.config.archivists = uniq([...address, ...(this.config.archivists ?? [])]);
|
|
17
25
|
this._archivists = undefined;
|
|
@@ -46,6 +54,30 @@ class AbstractSentinel extends ArchivingModule {
|
|
|
46
54
|
this.config.witnesses = (this.config.witnesses ?? []).filter((witness) => !address.includes(witness));
|
|
47
55
|
this._witnesses = undefined;
|
|
48
56
|
}
|
|
57
|
+
async queryHandler(query, payloads, queryConfig) {
|
|
58
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
59
|
+
const typedQuery = wrapper.query.payload;
|
|
60
|
+
assertEx(this.queryable(query, payloads, queryConfig));
|
|
61
|
+
const queryAccount = new Account();
|
|
62
|
+
const resultPayloads = [];
|
|
63
|
+
try {
|
|
64
|
+
switch (typedQuery.schema) {
|
|
65
|
+
case SentinelReportQuerySchema: {
|
|
66
|
+
await this.emit('reportStart', { inPayloads: payloads, module: this });
|
|
67
|
+
resultPayloads.push(...(await this.report(payloads)));
|
|
68
|
+
await this.emit('reportEnd', { inPayloads: payloads, module: this, outPayloads: resultPayloads });
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
default: {
|
|
72
|
+
return super.queryHandler(query, payloads);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (ex) {
|
|
77
|
+
const error = ex;
|
|
78
|
+
return this.bindQueryResult(typedQuery, [new ModuleErrorBuilder().sources([wrapper.hash]).message(error.message).build()], [queryAccount]);
|
|
79
|
+
}
|
|
80
|
+
return await this.bindQueryResult(typedQuery, resultPayloads, [queryAccount]);
|
|
81
|
+
}
|
|
49
82
|
}
|
|
50
|
-
export { AbstractSentinel };
|
|
51
83
|
//# sourceMappingURL=AbstractSentinel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.js","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,34 +6,34 @@ import compact from 'lodash/compact';
|
|
|
6
6
|
import { AbstractSentinel } from './AbstractSentinel';
|
|
7
7
|
import { SentinelConfigSchema } from './Config';
|
|
8
8
|
import { SentinelReportQuerySchema } from './Queries';
|
|
9
|
-
class MemorySentinel extends AbstractSentinel {
|
|
9
|
+
export class MemorySentinel extends AbstractSentinel {
|
|
10
10
|
static configSchema = SentinelConfigSchema;
|
|
11
11
|
async report(payloads = []) {
|
|
12
12
|
const errors = [];
|
|
13
13
|
await this.emit('reportStart', { inPayloads: payloads, module: this });
|
|
14
14
|
const allWitnesses = [...(await this.getWitnesses())];
|
|
15
|
-
const
|
|
15
|
+
const resultPayloads = [];
|
|
16
16
|
try {
|
|
17
17
|
const generatedPayloads = compact(await this.generatePayloads(allWitnesses));
|
|
18
18
|
const combinedPayloads = [...generatedPayloads, ...payloads];
|
|
19
|
-
|
|
19
|
+
resultPayloads.push(...combinedPayloads);
|
|
20
20
|
}
|
|
21
21
|
catch (e) {
|
|
22
22
|
errors.push(e);
|
|
23
23
|
}
|
|
24
|
-
const [boundWitness] = await this.
|
|
24
|
+
const [boundWitness] = await this.bindQueryResult({ schema: SentinelReportQuerySchema }, resultPayloads);
|
|
25
25
|
this.history.push(assertEx(boundWitness));
|
|
26
|
-
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this, outPayloads:
|
|
27
|
-
return [boundWitness, ...
|
|
26
|
+
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this, outPayloads: resultPayloads });
|
|
27
|
+
return [boundWitness, ...resultPayloads];
|
|
28
28
|
}
|
|
29
29
|
async queryHandler(query, payloads, queryConfig) {
|
|
30
30
|
const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
31
|
-
const typedQuery = wrapper.query;
|
|
31
|
+
const typedQuery = wrapper.query.payload;
|
|
32
32
|
assertEx(this.queryable(query, payloads, queryConfig));
|
|
33
33
|
const queryAccount = new Account();
|
|
34
34
|
const resultPayloads = [];
|
|
35
35
|
try {
|
|
36
|
-
switch (typedQuery.
|
|
36
|
+
switch (typedQuery.schema) {
|
|
37
37
|
case SentinelReportQuerySchema: {
|
|
38
38
|
resultPayloads.push(...(await this.report(payloads)));
|
|
39
39
|
break;
|
|
@@ -46,7 +46,7 @@ class MemorySentinel extends AbstractSentinel {
|
|
|
46
46
|
const error = ex;
|
|
47
47
|
resultPayloads.push(new ModuleErrorBuilder().sources([wrapper.hash]).message(error.message).build());
|
|
48
48
|
}
|
|
49
|
-
return await this.
|
|
49
|
+
return await this.bindQueryResult(typedQuery, resultPayloads, [queryAccount]);
|
|
50
50
|
}
|
|
51
51
|
async generatePayloads(witnesses) {
|
|
52
52
|
return (await Promise.allSettled(witnesses?.map((witness) => witness.observe())))
|
|
@@ -55,5 +55,4 @@ class MemorySentinel extends AbstractSentinel {
|
|
|
55
55
|
.flat();
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
export { MemorySentinel };
|
|
59
58
|
//# sourceMappingURL=MemorySentinel.js.map
|
|
@@ -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,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAGL,kBAAkB,EAGlB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAkB,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAiB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAOpE,
|
|
1
|
+
{"version":3,"file":"MemorySentinel.js","sourceRoot":"","sources":["../../src/MemorySentinel.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Wrapper.js
CHANGED
|
@@ -2,7 +2,7 @@ import { constructableModuleWrapper, ModuleWrapper } from '@xyo-network/module';
|
|
|
2
2
|
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
3
3
|
import { SentinelReportQuerySchema } from './Queries';
|
|
4
4
|
constructableModuleWrapper();
|
|
5
|
-
class SentinelWrapper extends ModuleWrapper {
|
|
5
|
+
export class SentinelWrapper extends ModuleWrapper {
|
|
6
6
|
static requiredQueries = [SentinelReportQuerySchema, ...super.requiredQueries];
|
|
7
7
|
async report(payloads) {
|
|
8
8
|
const queryPayload = PayloadWrapper.parse({ schema: SentinelReportQuerySchema });
|
|
@@ -10,5 +10,4 @@ class SentinelWrapper extends ModuleWrapper {
|
|
|
10
10
|
return result;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
export { SentinelWrapper };
|
|
14
13
|
//# sourceMappingURL=Wrapper.js.map
|
package/dist/esm/Wrapper.js.map
CHANGED
|
@@ -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,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAuB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAG1E,0BAA0B,EAAE,CAAA;AAC5B,
|
|
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,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAuB,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAG1E,0BAA0B,EAAE,CAAA;AAC5B,MAAM,OAAO,eAAiE,SAAQ,aAAsB;IAC1G,MAAM,CAAU,eAAe,GAAG,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;IAEvF,KAAK,CAAC,MAAM,CAAC,QAAoB;QAC/B,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"}
|
|
@@ -2,10 +2,11 @@ import { AccountInstance } from '@xyo-network/account-model';
|
|
|
2
2
|
import { ArchivingModule } from '@xyo-network/archivist';
|
|
3
3
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
4
4
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
5
|
-
import { AnyConfigSchema } from '@xyo-network/module';
|
|
5
|
+
import { AnyConfigSchema, ModuleConfig, ModuleQueryResult, QueryBoundWitness } from '@xyo-network/module';
|
|
6
6
|
import { Payload } from '@xyo-network/payload-model';
|
|
7
7
|
import { WitnessWrapper } from '@xyo-network/witness';
|
|
8
8
|
import { SentinelConfig } from './Config';
|
|
9
|
+
import { SentinelQueryBase } from './Queries';
|
|
9
10
|
import { SentinelModule, SentinelModuleEventData, SentinelParams } from './SentinelModel';
|
|
10
11
|
export declare abstract class AbstractSentinel<TParams extends SentinelParams<AnyConfigSchema<SentinelConfig>> = SentinelParams<SentinelConfig>, TEventData extends SentinelModuleEventData = SentinelModuleEventData> extends ArchivingModule<TParams, TEventData> implements SentinelModule<TParams, TEventData> {
|
|
11
12
|
static configSchema: string;
|
|
@@ -13,12 +14,44 @@ export declare abstract class AbstractSentinel<TParams extends SentinelParams<An
|
|
|
13
14
|
private _archivists;
|
|
14
15
|
private _witnesses;
|
|
15
16
|
get queries(): string[];
|
|
17
|
+
protected get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string>;
|
|
16
18
|
addArchivist(address: string[]): void;
|
|
17
19
|
addWitness(address: string[]): void;
|
|
18
|
-
getArchivists(account?: AccountInstance): Promise<ArchivistWrapper<import("@xyo-network/archivist").ArchivistModule
|
|
20
|
+
getArchivists(account?: AccountInstance): Promise<ArchivistWrapper<import("@xyo-network/archivist").ArchivistModule<import("@xyo-network/archivist").ArchivistParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
21
|
+
name?: string | undefined;
|
|
22
|
+
paging?: Record<string, {
|
|
23
|
+
size?: number | undefined;
|
|
24
|
+
}> | undefined;
|
|
25
|
+
schema: string;
|
|
26
|
+
security?: {
|
|
27
|
+
allowAnonymous?: boolean | undefined;
|
|
28
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
29
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
storeQueries?: boolean | undefined;
|
|
32
|
+
} & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
33
|
+
name?: string | undefined;
|
|
34
|
+
paging?: Record<string, {
|
|
35
|
+
size?: number | undefined;
|
|
36
|
+
}> | undefined;
|
|
37
|
+
schema: "network.xyo.archivist.config";
|
|
38
|
+
security?: {
|
|
39
|
+
allowAnonymous?: boolean | undefined;
|
|
40
|
+
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
41
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
42
|
+
} | undefined;
|
|
43
|
+
storeQueries?: boolean | undefined;
|
|
44
|
+
} & Omit<{
|
|
45
|
+
parents?: import("@xyo-network/archivist").ArchivistParents | undefined;
|
|
46
|
+
schema: "network.xyo.archivist.config";
|
|
47
|
+
storeParentReads?: boolean | undefined;
|
|
48
|
+
} & Omit<undefined, "schema">, "schema">, "schema"> & {
|
|
49
|
+
schema: string;
|
|
50
|
+
}, "schema">, undefined>, import("@xyo-network/archivist").ArchivistModuleEventData>>[]>;
|
|
19
51
|
getWitnesses(account?: AccountInstance): Promise<WitnessWrapper[]>;
|
|
20
52
|
removeArchivist(address: string[]): void;
|
|
21
53
|
removeWitness(address: string[]): void;
|
|
54
|
+
protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
|
|
22
55
|
abstract report(payloads?: Payload[]): Promise<Payload[]>;
|
|
23
56
|
}
|
|
24
57
|
//# sourceMappingURL=AbstractSentinel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EAEZ,iBAAiB,EACjB,iBAAiB,EAElB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,cAAc,EAAwB,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAA6B,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEzF,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,EAChG,UAAU,SAAS,uBAAuB,GAAG,uBAAuB,CAEtE,SAAQ,eAAe,CAAC,OAAO,EAAE,UAAU,CAC3C,YAAW,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC;IAE9C,OAAgB,YAAY,EAAE,MAAM,CAAuB;IAE3D,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAA8B;IAEhD,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,CAAC,OAAO,CAAC,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWvC,YAAY,CAAC,OAAO,CAAC,EAAE,eAAe;IAY5C,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE;IAKjC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE;cAKN,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,iBAAiB,CAAC;IAyB7B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAC1D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './Report';
|
|
2
|
-
import { ModuleQuery, Query } from '@xyo-network/module-model';
|
|
2
|
+
import { ModuleQuery, ModuleQueryBase, Query } from '@xyo-network/module-model';
|
|
3
3
|
import { SentinelReportQuery } from './Report';
|
|
4
4
|
export type SentinelQueryBase = SentinelReportQuery;
|
|
5
|
+
export type SentinelModuleQueries = ModuleQueryBase | SentinelQueryBase;
|
|
5
6
|
export type SentinelQuery<TQuery extends Query | void = void> = ModuleQuery<TQuery extends Query ? SentinelQueryBase | TQuery : SentinelQueryBase>;
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAA;AACnD,MAAM,MAAM,qBAAqB,GAAG,eAAe,GAAG,iBAAiB,CAAA;AACvE,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC,MAAM,SAAS,KAAK,GAAG,iBAAiB,GAAG,MAAM,GAAG,iBAAiB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -12,25 +12,25 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.7.6",
|
|
14
14
|
"@xylabs/promise": "^2.7.6",
|
|
15
|
-
"@xyo-network/account": "^2.
|
|
16
|
-
"@xyo-network/account-model": "^2.
|
|
17
|
-
"@xyo-network/archivist": "^2.
|
|
18
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
19
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
20
|
-
"@xyo-network/core": "^2.
|
|
21
|
-
"@xyo-network/module": "^2.
|
|
22
|
-
"@xyo-network/module-model": "^2.
|
|
23
|
-
"@xyo-network/payload-model": "^2.
|
|
24
|
-
"@xyo-network/payload-wrapper": "^2.
|
|
25
|
-
"@xyo-network/promise": "^2.
|
|
26
|
-
"@xyo-network/witness": "^2.
|
|
15
|
+
"@xyo-network/account": "^2.57.4",
|
|
16
|
+
"@xyo-network/account-model": "^2.57.4",
|
|
17
|
+
"@xyo-network/archivist": "^2.57.4",
|
|
18
|
+
"@xyo-network/archivist-wrapper": "^2.57.4",
|
|
19
|
+
"@xyo-network/boundwitness-model": "^2.57.4",
|
|
20
|
+
"@xyo-network/core": "^2.57.4",
|
|
21
|
+
"@xyo-network/module": "^2.57.4",
|
|
22
|
+
"@xyo-network/module-model": "^2.57.4",
|
|
23
|
+
"@xyo-network/payload-model": "^2.57.4",
|
|
24
|
+
"@xyo-network/payload-wrapper": "^2.57.4",
|
|
25
|
+
"@xyo-network/promise": "^2.57.4",
|
|
26
|
+
"@xyo-network/witness": "^2.57.4",
|
|
27
27
|
"lodash": "^4.17.21"
|
|
28
28
|
},
|
|
29
29
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/lodash": "^4.14.194",
|
|
32
|
-
"@xylabs/ts-scripts-yarn3": "^2.17.
|
|
33
|
-
"@xylabs/tsconfig": "^2.17.
|
|
32
|
+
"@xylabs/ts-scripts-yarn3": "^2.17.12",
|
|
33
|
+
"@xylabs/tsconfig": "^2.17.12",
|
|
34
34
|
"typescript": "^5.0.4"
|
|
35
35
|
},
|
|
36
36
|
"browser": "dist/esm/index.js",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
},
|
|
66
66
|
"sideEffects": false,
|
|
67
67
|
"types": "dist/types/index.d.ts",
|
|
68
|
-
"version": "2.
|
|
68
|
+
"version": "2.57.4"
|
|
69
69
|
}
|
package/src/AbstractSentinel.ts
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { Account } from '@xyo-network/account'
|
|
1
3
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
4
|
import { ArchivingModule } from '@xyo-network/archivist'
|
|
3
5
|
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
|
|
4
6
|
import { BoundWitness } from '@xyo-network/boundwitness-model'
|
|
5
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
AnyConfigSchema,
|
|
9
|
+
ModuleConfig,
|
|
10
|
+
ModuleErrorBuilder,
|
|
11
|
+
ModuleQueryResult,
|
|
12
|
+
QueryBoundWitness,
|
|
13
|
+
QueryBoundWitnessWrapper,
|
|
14
|
+
} from '@xyo-network/module'
|
|
6
15
|
import { Payload } from '@xyo-network/payload-model'
|
|
7
16
|
import { WitnessWrapper } from '@xyo-network/witness'
|
|
8
17
|
import uniq from 'lodash/uniq'
|
|
9
18
|
|
|
10
19
|
import { SentinelConfig, SentinelConfigSchema } from './Config'
|
|
11
|
-
import { SentinelReportQuerySchema } from './Queries'
|
|
20
|
+
import { SentinelQueryBase, SentinelReportQuerySchema } from './Queries'
|
|
12
21
|
import { SentinelModule, SentinelModuleEventData, SentinelParams } from './SentinelModel'
|
|
13
22
|
|
|
14
23
|
export abstract class AbstractSentinel<
|
|
@@ -21,6 +30,7 @@ export abstract class AbstractSentinel<
|
|
|
21
30
|
static override configSchema: string = SentinelConfigSchema
|
|
22
31
|
|
|
23
32
|
history: BoundWitness[] = []
|
|
33
|
+
|
|
24
34
|
private _archivists: ArchivistWrapper[] | undefined
|
|
25
35
|
private _witnesses: WitnessWrapper[] | undefined
|
|
26
36
|
|
|
@@ -28,6 +38,12 @@ export abstract class AbstractSentinel<
|
|
|
28
38
|
return [SentinelReportQuerySchema, ...super.queries]
|
|
29
39
|
}
|
|
30
40
|
|
|
41
|
+
protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {
|
|
42
|
+
return {
|
|
43
|
+
'network.xyo.query.sentinel.report': '1/1',
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
31
47
|
addArchivist(address: string[]) {
|
|
32
48
|
this.config.archivists = uniq([...address, ...(this.config.archivists ?? [])])
|
|
33
49
|
this._archivists = undefined
|
|
@@ -71,5 +87,34 @@ export abstract class AbstractSentinel<
|
|
|
71
87
|
this._witnesses = undefined
|
|
72
88
|
}
|
|
73
89
|
|
|
90
|
+
protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
|
|
91
|
+
query: T,
|
|
92
|
+
payloads?: Payload[],
|
|
93
|
+
queryConfig?: TConfig,
|
|
94
|
+
): Promise<ModuleQueryResult> {
|
|
95
|
+
const wrapper = QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)
|
|
96
|
+
const typedQuery = wrapper.query.payload
|
|
97
|
+
assertEx(this.queryable(query, payloads, queryConfig))
|
|
98
|
+
const queryAccount = new Account()
|
|
99
|
+
const resultPayloads: Payload[] = []
|
|
100
|
+
try {
|
|
101
|
+
switch (typedQuery.schema) {
|
|
102
|
+
case SentinelReportQuerySchema: {
|
|
103
|
+
await this.emit('reportStart', { inPayloads: payloads, module: this })
|
|
104
|
+
resultPayloads.push(...(await this.report(payloads)))
|
|
105
|
+
await this.emit('reportEnd', { inPayloads: payloads, module: this, outPayloads: resultPayloads })
|
|
106
|
+
break
|
|
107
|
+
}
|
|
108
|
+
default: {
|
|
109
|
+
return super.queryHandler(query, payloads)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
} catch (ex) {
|
|
113
|
+
const error = ex as Error
|
|
114
|
+
return this.bindQueryResult(typedQuery, [new ModuleErrorBuilder().sources([wrapper.hash]).message(error.message).build()], [queryAccount])
|
|
115
|
+
}
|
|
116
|
+
return await this.bindQueryResult(typedQuery, resultPayloads, [queryAccount])
|
|
117
|
+
}
|
|
118
|
+
|
|
74
119
|
abstract report(payloads?: Payload[]): Promise<Payload[]>
|
|
75
120
|
}
|
package/src/MemorySentinel.ts
CHANGED
|
@@ -35,20 +35,20 @@ export class MemorySentinel<
|
|
|
35
35
|
const errors: Error[] = []
|
|
36
36
|
await this.emit('reportStart', { inPayloads: payloads, module: this as SentinelModule })
|
|
37
37
|
const allWitnesses = [...(await this.getWitnesses())]
|
|
38
|
-
const
|
|
38
|
+
const resultPayloads: Payload[] = []
|
|
39
39
|
|
|
40
40
|
try {
|
|
41
41
|
const generatedPayloads = compact(await this.generatePayloads(allWitnesses))
|
|
42
42
|
const combinedPayloads = [...generatedPayloads, ...payloads]
|
|
43
|
-
|
|
43
|
+
resultPayloads.push(...combinedPayloads)
|
|
44
44
|
} catch (e) {
|
|
45
45
|
errors.push(e as Error)
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
const [boundWitness] = await this.
|
|
48
|
+
const [boundWitness] = await this.bindQueryResult({ schema: SentinelReportQuerySchema }, resultPayloads)
|
|
49
49
|
this.history.push(assertEx(boundWitness))
|
|
50
|
-
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this as SentinelModule, outPayloads:
|
|
51
|
-
return [boundWitness, ...
|
|
50
|
+
await this.emit('reportEnd', { boundWitness, errors, inPayloads: payloads, module: this as SentinelModule, outPayloads: resultPayloads })
|
|
51
|
+
return [boundWitness, ...resultPayloads]
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
|
|
@@ -57,12 +57,12 @@ export class MemorySentinel<
|
|
|
57
57
|
queryConfig?: TConfig,
|
|
58
58
|
): Promise<ModuleQueryResult> {
|
|
59
59
|
const wrapper = QueryBoundWitnessWrapper.parseQuery<SentinelQuery>(query, payloads)
|
|
60
|
-
const typedQuery = wrapper.query
|
|
60
|
+
const typedQuery = wrapper.query.payload
|
|
61
61
|
assertEx(this.queryable(query, payloads, queryConfig))
|
|
62
62
|
const queryAccount = new Account()
|
|
63
63
|
const resultPayloads: Payload[] = []
|
|
64
64
|
try {
|
|
65
|
-
switch (typedQuery.
|
|
65
|
+
switch (typedQuery.schema) {
|
|
66
66
|
case SentinelReportQuerySchema: {
|
|
67
67
|
resultPayloads.push(...(await this.report(payloads)))
|
|
68
68
|
break
|
|
@@ -74,7 +74,7 @@ export class MemorySentinel<
|
|
|
74
74
|
const error = ex as Error
|
|
75
75
|
resultPayloads.push(new ModuleErrorBuilder().sources([wrapper.hash]).message(error.message).build())
|
|
76
76
|
}
|
|
77
|
-
return await this.
|
|
77
|
+
return await this.bindQueryResult(typedQuery, resultPayloads, [queryAccount])
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
private async generatePayloads(witnesses: WitnessWrapper[]): Promise<Payload[]> {
|
package/src/Queries/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * from './Report'
|
|
2
2
|
|
|
3
|
-
import { ModuleQuery, Query } from '@xyo-network/module-model'
|
|
3
|
+
import { ModuleQuery, ModuleQueryBase, Query } from '@xyo-network/module-model'
|
|
4
4
|
|
|
5
5
|
import { SentinelReportQuery } from './Report'
|
|
6
6
|
|
|
7
7
|
export type SentinelQueryBase = SentinelReportQuery
|
|
8
|
-
|
|
8
|
+
export type SentinelModuleQueries = ModuleQueryBase | SentinelQueryBase
|
|
9
9
|
export type SentinelQuery<TQuery extends Query | void = void> = ModuleQuery<TQuery extends Query ? SentinelQueryBase | TQuery : SentinelQueryBase>
|
package/typedoc.json
CHANGED