@xyo-network/sentinel-abstract 2.90.2 → 2.90.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/AbstractSentinel.d.cts.map +1 -1
- package/dist/browser/AbstractSentinel.d.mts.map +1 -1
- package/dist/browser/AbstractSentinel.d.ts.map +1 -1
- package/dist/browser/index.cjs +2 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +2 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/node/AbstractSentinel.d.cts.map +1 -1
- package/dist/node/AbstractSentinel.d.mts.map +1 -1
- package/dist/node/AbstractSentinel.d.ts.map +1 -1
- package/dist/node/index.cjs +2 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +2 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +10 -9
- package/src/AbstractSentinel.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAElH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AAEpC,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,IAAI,UAAU,yBAGb;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAEK,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAwBxC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;cAO1D,WAAW;cAmDF,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAElH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AAEpC,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,IAAI,UAAU,yBAGb;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAEK,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAwBxC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;cAO1D,WAAW;cAmDF,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAElH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AAEpC,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,IAAI,UAAU,yBAGb;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAEK,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAwBxC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;cAO1D,WAAW;cAmDF,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"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -30,6 +30,7 @@ var import_assert = require("@xylabs/assert");
|
|
|
30
30
|
var import_forget = require("@xylabs/forget");
|
|
31
31
|
var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
|
|
32
32
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
33
|
+
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
33
34
|
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
34
35
|
var import_sentinel_model = require("@xyo-network/sentinel-model");
|
|
35
36
|
var AbstractSentinel = class extends import_module_abstract.AbstractModuleInstance {
|
|
@@ -134,7 +135,7 @@ var AbstractSentinel = class extends import_module_abstract.AbstractModuleInstan
|
|
|
134
135
|
return job;
|
|
135
136
|
}
|
|
136
137
|
async queryHandler(query, payloads, queryConfig) {
|
|
137
|
-
const wrapper = await
|
|
138
|
+
const wrapper = await import_boundwitness_wrapper.QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
138
139
|
const queryPayload = await wrapper.getQuery();
|
|
139
140
|
(0, import_assert.assertEx)(await this.queryable(query, payloads, queryConfig));
|
|
140
141
|
const resultPayloads = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractSentinel.ts"],"sourcesContent":["export * from './AbstractSentinel'\n","import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractSentinel.ts"],"sourcesContent":["export * from './AbstractSentinel'\n","import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n ResolvedTask,\n SentinelInstance,\n SentinelJob,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n private _jobPromise?: Promise<SentinelJob>\n\n get jobPromise() {\n this._jobPromise = this._jobPromise ?? this.generateJob()\n return this._jobPromise\n }\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n get synchronous(): boolean {\n return this.config.synchronous ?? false\n }\n\n get throwErrors(): boolean {\n return this.config.throwErrors ?? true\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n const reportPromise = (async () => {\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n\n //create boundwitness\n const result = (await (await new BoundWitnessBuilder().payloads(payloads)).witness(this.account).build()).flat()\n\n if (this.config.archiving) {\n await this.storeToArchivists(result)\n }\n\n await this.emitReportEnd(inPayloads, result)\n return result\n })()\n if (this.synchronous) {\n return await reportPromise\n } else {\n forget(reportPromise)\n return []\n }\n }\n\n protected async emitReportEnd(inPayloads?: Payload[], payloads?: Payload[]) {\n const boundwitnesses = payloads?.filter(isBoundWitness) ?? []\n const outPayloads = payloads?.filter(notBoundWitness) ?? []\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n }\n\n protected async generateJob() {\n const job: SentinelJob = { tasks: [] }\n let tasks: ResolvedTask[] = await Promise.all(\n this.config.tasks.map(async (task) => ({\n input: task.input ?? false,\n module: assertEx(await this.resolve(task.module), () => `Unable to resolve task module [${task.module}]`),\n })),\n )\n while (tasks.length > 0) {\n const previousTasks = job.tasks.at(-1) ?? []\n const newListCandidates =\n //add all tasks that either require no previous input or have the previous input module already added\n tasks.filter((task) => {\n const input = task.input\n if (input === undefined) {\n return true\n }\n if (typeof input === 'boolean') {\n return true\n }\n if (typeof input === 'string') {\n return previousTasks.find((prevTask) => prevTask.module.address === input || prevTask.module.config.name === input)\n }\n if (Array.isArray(input)) {\n return previousTasks.find(\n (prevTask) => input.includes(prevTask.module.address) || input.includes(prevTask.module.config.name ?? prevTask.module.address),\n )\n }\n })\n //remove any tasks that have inputs that are in the current list or the remaining tasks\n const newList = newListCandidates.filter((taskCandidate) => {\n const input = taskCandidate.input\n if (\n Array.isArray(input) &&\n tasks.some(\n (remainingTask) =>\n input.includes(remainingTask.module.address) || input.includes(remainingTask.module.config.name ?? remainingTask.module.address),\n )\n ) {\n return false\n }\n return true\n })\n assertEx(newList.length > 0, () => `Unable to generateJob [${tasks.length}]`)\n job.tasks.push(newList)\n //remove the tasks we just added\n tasks = tasks.filter((task) => !newList.includes(task))\n }\n return job\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":"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","names":["AbstractSentinel","AbstractModuleInstance","history","_jobPromise","jobPromise","generateJob","queries","SentinelReportQuerySchema","synchronous","config","throwErrors","_queryAccountPaths","report","inPayloads","_noOverride","reportPromise","emit","module","payloads","reportHandler","result","BoundWitnessBuilder","witness","account","build","flat","archiving","storeToArchivists","emitReportEnd","forget","boundwitnesses","filter","isBoundWitness","outPayloads","notBoundWitness","boundwitness","find","bw","addresses","includes","address","job","tasks","Promise","all","map","task","input","assertEx","resolve","length","previousTasks","at","newListCandidates","undefined","prevTask","name","Array","isArray","newList","taskCandidate","some","remainingTask","push","queryHandler","query","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","queryable","resultPayloads","schema"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -4,8 +4,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4
4
|
// src/AbstractSentinel.ts
|
|
5
5
|
import { assertEx } from "@xylabs/assert";
|
|
6
6
|
import { forget } from "@xylabs/forget";
|
|
7
|
-
import { BoundWitnessBuilder
|
|
7
|
+
import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
|
|
8
8
|
import { isBoundWitness, notBoundWitness } from "@xyo-network/boundwitness-model";
|
|
9
|
+
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
9
10
|
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
10
11
|
import { SentinelReportQuerySchema } from "@xyo-network/sentinel-model";
|
|
11
12
|
var AbstractSentinel = class extends AbstractModuleInstance {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n ResolvedTask,\n SentinelInstance,\n SentinelJob,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n private _jobPromise?: Promise<SentinelJob>\n\n get jobPromise() {\n this._jobPromise = this._jobPromise ?? this.generateJob()\n return this._jobPromise\n }\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n get synchronous(): boolean {\n return this.config.synchronous ?? false\n }\n\n get throwErrors(): boolean {\n return this.config.throwErrors ?? true\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n const reportPromise = (async () => {\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n\n //create boundwitness\n const result = (await (await new BoundWitnessBuilder().payloads(payloads)).witness(this.account).build()).flat()\n\n if (this.config.archiving) {\n await this.storeToArchivists(result)\n }\n\n await this.emitReportEnd(inPayloads, result)\n return result\n })()\n if (this.synchronous) {\n return await reportPromise\n } else {\n forget(reportPromise)\n return []\n }\n }\n\n protected async emitReportEnd(inPayloads?: Payload[], payloads?: Payload[]) {\n const boundwitnesses = payloads?.filter(isBoundWitness) ?? []\n const outPayloads = payloads?.filter(notBoundWitness) ?? []\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n }\n\n protected async generateJob() {\n const job: SentinelJob = { tasks: [] }\n let tasks: ResolvedTask[] = await Promise.all(\n this.config.tasks.map(async (task) => ({\n input: task.input ?? false,\n module: assertEx(await this.resolve(task.module), () => `Unable to resolve task module [${task.module}]`),\n })),\n )\n while (tasks.length > 0) {\n const previousTasks = job.tasks.at(-1) ?? []\n const newListCandidates =\n //add all tasks that either require no previous input or have the previous input module already added\n tasks.filter((task) => {\n const input = task.input\n if (input === undefined) {\n return true\n }\n if (typeof input === 'boolean') {\n return true\n }\n if (typeof input === 'string') {\n return previousTasks.find((prevTask) => prevTask.module.address === input || prevTask.module.config.name === input)\n }\n if (Array.isArray(input)) {\n return previousTasks.find(\n (prevTask) => input.includes(prevTask.module.address) || input.includes(prevTask.module.config.name ?? prevTask.module.address),\n )\n }\n })\n //remove any tasks that have inputs that are in the current list or the remaining tasks\n const newList = newListCandidates.filter((taskCandidate) => {\n const input = taskCandidate.input\n if (\n Array.isArray(input) &&\n tasks.some(\n (remainingTask) =>\n input.includes(remainingTask.module.address) || input.includes(remainingTask.module.config.name ?? remainingTask.module.address),\n )\n ) {\n return false\n }\n return true\n })\n assertEx(newList.length > 0, () => `Unable to generateJob [${tasks.length}]`)\n job.tasks.push(newList)\n //remove the tasks we just added\n tasks = tasks.filter((task) => !newList.includes(task))\n }\n return job\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":"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","names":["assertEx","forget","BoundWitnessBuilder","isBoundWitness","notBoundWitness","QueryBoundWitnessWrapper","AbstractModuleInstance","SentinelReportQuerySchema","AbstractSentinel","AbstractModuleInstance","history","_jobPromise","jobPromise","generateJob","queries","SentinelReportQuerySchema","synchronous","config","throwErrors","_queryAccountPaths","report","inPayloads","_noOverride","reportPromise","emit","module","payloads","reportHandler","result","BoundWitnessBuilder","witness","account","build","flat","archiving","storeToArchivists","emitReportEnd","forget","boundwitnesses","filter","isBoundWitness","outPayloads","notBoundWitness","boundwitness","find","bw","addresses","includes","address","job","tasks","Promise","all","map","task","input","assertEx","resolve","length","previousTasks","at","newListCandidates","undefined","prevTask","name","Array","isArray","newList","taskCandidate","some","remainingTask","push","queryHandler","query","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","queryable","resultPayloads","schema"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAElH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AAEpC,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,IAAI,UAAU,yBAGb;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAEK,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAwBxC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;cAO1D,WAAW;cAmDF,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAElH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AAEpC,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,IAAI,UAAU,yBAGb;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAEK,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAwBxC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;cAO1D,WAAW;cAmDF,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractSentinel.d.ts","sourceRoot":"","sources":["../../src/AbstractSentinel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAmC,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAElH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EACL,sBAAsB,EAEtB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAElB,MAAM,6BAA6B,CAAA;AAEpC,8BAAsB,gBAAgB,CAClC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAE5H,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEtD,OAAO,EAAE,YAAY,EAAE,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,IAAI,UAAU,yBAGb;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAIvF;IAEK,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAwBxC,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;cAO1D,WAAW;cAmDF,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"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -30,6 +30,7 @@ var import_assert = require("@xylabs/assert");
|
|
|
30
30
|
var import_forget = require("@xylabs/forget");
|
|
31
31
|
var import_boundwitness_builder = require("@xyo-network/boundwitness-builder");
|
|
32
32
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
33
|
+
var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
|
|
33
34
|
var import_module_abstract = require("@xyo-network/module-abstract");
|
|
34
35
|
var import_sentinel_model = require("@xyo-network/sentinel-model");
|
|
35
36
|
var _AbstractSentinel = class _AbstractSentinel extends import_module_abstract.AbstractModuleInstance {
|
|
@@ -131,7 +132,7 @@ var _AbstractSentinel = class _AbstractSentinel extends import_module_abstract.A
|
|
|
131
132
|
return job;
|
|
132
133
|
}
|
|
133
134
|
async queryHandler(query, payloads, queryConfig) {
|
|
134
|
-
const wrapper = await
|
|
135
|
+
const wrapper = await import_boundwitness_wrapper.QueryBoundWitnessWrapper.parseQuery(query, payloads);
|
|
135
136
|
const queryPayload = await wrapper.getQuery();
|
|
136
137
|
(0, import_assert.assertEx)(await this.queryable(query, payloads, queryConfig));
|
|
137
138
|
const resultPayloads = [];
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/AbstractSentinel.ts"],"sourcesContent":["export * from './AbstractSentinel'\n","import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/AbstractSentinel.ts"],"sourcesContent":["export * from './AbstractSentinel'\n","import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n ResolvedTask,\n SentinelInstance,\n SentinelJob,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n private _jobPromise?: Promise<SentinelJob>\n\n get jobPromise() {\n this._jobPromise = this._jobPromise ?? this.generateJob()\n return this._jobPromise\n }\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n get synchronous(): boolean {\n return this.config.synchronous ?? false\n }\n\n get throwErrors(): boolean {\n return this.config.throwErrors ?? true\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n const reportPromise = (async () => {\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n\n //create boundwitness\n const result = (await (await new BoundWitnessBuilder().payloads(payloads)).witness(this.account).build()).flat()\n\n if (this.config.archiving) {\n await this.storeToArchivists(result)\n }\n\n await this.emitReportEnd(inPayloads, result)\n return result\n })()\n if (this.synchronous) {\n return await reportPromise\n } else {\n forget(reportPromise)\n return []\n }\n }\n\n protected async emitReportEnd(inPayloads?: Payload[], payloads?: Payload[]) {\n const boundwitnesses = payloads?.filter(isBoundWitness) ?? []\n const outPayloads = payloads?.filter(notBoundWitness) ?? []\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n }\n\n protected async generateJob() {\n const job: SentinelJob = { tasks: [] }\n let tasks: ResolvedTask[] = await Promise.all(\n this.config.tasks.map(async (task) => ({\n input: task.input ?? false,\n module: assertEx(await this.resolve(task.module), () => `Unable to resolve task module [${task.module}]`),\n })),\n )\n while (tasks.length > 0) {\n const previousTasks = job.tasks.at(-1) ?? []\n const newListCandidates =\n //add all tasks that either require no previous input or have the previous input module already added\n tasks.filter((task) => {\n const input = task.input\n if (input === undefined) {\n return true\n }\n if (typeof input === 'boolean') {\n return true\n }\n if (typeof input === 'string') {\n return previousTasks.find((prevTask) => prevTask.module.address === input || prevTask.module.config.name === input)\n }\n if (Array.isArray(input)) {\n return previousTasks.find(\n (prevTask) => input.includes(prevTask.module.address) || input.includes(prevTask.module.config.name ?? prevTask.module.address),\n )\n }\n })\n //remove any tasks that have inputs that are in the current list or the remaining tasks\n const newList = newListCandidates.filter((taskCandidate) => {\n const input = taskCandidate.input\n if (\n Array.isArray(input) &&\n tasks.some(\n (remainingTask) =>\n input.includes(remainingTask.module.address) || input.includes(remainingTask.module.config.name ?? remainingTask.module.address),\n )\n ) {\n return false\n }\n return true\n })\n assertEx(newList.length > 0, () => `Unable to generateJob [${tasks.length}]`)\n job.tasks.push(newList)\n //remove the tasks we just added\n tasks = tasks.filter((task) => !newList.includes(task))\n }\n return job\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":"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","names":["AbstractSentinel","AbstractModuleInstance","history","_jobPromise","jobPromise","generateJob","queries","SentinelReportQuerySchema","synchronous","config","throwErrors","_queryAccountPaths","report","inPayloads","_noOverride","reportPromise","emit","module","payloads","reportHandler","result","BoundWitnessBuilder","witness","account","build","flat","archiving","storeToArchivists","emitReportEnd","forget","boundwitnesses","filter","isBoundWitness","outPayloads","notBoundWitness","boundwitness","find","bw","addresses","includes","address","job","tasks","Promise","all","map","task","input","assertEx","resolve","length","previousTasks","at","newListCandidates","undefined","prevTask","name","Array","isArray","newList","taskCandidate","some","remainingTask","push","queryHandler","query","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","queryable","resultPayloads","schema"]}
|
package/dist/node/index.js
CHANGED
|
@@ -4,8 +4,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4
4
|
// src/AbstractSentinel.ts
|
|
5
5
|
import { assertEx } from "@xylabs/assert";
|
|
6
6
|
import { forget } from "@xylabs/forget";
|
|
7
|
-
import { BoundWitnessBuilder
|
|
7
|
+
import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
|
|
8
8
|
import { isBoundWitness, notBoundWitness } from "@xyo-network/boundwitness-model";
|
|
9
|
+
import { QueryBoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
9
10
|
import { AbstractModuleInstance } from "@xyo-network/module-abstract";
|
|
10
11
|
import { SentinelReportQuerySchema } from "@xyo-network/sentinel-model";
|
|
11
12
|
var _AbstractSentinel = class _AbstractSentinel extends AbstractModuleInstance {
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder
|
|
1
|
+
{"version":3,"sources":["../../src/AbstractSentinel.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { forget } from '@xylabs/forget'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { BoundWitness, isBoundWitness, notBoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { AbstractModuleInstance } from '@xyo-network/module-abstract'\nimport { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CustomSentinelInstance,\n ResolvedTask,\n SentinelInstance,\n SentinelJob,\n SentinelModuleEventData,\n SentinelParams,\n SentinelQueryBase,\n SentinelReportQuerySchema,\n} from '@xyo-network/sentinel-model'\n\nexport abstract class AbstractSentinel<\n TParams extends SentinelParams = SentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n >\n extends AbstractModuleInstance<TParams, TEventData>\n implements CustomSentinelInstance<TParams, TEventData>\n{\n history: BoundWitness[] = []\n private _jobPromise?: Promise<SentinelJob>\n\n get jobPromise() {\n this._jobPromise = this._jobPromise ?? this.generateJob()\n return this._jobPromise\n }\n\n override get queries(): string[] {\n return [SentinelReportQuerySchema, ...super.queries]\n }\n\n get synchronous(): boolean {\n return this.config.synchronous ?? false\n }\n\n get throwErrors(): boolean {\n return this.config.throwErrors ?? true\n }\n\n protected override get _queryAccountPaths(): Record<SentinelQueryBase['schema'], string> {\n return {\n 'network.xyo.query.sentinel.report': '1/1',\n }\n }\n\n async report(inPayloads?: Payload[]): Promise<Payload[]> {\n this._noOverride('report')\n const reportPromise = (async () => {\n await this.emit('reportStart', { inPayloads, module: this })\n const payloads = await this.reportHandler(inPayloads)\n\n //create boundwitness\n const result = (await (await new BoundWitnessBuilder().payloads(payloads)).witness(this.account).build()).flat()\n\n if (this.config.archiving) {\n await this.storeToArchivists(result)\n }\n\n await this.emitReportEnd(inPayloads, result)\n return result\n })()\n if (this.synchronous) {\n return await reportPromise\n } else {\n forget(reportPromise)\n return []\n }\n }\n\n protected async emitReportEnd(inPayloads?: Payload[], payloads?: Payload[]) {\n const boundwitnesses = payloads?.filter(isBoundWitness) ?? []\n const outPayloads = payloads?.filter(notBoundWitness) ?? []\n const boundwitness = boundwitnesses.find((bw) => bw.addresses.includes(this.address))\n await this.emit('reportEnd', { boundwitness, inPayloads, module: this, outPayloads })\n }\n\n protected async generateJob() {\n const job: SentinelJob = { tasks: [] }\n let tasks: ResolvedTask[] = await Promise.all(\n this.config.tasks.map(async (task) => ({\n input: task.input ?? false,\n module: assertEx(await this.resolve(task.module), () => `Unable to resolve task module [${task.module}]`),\n })),\n )\n while (tasks.length > 0) {\n const previousTasks = job.tasks.at(-1) ?? []\n const newListCandidates =\n //add all tasks that either require no previous input or have the previous input module already added\n tasks.filter((task) => {\n const input = task.input\n if (input === undefined) {\n return true\n }\n if (typeof input === 'boolean') {\n return true\n }\n if (typeof input === 'string') {\n return previousTasks.find((prevTask) => prevTask.module.address === input || prevTask.module.config.name === input)\n }\n if (Array.isArray(input)) {\n return previousTasks.find(\n (prevTask) => input.includes(prevTask.module.address) || input.includes(prevTask.module.config.name ?? prevTask.module.address),\n )\n }\n })\n //remove any tasks that have inputs that are in the current list or the remaining tasks\n const newList = newListCandidates.filter((taskCandidate) => {\n const input = taskCandidate.input\n if (\n Array.isArray(input) &&\n tasks.some(\n (remainingTask) =>\n input.includes(remainingTask.module.address) || input.includes(remainingTask.module.config.name ?? remainingTask.module.address),\n )\n ) {\n return false\n }\n return true\n })\n assertEx(newList.length > 0, () => `Unable to generateJob [${tasks.length}]`)\n job.tasks.push(newList)\n //remove the tasks we just added\n tasks = tasks.filter((task) => !newList.includes(task))\n }\n return job\n }\n\n protected override async queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(\n query: T,\n payloads?: Payload[],\n queryConfig?: TConfig,\n ): Promise<ModuleQueryHandlerResult> {\n const wrapper = await QueryBoundWitnessWrapper.parseQuery<SentinelQueryBase>(query, payloads)\n const queryPayload = await wrapper.getQuery()\n assertEx(await this.queryable(query, payloads, queryConfig))\n const resultPayloads: Payload[] = []\n switch (queryPayload.schema) {\n case SentinelReportQuerySchema: {\n resultPayloads.push(...(await this.report(payloads)))\n break\n }\n default: {\n return super.queryHandler(query, payloads)\n }\n }\n return resultPayloads\n }\n\n abstract reportHandler(payloads?: Payload[]): Promise<Payload[]>\n}\n"],"mappings":"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","names":["assertEx","forget","BoundWitnessBuilder","isBoundWitness","notBoundWitness","QueryBoundWitnessWrapper","AbstractModuleInstance","SentinelReportQuerySchema","AbstractSentinel","AbstractModuleInstance","history","_jobPromise","jobPromise","generateJob","queries","SentinelReportQuerySchema","synchronous","config","throwErrors","_queryAccountPaths","report","inPayloads","_noOverride","reportPromise","emit","module","payloads","reportHandler","result","BoundWitnessBuilder","witness","account","build","flat","archiving","storeToArchivists","emitReportEnd","forget","boundwitnesses","filter","isBoundWitness","outPayloads","notBoundWitness","boundwitness","find","bw","addresses","includes","address","job","tasks","Promise","all","map","task","input","assertEx","resolve","length","previousTasks","at","newListCandidates","undefined","prevTask","name","Array","isArray","newList","taskCandidate","some","remainingTask","push","queryHandler","query","queryConfig","wrapper","QueryBoundWitnessWrapper","parseQuery","queryPayload","getQuery","queryable","resultPayloads","schema"]}
|
package/package.json
CHANGED
|
@@ -10,14 +10,15 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^2.14.
|
|
14
|
-
"@xylabs/forget": "^2.14.
|
|
15
|
-
"@xyo-network/boundwitness-builder": "~2.90.
|
|
16
|
-
"@xyo-network/boundwitness-model": "~2.90.
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/module-
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/
|
|
13
|
+
"@xylabs/assert": "^2.14.1",
|
|
14
|
+
"@xylabs/forget": "^2.14.1",
|
|
15
|
+
"@xyo-network/boundwitness-builder": "~2.90.3",
|
|
16
|
+
"@xyo-network/boundwitness-model": "~2.90.3",
|
|
17
|
+
"@xyo-network/boundwitness-wrapper": "~2.90.3",
|
|
18
|
+
"@xyo-network/module-abstract": "~2.90.3",
|
|
19
|
+
"@xyo-network/module-model": "~2.90.3",
|
|
20
|
+
"@xyo-network/payload-model": "~2.90.3",
|
|
21
|
+
"@xyo-network/sentinel-model": "~2.90.3"
|
|
21
22
|
},
|
|
22
23
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
23
24
|
"devDependencies": {
|
|
@@ -63,6 +64,6 @@
|
|
|
63
64
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
64
65
|
},
|
|
65
66
|
"sideEffects": false,
|
|
66
|
-
"version": "2.90.
|
|
67
|
+
"version": "2.90.3",
|
|
67
68
|
"type": "module"
|
|
68
69
|
}
|
package/src/AbstractSentinel.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import { forget } from '@xylabs/forget'
|
|
3
|
-
import { BoundWitnessBuilder
|
|
3
|
+
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
|
|
4
4
|
import { BoundWitness, isBoundWitness, notBoundWitness, QueryBoundWitness } from '@xyo-network/boundwitness-model'
|
|
5
|
+
import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
|
|
5
6
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract'
|
|
6
7
|
import { ModuleConfig, ModuleQueryHandlerResult } from '@xyo-network/module-model'
|
|
7
8
|
import { Payload } from '@xyo-network/payload-model'
|