@baron1996/kline-scene-schema 0.6.0 → 0.9.7
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/generated/chart-scene.d.ts +16 -3
- package/dist/generated/chart-scene.d.ts.map +1 -1
- package/dist/generated/drawable-workspace.d.ts +38 -25
- package/dist/generated/drawable-workspace.d.ts.map +1 -1
- package/dist/generated/schemas.d.ts +57 -1
- package/dist/generated/schemas.d.ts.map +1 -1
- package/dist/generated/schemas.js +77 -1
- package/dist/generated/validate-chart-scene.d.ts.map +1 -1
- package/dist/generated/validate-chart-scene.js +760 -418
- package/dist/generated/validate-drawable-workspace.d.ts.map +1 -1
- package/dist/generated/validate-drawable-workspace.js +1010 -668
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/semantic-validator.d.ts.map +1 -1
- package/dist/semantic-validator.js +19 -0
- package/dist/version.d.ts +3 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +6 -1
- package/package.json +1 -1
- package/schema/chart-scene.schema.json +38 -1
- package/schema/market-data-gap.schema.json +39 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export declare const SCENE_PACKAGE_VERSION: "0.
|
|
1
|
+
/** 场景协议包版本;支持 Scene v1,并以 Scene v2 作为当前版本。 */
|
|
2
|
+
export declare const SCENE_PACKAGE_VERSION: "0.9.7";
|
|
3
3
|
export * from './canonical-json.js';
|
|
4
4
|
export * from './canonicalize.js';
|
|
5
5
|
export * from './decimal-normalization.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,EAAG,OAAgB,CAAC;AAEtD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
export const SCENE_PACKAGE_VERSION = '0.
|
|
1
|
+
/** 场景协议包版本;支持 Scene v1,并以 Scene v2 作为当前版本。 */
|
|
2
|
+
export const SCENE_PACKAGE_VERSION = '0.9.7';
|
|
3
3
|
export * from './canonical-json.js';
|
|
4
4
|
export * from './canonicalize.js';
|
|
5
5
|
export * from './decimal-normalization.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-validator.d.ts","sourceRoot":"","sources":["../src/semantic-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EAIV,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"semantic-validator.d.ts","sourceRoot":"","sources":["../src/semantic-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EAIV,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAmlB/E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAM9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAM3D"}
|
|
@@ -87,6 +87,25 @@ function validateMarketData(scene, issues) {
|
|
|
87
87
|
if (!scene.data.some((bar) => bar.timestamp === scene.viewport.anchorTimestamp)) {
|
|
88
88
|
issues.push(issue('INVALID_REFERENCE', '/viewport/anchorTimestamp', 'Viewport anchorTimestamp must reference an embedded market-data bar.'));
|
|
89
89
|
}
|
|
90
|
+
const barTimestamps = new Set(scene.data.map((bar) => bar.timestamp));
|
|
91
|
+
let previousGapTimestamp = -Infinity;
|
|
92
|
+
for (let index = 0; index < (scene.gaps?.length ?? 0); index++) {
|
|
93
|
+
const gap = scene.gaps?.[index];
|
|
94
|
+
if (gap === undefined) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const path = `/gaps/${index}`;
|
|
98
|
+
if (gap.timestamp <= previousGapTimestamp) {
|
|
99
|
+
issues.push(issue('INVALID_MARKET_DATA', `${path}/timestamp`, 'Market-data Gap timestamps must be strictly increasing.'));
|
|
100
|
+
}
|
|
101
|
+
previousGapTimestamp = gap.timestamp;
|
|
102
|
+
if (gap.barEnd <= gap.timestamp) {
|
|
103
|
+
issues.push(issue('INVALID_MARKET_DATA', `${path}/barEnd`, 'Market-data Gap barEnd must be greater than timestamp.'));
|
|
104
|
+
}
|
|
105
|
+
if (barTimestamps.has(gap.timestamp)) {
|
|
106
|
+
issues.push(issue('INVALID_MARKET_DATA', `${path}/timestamp`, 'A timestamp cannot contain both a real Bar and a Gap.'));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
90
109
|
}
|
|
91
110
|
function validateIndicator(indicator, pane, index, issues) {
|
|
92
111
|
const path = `/panes/${pane.order}/indicators/${index}`;
|
package/dist/version.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const SCENE_SCHEMA_NAME: "@baron1996/kline-scene";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const LEGACY_SCENE_SCHEMA_VERSION: 1;
|
|
3
|
+
export declare const SCENE_SCHEMA_VERSION: 2;
|
|
4
|
+
export declare const SUPPORTED_SCENE_SCHEMA_VERSIONS: readonly [1, 2];
|
|
3
5
|
export declare const KLINECHARTS_ENGINE_VERSION: "10.0.0";
|
|
4
6
|
export declare const M1_SCENE_RUNTIME_VERSION: "0.1.0";
|
|
5
7
|
export declare const SCENE_RUNTIME_VERSION: "0.2.0";
|
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,wBAAiC,CAAC;AACnE,eAAO,MAAM,oBAAoB,EAAG,CAAU,CAAC;AAC/C,eAAO,MAAM,0BAA0B,EAAG,QAAiB,CAAC;AAC5D,eAAO,MAAM,wBAAwB,EAAG,OAAgB,CAAC;AACzD,eAAO,MAAM,qBAAqB,EAAG,OAAgB,CAAC;AACtD,eAAO,MAAM,gCAAgC,6BAGnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,wBAAiC,CAAC;AACnE,eAAO,MAAM,2BAA2B,EAAG,CAAU,CAAC;AACtD,eAAO,MAAM,oBAAoB,EAAG,CAAU,CAAC;AAC/C,eAAO,MAAM,+BAA+B,iBAGlC,CAAC;AACX,eAAO,MAAM,0BAA0B,EAAG,QAAiB,CAAC;AAC5D,eAAO,MAAM,wBAAwB,EAAG,OAAgB,CAAC;AACzD,eAAO,MAAM,qBAAqB,EAAG,OAAgB,CAAC;AACtD,eAAO,MAAM,gCAAgC,6BAGnC,CAAC"}
|
package/dist/version.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export const SCENE_SCHEMA_NAME = '@baron1996/kline-scene';
|
|
2
|
-
export const
|
|
2
|
+
export const LEGACY_SCENE_SCHEMA_VERSION = 1;
|
|
3
|
+
export const SCENE_SCHEMA_VERSION = 2;
|
|
4
|
+
export const SUPPORTED_SCENE_SCHEMA_VERSIONS = [
|
|
5
|
+
LEGACY_SCENE_SCHEMA_VERSION,
|
|
6
|
+
SCENE_SCHEMA_VERSION,
|
|
7
|
+
];
|
|
3
8
|
export const KLINECHARTS_ENGINE_VERSION = '10.0.0';
|
|
4
9
|
export const M1_SCENE_RUNTIME_VERSION = '0.1.0';
|
|
5
10
|
export const SCENE_RUNTIME_VERSION = '0.2.0';
|
package/package.json
CHANGED
|
@@ -23,7 +23,10 @@
|
|
|
23
23
|
"const": "@baron1996/kline-scene"
|
|
24
24
|
},
|
|
25
25
|
"version": {
|
|
26
|
-
"
|
|
26
|
+
"enum": [
|
|
27
|
+
1,
|
|
28
|
+
2
|
|
29
|
+
]
|
|
27
30
|
},
|
|
28
31
|
"runtime": {
|
|
29
32
|
"$ref": "https://baron.dev/kline-scene/runtime.schema.json"
|
|
@@ -42,6 +45,13 @@
|
|
|
42
45
|
"$ref": "https://baron.dev/kline-scene/market-data.schema.json"
|
|
43
46
|
}
|
|
44
47
|
},
|
|
48
|
+
"gaps": {
|
|
49
|
+
"type": "array",
|
|
50
|
+
"maxItems": 1000000,
|
|
51
|
+
"items": {
|
|
52
|
+
"$ref": "https://baron.dev/kline-scene/market-data-gap.schema.json"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
45
55
|
"chart": {
|
|
46
56
|
"$ref": "https://baron.dev/kline-scene/chart-config.schema.json"
|
|
47
57
|
},
|
|
@@ -70,6 +80,33 @@
|
|
|
70
80
|
"$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/metadata"
|
|
71
81
|
}
|
|
72
82
|
},
|
|
83
|
+
"allOf": [
|
|
84
|
+
{
|
|
85
|
+
"if": {
|
|
86
|
+
"properties": {
|
|
87
|
+
"version": {
|
|
88
|
+
"const": 1
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"required": [
|
|
92
|
+
"version"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"then": {
|
|
96
|
+
"properties": {
|
|
97
|
+
"gaps": false
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"else": {
|
|
101
|
+
"properties": {
|
|
102
|
+
"gaps": true
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"gaps"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
],
|
|
73
110
|
"$defs": {
|
|
74
111
|
"symbol": {
|
|
75
112
|
"type": "object",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://baron.dev/kline-scene/market-data-gap.schema.json",
|
|
4
|
+
"title": "MarketDataGap",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"timestamp",
|
|
9
|
+
"barEnd",
|
|
10
|
+
"classification",
|
|
11
|
+
"reasonCode",
|
|
12
|
+
"retryable"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"timestamp": {
|
|
16
|
+
"$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/safeInteger"
|
|
17
|
+
},
|
|
18
|
+
"barEnd": {
|
|
19
|
+
"$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/safeInteger"
|
|
20
|
+
},
|
|
21
|
+
"classification": {
|
|
22
|
+
"enum": [
|
|
23
|
+
"INSTRUMENT_NOT_TRADABLE",
|
|
24
|
+
"SOURCE_ERROR",
|
|
25
|
+
"NO_TRADE",
|
|
26
|
+
"UNKNOWN_MISSING"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"reasonCode": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"maxLength": 128,
|
|
33
|
+
"pattern": "^[A-Z][A-Z0-9_]*$"
|
|
34
|
+
},
|
|
35
|
+
"retryable": {
|
|
36
|
+
"type": "boolean"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|