@xyo-network/diviner-forecasting-abstract 2.99.1 → 2.99.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.
@@ -0,0 +1,16 @@
1
+ import { Promisable } from '@xylabs/promise';
2
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
3
+ import { ForecastingDivinerConfig, ForecastingDivinerQueryPayload, ForecastingMethod, ForecastPayload, PayloadValueTransformer } from '@xyo-network/diviner-forecasting-model';
4
+ import { DivinerInstance, DivinerModuleEventData, DivinerParams } from '@xyo-network/diviner-model';
5
+ import { AnyConfigSchema } from '@xyo-network/module-model';
6
+ import { Payload, Schema, WithSources } from '@xyo-network/payload-model';
7
+ export type ForecastingDivinerParams = DivinerParams<AnyConfigSchema<ForecastingDivinerConfig>>;
8
+ export declare abstract class AbstractForecastingDiviner<TParams extends ForecastingDivinerParams = ForecastingDivinerParams, TIn extends ForecastingDivinerQueryPayload = ForecastingDivinerQueryPayload, TOut extends ForecastPayload = ForecastPayload, TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut>> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {
9
+ static readonly configSchemas: Schema[];
10
+ static readonly defaultConfigSchema: Schema;
11
+ protected abstract get forecastingMethod(): ForecastingMethod;
12
+ protected abstract get transformer(): PayloadValueTransformer;
13
+ protected divineHandler(payloads?: TIn[]): Promise<WithSources<TOut>[]>;
14
+ protected abstract getPayloadsInWindow(startTimestamp: number, stopTimestamp: number): Promisable<Payload[]>;
15
+ }
16
+ //# sourceMappingURL=AbstractForecasting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractForecasting.d.ts","sourceRoot":"","sources":["../../src/AbstractForecasting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,wBAAwB,EAExB,8BAA8B,EAC9B,iBAAiB,EAEjB,eAAe,EAGf,uBAAuB,EACxB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEzE,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAE/F,8BAAsB,0BAA0B,CAC9C,OAAO,SAAS,wBAAwB,GAAG,wBAAwB,EACnE,GAAG,SAAS,8BAA8B,GAAG,8BAA8B,EAC3E,IAAI,SAAS,eAAe,GAAG,eAAe,EAC9C,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA2D;IAC3G,gBAAyB,mBAAmB,EAAE,MAAM,CAAiC;IAErF,SAAS,CAAC,QAAQ,KAAK,iBAAiB,IAAI,iBAAiB,CAAA;IAC7D,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,uBAAuB,CAAA;cAEpC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;IAavD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7G"}
@@ -0,0 +1,16 @@
1
+ import { Promisable } from '@xylabs/promise';
2
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
3
+ import { ForecastingDivinerConfig, ForecastingDivinerQueryPayload, ForecastingMethod, ForecastPayload, PayloadValueTransformer } from '@xyo-network/diviner-forecasting-model';
4
+ import { DivinerInstance, DivinerModuleEventData, DivinerParams } from '@xyo-network/diviner-model';
5
+ import { AnyConfigSchema } from '@xyo-network/module-model';
6
+ import { Payload, Schema, WithSources } from '@xyo-network/payload-model';
7
+ export type ForecastingDivinerParams = DivinerParams<AnyConfigSchema<ForecastingDivinerConfig>>;
8
+ export declare abstract class AbstractForecastingDiviner<TParams extends ForecastingDivinerParams = ForecastingDivinerParams, TIn extends ForecastingDivinerQueryPayload = ForecastingDivinerQueryPayload, TOut extends ForecastPayload = ForecastPayload, TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut>> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {
9
+ static readonly configSchemas: Schema[];
10
+ static readonly defaultConfigSchema: Schema;
11
+ protected abstract get forecastingMethod(): ForecastingMethod;
12
+ protected abstract get transformer(): PayloadValueTransformer;
13
+ protected divineHandler(payloads?: TIn[]): Promise<WithSources<TOut>[]>;
14
+ protected abstract getPayloadsInWindow(startTimestamp: number, stopTimestamp: number): Promisable<Payload[]>;
15
+ }
16
+ //# sourceMappingURL=AbstractForecasting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractForecasting.d.ts","sourceRoot":"","sources":["../../src/AbstractForecasting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,wBAAwB,EAExB,8BAA8B,EAC9B,iBAAiB,EAEjB,eAAe,EAGf,uBAAuB,EACxB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEzE,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAE/F,8BAAsB,0BAA0B,CAC9C,OAAO,SAAS,wBAAwB,GAAG,wBAAwB,EACnE,GAAG,SAAS,8BAA8B,GAAG,8BAA8B,EAC3E,IAAI,SAAS,eAAe,GAAG,eAAe,EAC9C,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA2D;IAC3G,gBAAyB,mBAAmB,EAAE,MAAM,CAAiC;IAErF,SAAS,CAAC,QAAQ,KAAK,iBAAiB,IAAI,iBAAiB,CAAA;IAC7D,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,uBAAuB,CAAA;cAEpC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;IAavD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7G"}
@@ -0,0 +1,16 @@
1
+ import { Promisable } from '@xylabs/promise';
2
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
3
+ import { ForecastingDivinerConfig, ForecastingDivinerQueryPayload, ForecastingMethod, ForecastPayload, PayloadValueTransformer } from '@xyo-network/diviner-forecasting-model';
4
+ import { DivinerInstance, DivinerModuleEventData, DivinerParams } from '@xyo-network/diviner-model';
5
+ import { AnyConfigSchema } from '@xyo-network/module-model';
6
+ import { Payload, Schema, WithSources } from '@xyo-network/payload-model';
7
+ export type ForecastingDivinerParams = DivinerParams<AnyConfigSchema<ForecastingDivinerConfig>>;
8
+ export declare abstract class AbstractForecastingDiviner<TParams extends ForecastingDivinerParams = ForecastingDivinerParams, TIn extends ForecastingDivinerQueryPayload = ForecastingDivinerQueryPayload, TOut extends ForecastPayload = ForecastPayload, TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut>> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {
9
+ static readonly configSchemas: Schema[];
10
+ static readonly defaultConfigSchema: Schema;
11
+ protected abstract get forecastingMethod(): ForecastingMethod;
12
+ protected abstract get transformer(): PayloadValueTransformer;
13
+ protected divineHandler(payloads?: TIn[]): Promise<WithSources<TOut>[]>;
14
+ protected abstract getPayloadsInWindow(startTimestamp: number, stopTimestamp: number): Promisable<Payload[]>;
15
+ }
16
+ //# sourceMappingURL=AbstractForecasting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractForecasting.d.ts","sourceRoot":"","sources":["../../src/AbstractForecasting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,wBAAwB,EAExB,8BAA8B,EAC9B,iBAAiB,EAEjB,eAAe,EAGf,uBAAuB,EACxB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEzE,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAA;AAE/F,8BAAsB,0BAA0B,CAC9C,OAAO,SAAS,wBAAwB,GAAG,wBAAwB,EACnE,GAAG,SAAS,8BAA8B,GAAG,8BAA8B,EAC3E,IAAI,SAAS,eAAe,GAAG,eAAe,EAC9C,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA2D;IAC3G,gBAAyB,mBAAmB,EAAE,MAAM,CAAiC;IAErF,SAAS,CAAC,QAAQ,KAAK,iBAAiB,IAAI,iBAAiB,CAAA;IAC7D,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,uBAAuB,CAAA;cAEpC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;IAavD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;CAC7G"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/index.ts
22
+ var src_exports = {};
23
+ __export(src_exports, {
24
+ AbstractForecastingDiviner: () => AbstractForecastingDiviner
25
+ });
26
+ module.exports = __toCommonJS(src_exports);
27
+
28
+ // src/AbstractForecasting.ts
29
+ var import_diviner_abstract = require("@xyo-network/diviner-abstract");
30
+ var import_diviner_forecasting_model = require("@xyo-network/diviner-forecasting-model");
31
+ var import_payload_builder = require("@xyo-network/payload-builder");
32
+ var AbstractForecastingDiviner = class extends import_diviner_abstract.AbstractDiviner {
33
+ static {
34
+ __name(this, "AbstractForecastingDiviner");
35
+ }
36
+ static configSchemas = [
37
+ ...super.configSchemas,
38
+ import_diviner_forecasting_model.ForecastingDivinerConfigSchema
39
+ ];
40
+ static defaultConfigSchema = import_diviner_forecasting_model.ForecastingDivinerConfigSchema;
41
+ async divineHandler(payloads) {
42
+ const query = payloads?.find(import_diviner_forecasting_model.isForecastingDivinerQueryPayload);
43
+ if (!query)
44
+ return [];
45
+ const windowSettings = {
46
+ ...this.config,
47
+ ...this.query
48
+ };
49
+ const stopTimestamp = query.timestamp || Date.now();
50
+ const startTimestamp = windowSettings.windowSize ? stopTimestamp - windowSettings.windowSize : 0;
51
+ const data = await this.getPayloadsInWindow(startTimestamp, stopTimestamp);
52
+ const sources = await import_payload_builder.PayloadBuilder.dataHashes(data);
53
+ const values = await this.forecastingMethod(data, this.transformer);
54
+ const response = {
55
+ schema: import_diviner_forecasting_model.ForecastPayloadSchema,
56
+ sources,
57
+ values
58
+ };
59
+ return [
60
+ response
61
+ ];
62
+ }
63
+ };
64
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/AbstractForecasting.ts"],"sourcesContent":["export * from './AbstractForecasting'\n","import { Promisable } from '@xylabs/promise'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport {\n ForecastingDivinerConfig,\n ForecastingDivinerConfigSchema,\n ForecastingDivinerQueryPayload,\n ForecastingMethod,\n ForecastingSettings,\n ForecastPayload,\n ForecastPayloadSchema,\n isForecastingDivinerQueryPayload,\n PayloadValueTransformer,\n} from '@xyo-network/diviner-forecasting-model'\nimport { DivinerInstance, DivinerModuleEventData, DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema, WithSources } from '@xyo-network/payload-model'\n\nexport type ForecastingDivinerParams = DivinerParams<AnyConfigSchema<ForecastingDivinerConfig>>\n\nexport abstract class AbstractForecastingDiviner<\n TParams extends ForecastingDivinerParams = ForecastingDivinerParams,\n TIn extends ForecastingDivinerQueryPayload = ForecastingDivinerQueryPayload,\n TOut extends ForecastPayload = ForecastPayload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ForecastingDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = ForecastingDivinerConfigSchema\n\n protected abstract get forecastingMethod(): ForecastingMethod\n protected abstract get transformer(): PayloadValueTransformer\n\n protected override async divineHandler(payloads?: TIn[]) {\n const query = payloads?.find(isForecastingDivinerQueryPayload)\n if (!query) return []\n const windowSettings: ForecastingSettings = { ...this.config, ...this.query }\n const stopTimestamp = query.timestamp || Date.now()\n const startTimestamp = windowSettings.windowSize ? stopTimestamp - windowSettings.windowSize : 0\n const data = await this.getPayloadsInWindow(startTimestamp, stopTimestamp)\n const sources = await PayloadBuilder.dataHashes(data)\n const values = await this.forecastingMethod(data, this.transformer)\n const response = { schema: ForecastPayloadSchema, sources, values } as WithSources<TOut>\n return [response]\n }\n\n protected abstract getPayloadsInWindow(startTimestamp: number, stopTimestamp: number): Promisable<Payload[]>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACCA,8BAAgC;AAChC,uCAUO;AAGP,6BAA+B;AAKxB,IAAeA,6BAAf,cASGC,wCAAAA;EA5BV,OA4BUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAKvD,MAAyBE,cAAcC,UAAkB;AACvD,UAAMC,QAAQD,UAAUE,KAAKC,iEAAAA;AAC7B,QAAI,CAACF;AAAO,aAAO,CAAA;AACnB,UAAMG,iBAAsC;MAAE,GAAG,KAAKC;MAAQ,GAAG,KAAKJ;IAAM;AAC5E,UAAMK,gBAAgBL,MAAMM,aAAaC,KAAKC,IAAG;AACjD,UAAMC,iBAAiBN,eAAeO,aAAaL,gBAAgBF,eAAeO,aAAa;AAC/F,UAAMC,OAAO,MAAM,KAAKC,oBAAoBH,gBAAgBJ,aAAAA;AAC5D,UAAMQ,UAAU,MAAMC,sCAAeC,WAAWJ,IAAAA;AAChD,UAAMK,SAAS,MAAM,KAAKC,kBAAkBN,MAAM,KAAKO,WAAW;AAClE,UAAMC,WAAW;MAAEC,QAAQC;MAAuBR;MAASG;IAAO;AAClE,WAAO;MAACG;;EACV;AAGF;","names":["AbstractForecastingDiviner","AbstractDiviner","configSchemas","ForecastingDivinerConfigSchema","defaultConfigSchema","divineHandler","payloads","query","find","isForecastingDivinerQueryPayload","windowSettings","config","stopTimestamp","timestamp","Date","now","startTimestamp","windowSize","data","getPayloadsInWindow","sources","PayloadBuilder","dataHashes","values","forecastingMethod","transformer","response","schema","ForecastPayloadSchema"]}
@@ -0,0 +1,2 @@
1
+ export * from './AbstractForecasting';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './AbstractForecasting';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './AbstractForecasting';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,43 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/AbstractForecasting.ts
5
+ import { AbstractDiviner } from "@xyo-network/diviner-abstract";
6
+ import { ForecastingDivinerConfigSchema, ForecastPayloadSchema, isForecastingDivinerQueryPayload } from "@xyo-network/diviner-forecasting-model";
7
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
8
+ var AbstractForecastingDiviner = class extends AbstractDiviner {
9
+ static {
10
+ __name(this, "AbstractForecastingDiviner");
11
+ }
12
+ static configSchemas = [
13
+ ...super.configSchemas,
14
+ ForecastingDivinerConfigSchema
15
+ ];
16
+ static defaultConfigSchema = ForecastingDivinerConfigSchema;
17
+ async divineHandler(payloads) {
18
+ const query = payloads?.find(isForecastingDivinerQueryPayload);
19
+ if (!query)
20
+ return [];
21
+ const windowSettings = {
22
+ ...this.config,
23
+ ...this.query
24
+ };
25
+ const stopTimestamp = query.timestamp || Date.now();
26
+ const startTimestamp = windowSettings.windowSize ? stopTimestamp - windowSettings.windowSize : 0;
27
+ const data = await this.getPayloadsInWindow(startTimestamp, stopTimestamp);
28
+ const sources = await PayloadBuilder.dataHashes(data);
29
+ const values = await this.forecastingMethod(data, this.transformer);
30
+ const response = {
31
+ schema: ForecastPayloadSchema,
32
+ sources,
33
+ values
34
+ };
35
+ return [
36
+ response
37
+ ];
38
+ }
39
+ };
40
+ export {
41
+ AbstractForecastingDiviner
42
+ };
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/AbstractForecasting.ts"],"sourcesContent":["import { Promisable } from '@xylabs/promise'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport {\n ForecastingDivinerConfig,\n ForecastingDivinerConfigSchema,\n ForecastingDivinerQueryPayload,\n ForecastingMethod,\n ForecastingSettings,\n ForecastPayload,\n ForecastPayloadSchema,\n isForecastingDivinerQueryPayload,\n PayloadValueTransformer,\n} from '@xyo-network/diviner-forecasting-model'\nimport { DivinerInstance, DivinerModuleEventData, DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema, WithSources } from '@xyo-network/payload-model'\n\nexport type ForecastingDivinerParams = DivinerParams<AnyConfigSchema<ForecastingDivinerConfig>>\n\nexport abstract class AbstractForecastingDiviner<\n TParams extends ForecastingDivinerParams = ForecastingDivinerParams,\n TIn extends ForecastingDivinerQueryPayload = ForecastingDivinerQueryPayload,\n TOut extends ForecastPayload = ForecastPayload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ForecastingDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = ForecastingDivinerConfigSchema\n\n protected abstract get forecastingMethod(): ForecastingMethod\n protected abstract get transformer(): PayloadValueTransformer\n\n protected override async divineHandler(payloads?: TIn[]) {\n const query = payloads?.find(isForecastingDivinerQueryPayload)\n if (!query) return []\n const windowSettings: ForecastingSettings = { ...this.config, ...this.query }\n const stopTimestamp = query.timestamp || Date.now()\n const startTimestamp = windowSettings.windowSize ? stopTimestamp - windowSettings.windowSize : 0\n const data = await this.getPayloadsInWindow(startTimestamp, stopTimestamp)\n const sources = await PayloadBuilder.dataHashes(data)\n const values = await this.forecastingMethod(data, this.transformer)\n const response = { schema: ForecastPayloadSchema, sources, values } as WithSources<TOut>\n return [response]\n }\n\n protected abstract getPayloadsInWindow(startTimestamp: number, stopTimestamp: number): Promisable<Payload[]>\n}\n"],"mappings":";;;;AACA,SAASA,uBAAuB;AAChC,SAEEC,gCAKAC,uBACAC,wCAEK;AAGP,SAASC,sBAAsB;AAKxB,IAAeC,6BAAf,cASGC,gBAAAA;EA5BV,OA4BUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAKvD,MAAyBE,cAAcC,UAAkB;AACvD,UAAMC,QAAQD,UAAUE,KAAKC,gCAAAA;AAC7B,QAAI,CAACF;AAAO,aAAO,CAAA;AACnB,UAAMG,iBAAsC;MAAE,GAAG,KAAKC;MAAQ,GAAG,KAAKJ;IAAM;AAC5E,UAAMK,gBAAgBL,MAAMM,aAAaC,KAAKC,IAAG;AACjD,UAAMC,iBAAiBN,eAAeO,aAAaL,gBAAgBF,eAAeO,aAAa;AAC/F,UAAMC,OAAO,MAAM,KAAKC,oBAAoBH,gBAAgBJ,aAAAA;AAC5D,UAAMQ,UAAU,MAAMC,eAAeC,WAAWJ,IAAAA;AAChD,UAAMK,SAAS,MAAM,KAAKC,kBAAkBN,MAAM,KAAKO,WAAW;AAClE,UAAMC,WAAW;MAAEC,QAAQC;MAAuBR;MAASG;IAAO;AAClE,WAAO;MAACG;;EACV;AAGF;","names":["AbstractDiviner","ForecastingDivinerConfigSchema","ForecastPayloadSchema","isForecastingDivinerQueryPayload","PayloadBuilder","AbstractForecastingDiviner","AbstractDiviner","configSchemas","ForecastingDivinerConfigSchema","defaultConfigSchema","divineHandler","payloads","query","find","isForecastingDivinerQueryPayload","windowSettings","config","stopTimestamp","timestamp","Date","now","startTimestamp","windowSize","data","getPayloadsInWindow","sources","PayloadBuilder","dataHashes","values","forecastingMethod","transformer","response","schema","ForecastPayloadSchema"]}
package/package.json CHANGED
@@ -10,17 +10,17 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/promise": "^3.1.11",
14
- "@xyo-network/diviner-abstract": "~2.99.1",
15
- "@xyo-network/diviner-forecasting-model": "~2.99.1",
16
- "@xyo-network/diviner-model": "~2.99.1",
17
- "@xyo-network/module-model": "~2.99.1",
18
- "@xyo-network/payload-builder": "~2.99.1",
19
- "@xyo-network/payload-model": "~2.99.1"
13
+ "@xylabs/promise": "^3.3.2",
14
+ "@xyo-network/diviner-abstract": "~2.99.3",
15
+ "@xyo-network/diviner-forecasting-model": "~2.99.3",
16
+ "@xyo-network/diviner-model": "~2.99.3",
17
+ "@xyo-network/module-model": "~2.99.3",
18
+ "@xyo-network/payload-builder": "~2.99.3",
19
+ "@xyo-network/payload-model": "~2.99.3"
20
20
  },
21
21
  "devDependencies": {
22
- "@xylabs/ts-scripts-yarn3": "^3.9.1",
23
- "@xylabs/tsconfig": "^3.9.1",
22
+ "@xylabs/ts-scripts-yarn3": "^3.10.0",
23
+ "@xylabs/tsconfig": "^3.10.0",
24
24
  "typescript": "^5.4.5"
25
25
  },
26
26
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -62,6 +62,6 @@
62
62
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
63
63
  },
64
64
  "sideEffects": false,
65
- "version": "2.99.1",
65
+ "version": "2.99.3",
66
66
  "type": "module"
67
67
  }