@xyo-network/tzero-stock-market-plugin 2.95.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/LICENSE +165 -0
- package/README.md +13 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Config.d.cts +6 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Config.d.cts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Config.d.mts +6 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Config.d.mts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Config.d.ts +6 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Config.d.ts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.cts +14 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.cts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.mts +14 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.mts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.ts +14 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.ts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Schema.d.cts +3 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Schema.d.cts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Schema.d.mts +3 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Schema.d.mts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Schema.d.ts +3 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/Schema.d.ts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/index.d.cts +4 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/index.d.cts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/index.d.mts +4 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/index.d.mts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/index.d.ts +4 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/index.d.ts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.cts +2 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.cts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.mts +2 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.mts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.ts +2 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.ts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.cts +3 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.cts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.mts +3 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.mts.map +1 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.ts +3 -0
- package/dist/browser/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.ts.map +1 -0
- package/dist/browser/Diviner/index.d.cts +2 -0
- package/dist/browser/Diviner/index.d.cts.map +1 -0
- package/dist/browser/Diviner/index.d.mts +2 -0
- package/dist/browser/Diviner/index.d.mts.map +1 -0
- package/dist/browser/Diviner/index.d.ts +2 -0
- package/dist/browser/Diviner/index.d.ts.map +1 -0
- package/dist/browser/index.cjs +81 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts +2 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts +2 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +58 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Config.d.cts +6 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Config.d.cts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Config.d.mts +6 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Config.d.mts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Config.d.ts +6 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Config.d.ts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.cts +14 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.cts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.mts +14 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.mts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.ts +14 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.ts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Schema.d.cts +3 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Schema.d.cts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Schema.d.mts +3 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Schema.d.mts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Schema.d.ts +3 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/Schema.d.ts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/index.d.cts +4 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/index.d.cts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/index.d.mts +4 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/index.d.mts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/index.d.ts +4 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/index.d.ts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.cts +2 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.cts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.mts +2 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.mts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.ts +2 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.ts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.cts +3 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.cts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.mts +3 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.mts.map +1 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.ts +3 -0
- package/dist/neutral/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.ts.map +1 -0
- package/dist/neutral/Diviner/index.d.cts +2 -0
- package/dist/neutral/Diviner/index.d.cts.map +1 -0
- package/dist/neutral/Diviner/index.d.mts +2 -0
- package/dist/neutral/Diviner/index.d.mts.map +1 -0
- package/dist/neutral/Diviner/index.d.ts +2 -0
- package/dist/neutral/Diviner/index.d.ts.map +1 -0
- package/dist/neutral/index.cjs +81 -0
- package/dist/neutral/index.cjs.map +1 -0
- package/dist/neutral/index.d.cts +2 -0
- package/dist/neutral/index.d.cts.map +1 -0
- package/dist/neutral/index.d.mts +2 -0
- package/dist/neutral/index.d.mts.map +1 -0
- package/dist/neutral/index.d.ts +2 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.js +58 -0
- package/dist/neutral/index.js.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Config.d.cts +6 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Config.d.cts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Config.d.mts +6 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Config.d.mts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Config.d.ts +6 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Config.d.ts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.cts +14 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.cts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.mts +14 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.mts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.ts +14 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Diviner.d.ts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Schema.d.cts +3 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Schema.d.cts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Schema.d.mts +3 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Schema.d.mts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Schema.d.ts +3 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/Schema.d.ts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/index.d.cts +4 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/index.d.cts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/index.d.mts +4 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/index.d.mts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/index.d.ts +4 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/index.d.ts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.cts +2 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.cts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.mts +2 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.mts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.ts +2 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/index.d.ts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.cts +3 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.cts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.mts +3 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.mts.map +1 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.ts +3 -0
- package/dist/node/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.d.ts.map +1 -0
- package/dist/node/Diviner/index.d.cts +2 -0
- package/dist/node/Diviner/index.d.cts.map +1 -0
- package/dist/node/Diviner/index.d.mts +2 -0
- package/dist/node/Diviner/index.d.mts.map +1 -0
- package/dist/node/Diviner/index.d.ts +2 -0
- package/dist/node/Diviner/index.d.ts.map +1 -0
- package/dist/node/index.cjs +86 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +2 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.mts +2 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +58 -0
- package/dist/node/index.js.map +1 -0
- package/package.json +76 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/Config.ts +7 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts +26 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/Schema.ts +3 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/index.ts +3 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/lib/index.ts +1 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts +37 -0
- package/src/Diviner/ApiCallJsonResultToSnapshot/spec/ApiCallWitnessManifest.json +50 -0
- package/src/Diviner/index.ts +1 -0
- package/src/index.ts +1 -0
- package/typedoc.json +5 -0
- package/xy.config.ts +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tryMapToSnapshot.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAkC,MAAM,gDAAgD,CAAA;AAQzG,eAAO,MAAM,gBAAgB,cAAe,OAAO,KAAG,QAAQ,GAAG,SA0BhE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tryMapToSnapshot.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAkC,MAAM,gDAAgD,CAAA;AAQzG,eAAO,MAAM,gBAAgB,cAAe,OAAO,KAAG,QAAQ,GAAG,SA0BhE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tryMapToSnapshot.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAkC,MAAM,gDAAgD,CAAA;AAQzG,eAAO,MAAM,gBAAgB,cAAe,OAAO,KAAG,QAAQ,GAAG,SA0BhE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
TZeroApiCallJsonResultToSnapshotDiviner: () => TZeroApiCallJsonResultToSnapshotDiviner,
|
|
24
|
+
TZeroApiCallJsonResultToSnapshotDivinerConfigSchema: () => TZeroApiCallJsonResultToSnapshotDivinerConfigSchema
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(src_exports);
|
|
27
|
+
|
|
28
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts
|
|
29
|
+
var import_exists = require("@xylabs/exists");
|
|
30
|
+
var import_diviner_abstract = require("@xyo-network/diviner-abstract");
|
|
31
|
+
|
|
32
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts
|
|
33
|
+
var import_api_call_witness = require("@xyo-network/api-call-witness");
|
|
34
|
+
var import_tzero_stock_market_payload_plugin = require("@xyo-network/tzero-stock-market-payload-plugin");
|
|
35
|
+
var isSnapshotApiCallJsonResult = import_api_call_witness.isApiCallJsonResult;
|
|
36
|
+
var numberOrNull = (value) => typeof value === "number" ? value : null;
|
|
37
|
+
var tryMapToSnapshot = (response) => {
|
|
38
|
+
if (isSnapshotApiCallJsonResult(response)) {
|
|
39
|
+
const data = response.data;
|
|
40
|
+
const { symbol, timestamp, volume } = data;
|
|
41
|
+
if (!symbol || !timestamp || !volume)
|
|
42
|
+
return void 0;
|
|
43
|
+
const fields = {
|
|
44
|
+
askPrice: numberOrNull(data.askPrice),
|
|
45
|
+
askPriceRate: numberOrNull(data.askPriceRate),
|
|
46
|
+
askQtyBookTotal: numberOrNull(data.askQtyBookTotal),
|
|
47
|
+
askQuantity: numberOrNull(data.askQuantity),
|
|
48
|
+
bidPrice: numberOrNull(data.bidPrice),
|
|
49
|
+
bidPriceRate: numberOrNull(data.bidPriceRate),
|
|
50
|
+
bidQtyBookTotal: numberOrNull(data.bidQtyBookTotal),
|
|
51
|
+
bidQuantity: numberOrNull(data.bidQuantity),
|
|
52
|
+
high: numberOrNull(data.high),
|
|
53
|
+
lastPrice: numberOrNull(data.lastPrice),
|
|
54
|
+
lastQuantity: numberOrNull(data.lastQuantity),
|
|
55
|
+
low: numberOrNull(data.low),
|
|
56
|
+
open: numberOrNull(data.open),
|
|
57
|
+
prevClosePx: numberOrNull(data.prevClosePx),
|
|
58
|
+
symbol,
|
|
59
|
+
timestamp,
|
|
60
|
+
volume
|
|
61
|
+
};
|
|
62
|
+
return { ...fields, schema: import_tzero_stock_market_payload_plugin.SnapshotSchema };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/Schema.ts
|
|
67
|
+
var TZeroApiCallJsonResultToSnapshotDivinerConfigSchema = "network.xyo.stock.market.tzero.api.snapshot.diviner.config";
|
|
68
|
+
|
|
69
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts
|
|
70
|
+
var TZeroApiCallJsonResultToSnapshotDiviner = class extends import_diviner_abstract.AbstractDiviner {
|
|
71
|
+
static configSchemas = [...super.configSchemas, TZeroApiCallJsonResultToSnapshotDivinerConfigSchema];
|
|
72
|
+
static defaultConfigSchema = TZeroApiCallJsonResultToSnapshotDivinerConfigSchema;
|
|
73
|
+
divineHandler(payloads) {
|
|
74
|
+
if (!payloads)
|
|
75
|
+
return [];
|
|
76
|
+
if (payloads.length === 0)
|
|
77
|
+
return [];
|
|
78
|
+
return payloads.map(tryMapToSnapshot).filter(import_exists.exists);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
82
|
+
0 && (module.exports = {
|
|
83
|
+
TZeroApiCallJsonResultToSnapshotDiviner,
|
|
84
|
+
TZeroApiCallJsonResultToSnapshotDivinerConfigSchema
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts","../../src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts","../../src/Diviner/ApiCallJsonResultToSnapshot/Schema.ts"],"sourcesContent":["export * from './Diviner'\n","import { exists } from '@xylabs/exists'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema, WithSources } from '@xyo-network/payload-model'\nimport { Snapshot } from '@xyo-network/tzero-stock-market-payload-plugin'\n\nimport { TZeroStockMarketDivinerConfig } from './Config'\nimport { tryMapToSnapshot } from './lib'\nimport { TZeroApiCallJsonResultToSnapshotDivinerConfigSchema } from './Schema'\n\nexport type TZeroApiCallJsonResultToSnapshotDivinerParams = DivinerParams<AnyConfigSchema<TZeroStockMarketDivinerConfig>>\n\nexport class TZeroApiCallJsonResultToSnapshotDiviner<\n TParams extends TZeroApiCallJsonResultToSnapshotDivinerParams = TZeroApiCallJsonResultToSnapshotDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, TZeroApiCallJsonResultToSnapshotDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = TZeroApiCallJsonResultToSnapshotDivinerConfigSchema\n\n protected override divineHandler(payloads?: Payload[]): Promisable<WithSources<Snapshot>[]> {\n if (!payloads) return []\n if (payloads.length === 0) return []\n return payloads.map(tryMapToSnapshot).filter(exists)\n }\n}\n","import { JsonObject } from '@xylabs/object'\nimport { isApiCallJsonResult } from '@xyo-network/api-call-witness'\nimport { Snapshot, SnapshotFields, SnapshotSchema } from '@xyo-network/tzero-stock-market-payload-plugin'\n\ninterface SnapshotJson extends JsonObject, SnapshotFields {}\n\nconst isSnapshotApiCallJsonResult = isApiCallJsonResult<SnapshotJson>\n\nconst numberOrNull = (value: unknown): number | null => (typeof value === 'number' ? value : null)\n\nexport const tryMapToSnapshot = (response?: unknown): Snapshot | undefined => {\n if (isSnapshotApiCallJsonResult(response)) {\n const data: Partial<SnapshotFields> = response.data\n const { symbol, timestamp, volume } = data\n if (!symbol || !timestamp || !volume) return undefined\n const fields = {\n askPrice: numberOrNull(data.askPrice),\n askPriceRate: numberOrNull(data.askPriceRate),\n askQtyBookTotal: numberOrNull(data.askQtyBookTotal),\n askQuantity: numberOrNull(data.askQuantity),\n bidPrice: numberOrNull(data.bidPrice),\n bidPriceRate: numberOrNull(data.bidPriceRate),\n bidQtyBookTotal: numberOrNull(data.bidQtyBookTotal),\n bidQuantity: numberOrNull(data.bidQuantity),\n high: numberOrNull(data.high),\n lastPrice: numberOrNull(data.lastPrice),\n lastQuantity: numberOrNull(data.lastQuantity),\n low: numberOrNull(data.low),\n open: numberOrNull(data.open),\n prevClosePx: numberOrNull(data.prevClosePx),\n symbol,\n timestamp,\n volume,\n }\n return { ...fields, schema: SnapshotSchema }\n }\n}\n","export type TZeroApiCallJsonResultToSnapshotDivinerConfigSchema = 'network.xyo.stock.market.tzero.api.snapshot.diviner.config'\nexport const TZeroApiCallJsonResultToSnapshotDivinerConfigSchema: TZeroApiCallJsonResultToSnapshotDivinerConfigSchema =\n 'network.xyo.stock.market.tzero.api.snapshot.diviner.config'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAuB;AAEvB,8BAAgC;;;ACDhC,8BAAoC;AACpC,+CAAyD;AAIzD,IAAM,8BAA8B;AAEpC,IAAM,eAAe,CAAC,UAAmC,OAAO,UAAU,WAAW,QAAQ;AAEtF,IAAM,mBAAmB,CAAC,aAA6C;AAC5E,MAAI,4BAA4B,QAAQ,GAAG;AACzC,UAAM,OAAgC,SAAS;AAC/C,UAAM,EAAE,QAAQ,WAAW,OAAO,IAAI;AACtC,QAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAAQ,aAAO;AAC7C,UAAM,SAAS;AAAA,MACb,UAAU,aAAa,KAAK,QAAQ;AAAA,MACpC,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,iBAAiB,aAAa,KAAK,eAAe;AAAA,MAClD,aAAa,aAAa,KAAK,WAAW;AAAA,MAC1C,UAAU,aAAa,KAAK,QAAQ;AAAA,MACpC,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,iBAAiB,aAAa,KAAK,eAAe;AAAA,MAClD,aAAa,aAAa,KAAK,WAAW;AAAA,MAC1C,MAAM,aAAa,KAAK,IAAI;AAAA,MAC5B,WAAW,aAAa,KAAK,SAAS;AAAA,MACtC,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,KAAK,aAAa,KAAK,GAAG;AAAA,MAC1B,MAAM,aAAa,KAAK,IAAI;AAAA,MAC5B,aAAa,aAAa,KAAK,WAAW;AAAA,MAC1C;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,WAAO,EAAE,GAAG,QAAQ,QAAQ,wDAAe;AAAA,EAC7C;AACF;;;ACnCO,IAAM,sDACX;;;AFYK,IAAM,0CAAN,cAEG,wCAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,mDAAmD;AAAA,EAC/H,OAAyB,sBAA8B;AAAA,EAEpC,cAAc,UAA2D;AAC1F,QAAI,CAAC;AAAU,aAAO,CAAC;AACvB,QAAI,SAAS,WAAW;AAAG,aAAO,CAAC;AACnC,WAAO,SAAS,IAAI,gBAAgB,EAAE,OAAO,oBAAM;AAAA,EACrD;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts
|
|
2
|
+
import { exists } from "@xylabs/exists";
|
|
3
|
+
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
4
|
+
|
|
5
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts
|
|
6
|
+
import { isApiCallJsonResult } from "@xyo-network/api-call-witness";
|
|
7
|
+
import { SnapshotSchema } from "@xyo-network/tzero-stock-market-payload-plugin";
|
|
8
|
+
var isSnapshotApiCallJsonResult = isApiCallJsonResult;
|
|
9
|
+
var numberOrNull = (value) => typeof value === "number" ? value : null;
|
|
10
|
+
var tryMapToSnapshot = (response) => {
|
|
11
|
+
if (isSnapshotApiCallJsonResult(response)) {
|
|
12
|
+
const data = response.data;
|
|
13
|
+
const { symbol, timestamp, volume } = data;
|
|
14
|
+
if (!symbol || !timestamp || !volume)
|
|
15
|
+
return void 0;
|
|
16
|
+
const fields = {
|
|
17
|
+
askPrice: numberOrNull(data.askPrice),
|
|
18
|
+
askPriceRate: numberOrNull(data.askPriceRate),
|
|
19
|
+
askQtyBookTotal: numberOrNull(data.askQtyBookTotal),
|
|
20
|
+
askQuantity: numberOrNull(data.askQuantity),
|
|
21
|
+
bidPrice: numberOrNull(data.bidPrice),
|
|
22
|
+
bidPriceRate: numberOrNull(data.bidPriceRate),
|
|
23
|
+
bidQtyBookTotal: numberOrNull(data.bidQtyBookTotal),
|
|
24
|
+
bidQuantity: numberOrNull(data.bidQuantity),
|
|
25
|
+
high: numberOrNull(data.high),
|
|
26
|
+
lastPrice: numberOrNull(data.lastPrice),
|
|
27
|
+
lastQuantity: numberOrNull(data.lastQuantity),
|
|
28
|
+
low: numberOrNull(data.low),
|
|
29
|
+
open: numberOrNull(data.open),
|
|
30
|
+
prevClosePx: numberOrNull(data.prevClosePx),
|
|
31
|
+
symbol,
|
|
32
|
+
timestamp,
|
|
33
|
+
volume
|
|
34
|
+
};
|
|
35
|
+
return { ...fields, schema: SnapshotSchema };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/Schema.ts
|
|
40
|
+
var TZeroApiCallJsonResultToSnapshotDivinerConfigSchema = "network.xyo.stock.market.tzero.api.snapshot.diviner.config";
|
|
41
|
+
|
|
42
|
+
// src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts
|
|
43
|
+
var TZeroApiCallJsonResultToSnapshotDiviner = class extends AbstractDiviner {
|
|
44
|
+
static configSchemas = [...super.configSchemas, TZeroApiCallJsonResultToSnapshotDivinerConfigSchema];
|
|
45
|
+
static defaultConfigSchema = TZeroApiCallJsonResultToSnapshotDivinerConfigSchema;
|
|
46
|
+
divineHandler(payloads) {
|
|
47
|
+
if (!payloads)
|
|
48
|
+
return [];
|
|
49
|
+
if (payloads.length === 0)
|
|
50
|
+
return [];
|
|
51
|
+
return payloads.map(tryMapToSnapshot).filter(exists);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
export {
|
|
55
|
+
TZeroApiCallJsonResultToSnapshotDiviner,
|
|
56
|
+
TZeroApiCallJsonResultToSnapshotDivinerConfigSchema
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Diviner/ApiCallJsonResultToSnapshot/Diviner.ts","../../src/Diviner/ApiCallJsonResultToSnapshot/lib/tryMapToSnapshot.ts","../../src/Diviner/ApiCallJsonResultToSnapshot/Schema.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema, WithSources } from '@xyo-network/payload-model'\nimport { Snapshot } from '@xyo-network/tzero-stock-market-payload-plugin'\n\nimport { TZeroStockMarketDivinerConfig } from './Config'\nimport { tryMapToSnapshot } from './lib'\nimport { TZeroApiCallJsonResultToSnapshotDivinerConfigSchema } from './Schema'\n\nexport type TZeroApiCallJsonResultToSnapshotDivinerParams = DivinerParams<AnyConfigSchema<TZeroStockMarketDivinerConfig>>\n\nexport class TZeroApiCallJsonResultToSnapshotDiviner<\n TParams extends TZeroApiCallJsonResultToSnapshotDivinerParams = TZeroApiCallJsonResultToSnapshotDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, TZeroApiCallJsonResultToSnapshotDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = TZeroApiCallJsonResultToSnapshotDivinerConfigSchema\n\n protected override divineHandler(payloads?: Payload[]): Promisable<WithSources<Snapshot>[]> {\n if (!payloads) return []\n if (payloads.length === 0) return []\n return payloads.map(tryMapToSnapshot).filter(exists)\n }\n}\n","import { JsonObject } from '@xylabs/object'\nimport { isApiCallJsonResult } from '@xyo-network/api-call-witness'\nimport { Snapshot, SnapshotFields, SnapshotSchema } from '@xyo-network/tzero-stock-market-payload-plugin'\n\ninterface SnapshotJson extends JsonObject, SnapshotFields {}\n\nconst isSnapshotApiCallJsonResult = isApiCallJsonResult<SnapshotJson>\n\nconst numberOrNull = (value: unknown): number | null => (typeof value === 'number' ? value : null)\n\nexport const tryMapToSnapshot = (response?: unknown): Snapshot | undefined => {\n if (isSnapshotApiCallJsonResult(response)) {\n const data: Partial<SnapshotFields> = response.data\n const { symbol, timestamp, volume } = data\n if (!symbol || !timestamp || !volume) return undefined\n const fields = {\n askPrice: numberOrNull(data.askPrice),\n askPriceRate: numberOrNull(data.askPriceRate),\n askQtyBookTotal: numberOrNull(data.askQtyBookTotal),\n askQuantity: numberOrNull(data.askQuantity),\n bidPrice: numberOrNull(data.bidPrice),\n bidPriceRate: numberOrNull(data.bidPriceRate),\n bidQtyBookTotal: numberOrNull(data.bidQtyBookTotal),\n bidQuantity: numberOrNull(data.bidQuantity),\n high: numberOrNull(data.high),\n lastPrice: numberOrNull(data.lastPrice),\n lastQuantity: numberOrNull(data.lastQuantity),\n low: numberOrNull(data.low),\n open: numberOrNull(data.open),\n prevClosePx: numberOrNull(data.prevClosePx),\n symbol,\n timestamp,\n volume,\n }\n return { ...fields, schema: SnapshotSchema }\n }\n}\n","export type TZeroApiCallJsonResultToSnapshotDivinerConfigSchema = 'network.xyo.stock.market.tzero.api.snapshot.diviner.config'\nexport const TZeroApiCallJsonResultToSnapshotDivinerConfigSchema: TZeroApiCallJsonResultToSnapshotDivinerConfigSchema =\n 'network.xyo.stock.market.tzero.api.snapshot.diviner.config'\n"],"mappings":";AAAA,SAAS,cAAc;AAEvB,SAAS,uBAAuB;;;ACDhC,SAAS,2BAA2B;AACpC,SAAmC,sBAAsB;AAIzD,IAAM,8BAA8B;AAEpC,IAAM,eAAe,CAAC,UAAmC,OAAO,UAAU,WAAW,QAAQ;AAEtF,IAAM,mBAAmB,CAAC,aAA6C;AAC5E,MAAI,4BAA4B,QAAQ,GAAG;AACzC,UAAM,OAAgC,SAAS;AAC/C,UAAM,EAAE,QAAQ,WAAW,OAAO,IAAI;AACtC,QAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAAQ,aAAO;AAC7C,UAAM,SAAS;AAAA,MACb,UAAU,aAAa,KAAK,QAAQ;AAAA,MACpC,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,iBAAiB,aAAa,KAAK,eAAe;AAAA,MAClD,aAAa,aAAa,KAAK,WAAW;AAAA,MAC1C,UAAU,aAAa,KAAK,QAAQ;AAAA,MACpC,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,iBAAiB,aAAa,KAAK,eAAe;AAAA,MAClD,aAAa,aAAa,KAAK,WAAW;AAAA,MAC1C,MAAM,aAAa,KAAK,IAAI;AAAA,MAC5B,WAAW,aAAa,KAAK,SAAS;AAAA,MACtC,cAAc,aAAa,KAAK,YAAY;AAAA,MAC5C,KAAK,aAAa,KAAK,GAAG;AAAA,MAC1B,MAAM,aAAa,KAAK,IAAI;AAAA,MAC5B,aAAa,aAAa,KAAK,WAAW;AAAA,MAC1C;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,WAAO,EAAE,GAAG,QAAQ,QAAQ,eAAe;AAAA,EAC7C;AACF;;;ACnCO,IAAM,sDACX;;;AFYK,IAAM,0CAAN,cAEG,gBAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,mDAAmD;AAAA,EAC/H,OAAyB,sBAA8B;AAAA,EAEpC,cAAc,UAA2D;AAC1F,QAAI,CAAC;AAAU,aAAO,CAAC;AACvB,QAAI,SAAS,WAAW;AAAG,aAAO,CAAC;AACnC,WAAO,SAAS,IAAI,gBAAgB,EAAE,OAAO,MAAM;AAAA,EACrD;AACF;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/tzero-stock-market-plugin",
|
|
3
|
+
"author": {
|
|
4
|
+
"email": "support@xyo.network",
|
|
5
|
+
"name": "XYO Development Team",
|
|
6
|
+
"url": "https://xyo.network"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@xyo.network",
|
|
10
|
+
"url": "https://github.com/XYOracleNetwork/plugins/issues"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@xylabs/exists": "^3.5.1",
|
|
14
|
+
"@xylabs/object": "^3.5.1",
|
|
15
|
+
"@xylabs/promise": "^3.5.1",
|
|
16
|
+
"@xyo-network/api-call-witness": "^2.95.4",
|
|
17
|
+
"@xyo-network/diviner-abstract": "^2.104.0",
|
|
18
|
+
"@xyo-network/diviner-model": "^2.104.0",
|
|
19
|
+
"@xyo-network/module-model": "^2.103.1",
|
|
20
|
+
"@xyo-network/payload-model": "^2.103.1",
|
|
21
|
+
"@xyo-network/tzero-stock-market-payload-plugin": "^2.95.4"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@xylabs/assert": "^3.5.1",
|
|
25
|
+
"@xylabs/jest-helpers": "^3.5.1",
|
|
26
|
+
"@xylabs/ts-scripts-yarn3": "^3.10.4",
|
|
27
|
+
"@xylabs/tsconfig": "^3.10.4",
|
|
28
|
+
"@xyo-network/account": "^2.103.1",
|
|
29
|
+
"@xyo-network/manifest": "^2.104.0",
|
|
30
|
+
"@xyo-network/module-factory-locator": "^2.104.0",
|
|
31
|
+
"@xyo-network/sentinel-model": "^2.104.0",
|
|
32
|
+
"@xyo-network/witness-model": "^2.103.1",
|
|
33
|
+
"typescript": "^5.4.5"
|
|
34
|
+
},
|
|
35
|
+
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
36
|
+
"types": "dist/node/index.d.ts",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"browser": {
|
|
40
|
+
"require": {
|
|
41
|
+
"types": "./dist/browser/index.d.cts",
|
|
42
|
+
"default": "./dist/browser/index.cjs"
|
|
43
|
+
},
|
|
44
|
+
"import": {
|
|
45
|
+
"types": "./dist/browser/index.d.mts",
|
|
46
|
+
"default": "./dist/browser/index.js"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"node": {
|
|
50
|
+
"require": {
|
|
51
|
+
"types": "./dist/node/index.d.cts",
|
|
52
|
+
"default": "./dist/node/index.cjs"
|
|
53
|
+
},
|
|
54
|
+
"import": {
|
|
55
|
+
"types": "./dist/node/index.d.mts",
|
|
56
|
+
"default": "./dist/node/index.js"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"./package.json": "./package.json"
|
|
61
|
+
},
|
|
62
|
+
"main": "dist/node/index.cjs",
|
|
63
|
+
"module": "dist/node/index.js",
|
|
64
|
+
"homepage": "https://xyo.network",
|
|
65
|
+
"license": "LGPL-3.0-only",
|
|
66
|
+
"publishConfig": {
|
|
67
|
+
"access": "public"
|
|
68
|
+
},
|
|
69
|
+
"repository": {
|
|
70
|
+
"type": "git",
|
|
71
|
+
"url": "https://github.com/XYOracleNetwork/plugins.git"
|
|
72
|
+
},
|
|
73
|
+
"sideEffects": false,
|
|
74
|
+
"version": "2.95.4",
|
|
75
|
+
"type": "module"
|
|
76
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DivinerConfig } from '@xyo-network/diviner-model'
|
|
2
|
+
|
|
3
|
+
import { TZeroApiCallJsonResultToSnapshotDivinerConfigSchema } from './Schema'
|
|
4
|
+
|
|
5
|
+
export type TZeroStockMarketDivinerConfig = DivinerConfig<{
|
|
6
|
+
schema: TZeroApiCallJsonResultToSnapshotDivinerConfigSchema
|
|
7
|
+
}>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists'
|
|
2
|
+
import { Promisable } from '@xylabs/promise'
|
|
3
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract'
|
|
4
|
+
import { 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
|
+
import { Snapshot } from '@xyo-network/tzero-stock-market-payload-plugin'
|
|
8
|
+
|
|
9
|
+
import { TZeroStockMarketDivinerConfig } from './Config'
|
|
10
|
+
import { tryMapToSnapshot } from './lib'
|
|
11
|
+
import { TZeroApiCallJsonResultToSnapshotDivinerConfigSchema } from './Schema'
|
|
12
|
+
|
|
13
|
+
export type TZeroApiCallJsonResultToSnapshotDivinerParams = DivinerParams<AnyConfigSchema<TZeroStockMarketDivinerConfig>>
|
|
14
|
+
|
|
15
|
+
export class TZeroApiCallJsonResultToSnapshotDiviner<
|
|
16
|
+
TParams extends TZeroApiCallJsonResultToSnapshotDivinerParams = TZeroApiCallJsonResultToSnapshotDivinerParams,
|
|
17
|
+
> extends AbstractDiviner<TParams> {
|
|
18
|
+
static override readonly configSchemas: Schema[] = [...super.configSchemas, TZeroApiCallJsonResultToSnapshotDivinerConfigSchema]
|
|
19
|
+
static override readonly defaultConfigSchema: Schema = TZeroApiCallJsonResultToSnapshotDivinerConfigSchema
|
|
20
|
+
|
|
21
|
+
protected override divineHandler(payloads?: Payload[]): Promisable<WithSources<Snapshot>[]> {
|
|
22
|
+
if (!payloads) return []
|
|
23
|
+
if (payloads.length === 0) return []
|
|
24
|
+
return payloads.map(tryMapToSnapshot).filter(exists)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type TZeroApiCallJsonResultToSnapshotDivinerConfigSchema = 'network.xyo.stock.market.tzero.api.snapshot.diviner.config'
|
|
2
|
+
export const TZeroApiCallJsonResultToSnapshotDivinerConfigSchema: TZeroApiCallJsonResultToSnapshotDivinerConfigSchema =
|
|
3
|
+
'network.xyo.stock.market.tzero.api.snapshot.diviner.config'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './tryMapToSnapshot'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { JsonObject } from '@xylabs/object'
|
|
2
|
+
import { isApiCallJsonResult } from '@xyo-network/api-call-witness'
|
|
3
|
+
import { Snapshot, SnapshotFields, SnapshotSchema } from '@xyo-network/tzero-stock-market-payload-plugin'
|
|
4
|
+
|
|
5
|
+
interface SnapshotJson extends JsonObject, SnapshotFields {}
|
|
6
|
+
|
|
7
|
+
const isSnapshotApiCallJsonResult = isApiCallJsonResult<SnapshotJson>
|
|
8
|
+
|
|
9
|
+
const numberOrNull = (value: unknown): number | null => (typeof value === 'number' ? value : null)
|
|
10
|
+
|
|
11
|
+
export const tryMapToSnapshot = (response?: unknown): Snapshot | undefined => {
|
|
12
|
+
if (isSnapshotApiCallJsonResult(response)) {
|
|
13
|
+
const data: Partial<SnapshotFields> = response.data
|
|
14
|
+
const { symbol, timestamp, volume } = data
|
|
15
|
+
if (!symbol || !timestamp || !volume) return undefined
|
|
16
|
+
const fields = {
|
|
17
|
+
askPrice: numberOrNull(data.askPrice),
|
|
18
|
+
askPriceRate: numberOrNull(data.askPriceRate),
|
|
19
|
+
askQtyBookTotal: numberOrNull(data.askQtyBookTotal),
|
|
20
|
+
askQuantity: numberOrNull(data.askQuantity),
|
|
21
|
+
bidPrice: numberOrNull(data.bidPrice),
|
|
22
|
+
bidPriceRate: numberOrNull(data.bidPriceRate),
|
|
23
|
+
bidQtyBookTotal: numberOrNull(data.bidQtyBookTotal),
|
|
24
|
+
bidQuantity: numberOrNull(data.bidQuantity),
|
|
25
|
+
high: numberOrNull(data.high),
|
|
26
|
+
lastPrice: numberOrNull(data.lastPrice),
|
|
27
|
+
lastQuantity: numberOrNull(data.lastQuantity),
|
|
28
|
+
low: numberOrNull(data.low),
|
|
29
|
+
open: numberOrNull(data.open),
|
|
30
|
+
prevClosePx: numberOrNull(data.prevClosePx),
|
|
31
|
+
symbol,
|
|
32
|
+
timestamp,
|
|
33
|
+
volume,
|
|
34
|
+
}
|
|
35
|
+
return { ...fields, schema: SnapshotSchema }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/a5a229a767e3998e13cce8160fd1c2b027317424/packages/manifest/src/schema.json",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"config": {
|
|
6
|
+
"accountPath": "0",
|
|
7
|
+
"name": "ApiCall",
|
|
8
|
+
"schema": "network.xyo.node.config"
|
|
9
|
+
},
|
|
10
|
+
"modules": {
|
|
11
|
+
"public": [
|
|
12
|
+
{
|
|
13
|
+
"config": {
|
|
14
|
+
"accountPath": "0/0",
|
|
15
|
+
"name": "ApiCallWitness",
|
|
16
|
+
"schema": "network.xyo.api.call.witness.config",
|
|
17
|
+
"uriTemplate": "https://gateway-web-markets.tzero.com/mdt/public-snapshots/${symbol}"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"config": {
|
|
22
|
+
"accountPath": "0/1",
|
|
23
|
+
"name": "TZeroApiCallJsonResultToSnapshotDiviner",
|
|
24
|
+
"schema": "network.xyo.stock.market.tzero.api.snapshot.diviner.config"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"config": {
|
|
29
|
+
"accountPath": "0/2",
|
|
30
|
+
"name": "ApiCallSentinel",
|
|
31
|
+
"schema": "network.xyo.sentinel.config",
|
|
32
|
+
"synchronous": "true",
|
|
33
|
+
"tasks": [
|
|
34
|
+
{
|
|
35
|
+
"input": true,
|
|
36
|
+
"module": "ApiCallWitness"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"input": ["ApiCallWitness"],
|
|
40
|
+
"module": "TZeroApiCallJsonResultToSnapshotDiviner"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"schema": "network.xyo.manifest"
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ApiCallJsonResultToSnapshot'
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Diviner'
|
package/typedoc.json
ADDED
package/xy.config.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
|
|
2
|
+
const config: XyTsupConfig = {
|
|
3
|
+
compile: {
|
|
4
|
+
browser: {
|
|
5
|
+
src: true,
|
|
6
|
+
},
|
|
7
|
+
node: {
|
|
8
|
+
src: true,
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line import/no-default-export
|
|
14
|
+
export default config
|