@baron1996/kline-scene-schema 0.1.0

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.
Files changed (48) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +22 -0
  3. package/README.md +18 -0
  4. package/dist/canonical-json.d.ts +3 -0
  5. package/dist/canonical-json.d.ts.map +1 -0
  6. package/dist/canonical-json.js +15 -0
  7. package/dist/canonicalize.d.ts +3 -0
  8. package/dist/canonicalize.d.ts.map +1 -0
  9. package/dist/canonicalize.js +19 -0
  10. package/dist/errors.d.ts +13 -0
  11. package/dist/errors.d.ts.map +1 -0
  12. package/dist/errors.js +12 -0
  13. package/dist/generated/chart-scene.d.ts +219 -0
  14. package/dist/generated/chart-scene.d.ts.map +1 -0
  15. package/dist/generated/chart-scene.js +2 -0
  16. package/dist/generated/schemas.d.ts +777 -0
  17. package/dist/generated/schemas.d.ts.map +1 -0
  18. package/dist/generated/schemas.js +1043 -0
  19. package/dist/generated/validate-chart-scene.d.ts +15 -0
  20. package/dist/generated/validate-chart-scene.d.ts.map +1 -0
  21. package/dist/generated/validate-chart-scene.js +5916 -0
  22. package/dist/index.d.ts +11 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +10 -0
  25. package/dist/semantic-validator.d.ts +5 -0
  26. package/dist/semantic-validator.d.ts.map +1 -0
  27. package/dist/semantic-validator.js +264 -0
  28. package/dist/validator.d.ts +4 -0
  29. package/dist/validator.d.ts.map +1 -0
  30. package/dist/validator.js +49 -0
  31. package/dist/version.d.ts +5 -0
  32. package/dist/version.d.ts.map +1 -0
  33. package/dist/version.js +4 -0
  34. package/licenses/KLineCharts-LICENSE +201 -0
  35. package/licenses/KLineCharts-NOTICE +5 -0
  36. package/licenses/Noto-Sans-SC-OFL-1.1 +93 -0
  37. package/licenses/Tabler-Icons-LICENSE +21 -0
  38. package/licenses/TradingView-Lightweight-Charts-LICENSE +201 -0
  39. package/licenses/fflate-LICENSE +21 -0
  40. package/package.json +53 -0
  41. package/schema/chart-config.schema.json +177 -0
  42. package/schema/chart-scene.schema.json +198 -0
  43. package/schema/common.schema.json +156 -0
  44. package/schema/indicator.schema.json +146 -0
  45. package/schema/market-data.schema.json +37 -0
  46. package/schema/overlay.schema.json +188 -0
  47. package/schema/pane.schema.json +117 -0
  48. package/schema/runtime.schema.json +23 -0
@@ -0,0 +1,198 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://baron.dev/kline-scene/chart-scene.schema.json",
4
+ "title": "ChartScene",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "version",
10
+ "runtime",
11
+ "symbol",
12
+ "period",
13
+ "data",
14
+ "chart",
15
+ "panes",
16
+ "overlays",
17
+ "viewport",
18
+ "render",
19
+ "metadata"
20
+ ],
21
+ "properties": {
22
+ "schema": {
23
+ "const": "@baron1996/kline-scene"
24
+ },
25
+ "version": {
26
+ "const": 1
27
+ },
28
+ "runtime": {
29
+ "$ref": "https://baron.dev/kline-scene/runtime.schema.json"
30
+ },
31
+ "symbol": {
32
+ "$ref": "#/$defs/symbol"
33
+ },
34
+ "period": {
35
+ "$ref": "#/$defs/period"
36
+ },
37
+ "data": {
38
+ "type": "array",
39
+ "minItems": 1,
40
+ "maxItems": 1000000,
41
+ "items": {
42
+ "$ref": "https://baron.dev/kline-scene/market-data.schema.json"
43
+ }
44
+ },
45
+ "chart": {
46
+ "$ref": "https://baron.dev/kline-scene/chart-config.schema.json"
47
+ },
48
+ "panes": {
49
+ "type": "array",
50
+ "minItems": 1,
51
+ "maxItems": 32,
52
+ "items": {
53
+ "$ref": "https://baron.dev/kline-scene/pane.schema.json"
54
+ }
55
+ },
56
+ "overlays": {
57
+ "type": "array",
58
+ "maxItems": 10000,
59
+ "items": {
60
+ "$ref": "https://baron.dev/kline-scene/overlay.schema.json"
61
+ }
62
+ },
63
+ "viewport": {
64
+ "$ref": "#/$defs/viewport"
65
+ },
66
+ "render": {
67
+ "$ref": "#/$defs/render"
68
+ },
69
+ "metadata": {
70
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/metadata"
71
+ }
72
+ },
73
+ "$defs": {
74
+ "symbol": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "required": [
78
+ "ticker",
79
+ "pricePrecision",
80
+ "volumePrecision"
81
+ ],
82
+ "properties": {
83
+ "ticker": {
84
+ "type": "string",
85
+ "minLength": 1,
86
+ "maxLength": 128
87
+ },
88
+ "name": {
89
+ "type": "string",
90
+ "minLength": 1,
91
+ "maxLength": 256
92
+ },
93
+ "pricePrecision": {
94
+ "type": "integer",
95
+ "minimum": 0,
96
+ "maximum": 16
97
+ },
98
+ "volumePrecision": {
99
+ "type": "integer",
100
+ "minimum": 0,
101
+ "maximum": 16
102
+ }
103
+ }
104
+ },
105
+ "period": {
106
+ "type": "object",
107
+ "additionalProperties": false,
108
+ "required": [
109
+ "span",
110
+ "type"
111
+ ],
112
+ "properties": {
113
+ "span": {
114
+ "type": "integer",
115
+ "minimum": 1,
116
+ "maximum": 100000
117
+ },
118
+ "type": {
119
+ "enum": [
120
+ "second",
121
+ "minute",
122
+ "hour",
123
+ "day",
124
+ "week",
125
+ "month",
126
+ "year"
127
+ ]
128
+ }
129
+ }
130
+ },
131
+ "viewport": {
132
+ "type": "object",
133
+ "additionalProperties": false,
134
+ "required": [
135
+ "barSpace",
136
+ "rightOffsetDistance",
137
+ "anchorTimestamp"
138
+ ],
139
+ "properties": {
140
+ "barSpace": {
141
+ "type": "number",
142
+ "minimum": 1,
143
+ "maximum": 100
144
+ },
145
+ "rightOffsetDistance": {
146
+ "type": "number",
147
+ "minimum": 0,
148
+ "maximum": 10000
149
+ },
150
+ "anchorTimestamp": {
151
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/safeInteger"
152
+ }
153
+ }
154
+ },
155
+ "render": {
156
+ "type": "object",
157
+ "additionalProperties": false,
158
+ "required": [
159
+ "width",
160
+ "height",
161
+ "deviceScaleFactor",
162
+ "background",
163
+ "fontFamily",
164
+ "timeoutMs"
165
+ ],
166
+ "properties": {
167
+ "width": {
168
+ "type": "integer",
169
+ "minimum": 320,
170
+ "maximum": 8192
171
+ },
172
+ "height": {
173
+ "type": "integer",
174
+ "minimum": 240,
175
+ "maximum": 8192
176
+ },
177
+ "deviceScaleFactor": {
178
+ "type": "number",
179
+ "minimum": 0.5,
180
+ "maximum": 4
181
+ },
182
+ "background": {
183
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/rgbaColor"
184
+ },
185
+ "fontFamily": {
186
+ "enum": [
187
+ "Baron Sans"
188
+ ]
189
+ },
190
+ "timeoutMs": {
191
+ "type": "integer",
192
+ "minimum": 100,
193
+ "maximum": 120000
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
@@ -0,0 +1,156 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://baron.dev/kline-scene/common.schema.json",
4
+ "title": "ChartScene Common Types",
5
+ "$defs": {
6
+ "stableId": {
7
+ "type": "string",
8
+ "minLength": 1,
9
+ "maxLength": 128,
10
+ "pattern": "^[A-Za-z][A-Za-z0-9._:-]*$"
11
+ },
12
+ "finiteNumber": {
13
+ "type": "number",
14
+ "minimum": -1.7976931348623157e+308,
15
+ "maximum": 1.7976931348623157e+308
16
+ },
17
+ "safeInteger": {
18
+ "type": "integer",
19
+ "minimum": -9007199254740991,
20
+ "maximum": 9007199254740991
21
+ },
22
+ "nonNegativeNumber": {
23
+ "type": "number",
24
+ "minimum": 0,
25
+ "maximum": 1.7976931348623157e+308
26
+ },
27
+ "rgbaColor": {
28
+ "type": "string",
29
+ "pattern": "^rgba\\(\\s*[0-9]{1,3}\\s*,\\s*[0-9]{1,3}\\s*,\\s*[0-9]{1,3}\\s*,\\s*(?:0(?:\\.[0-9]+)?|1(?:\\.0+)?)\\s*\\)$"
30
+ },
31
+ "lineStyle": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "required": [
35
+ "color",
36
+ "size",
37
+ "style"
38
+ ],
39
+ "properties": {
40
+ "color": {
41
+ "$ref": "#/$defs/rgbaColor"
42
+ },
43
+ "size": {
44
+ "type": "number",
45
+ "exclusiveMinimum": 0,
46
+ "maximum": 20
47
+ },
48
+ "style": {
49
+ "enum": [
50
+ "solid",
51
+ "dashed",
52
+ "dotted"
53
+ ]
54
+ }
55
+ }
56
+ },
57
+ "fillStyle": {
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "required": [
61
+ "color"
62
+ ],
63
+ "properties": {
64
+ "color": {
65
+ "$ref": "#/$defs/rgbaColor"
66
+ }
67
+ }
68
+ },
69
+ "textStyle": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": [
73
+ "color",
74
+ "size",
75
+ "family",
76
+ "weight",
77
+ "backgroundColor",
78
+ "borderColor"
79
+ ],
80
+ "properties": {
81
+ "color": {
82
+ "$ref": "#/$defs/rgbaColor"
83
+ },
84
+ "size": {
85
+ "type": "number",
86
+ "minimum": 8,
87
+ "maximum": 72
88
+ },
89
+ "family": {
90
+ "type": "string",
91
+ "minLength": 1,
92
+ "maxLength": 128
93
+ },
94
+ "weight": {
95
+ "oneOf": [
96
+ {
97
+ "type": "integer",
98
+ "minimum": 100,
99
+ "maximum": 900,
100
+ "multipleOf": 100
101
+ },
102
+ {
103
+ "enum": [
104
+ "normal",
105
+ "bold"
106
+ ]
107
+ }
108
+ ]
109
+ },
110
+ "backgroundColor": {
111
+ "$ref": "#/$defs/rgbaColor"
112
+ },
113
+ "borderColor": {
114
+ "$ref": "#/$defs/rgbaColor"
115
+ }
116
+ }
117
+ },
118
+ "jsonValue": {
119
+ "oneOf": [
120
+ {
121
+ "type": "null"
122
+ },
123
+ {
124
+ "type": "boolean"
125
+ },
126
+ {
127
+ "$ref": "#/$defs/finiteNumber"
128
+ },
129
+ {
130
+ "type": "string"
131
+ },
132
+ {
133
+ "type": "array",
134
+ "maxItems": 1000,
135
+ "items": {
136
+ "$ref": "#/$defs/jsonValue"
137
+ }
138
+ },
139
+ {
140
+ "type": "object",
141
+ "maxProperties": 1000,
142
+ "additionalProperties": {
143
+ "$ref": "#/$defs/jsonValue"
144
+ }
145
+ }
146
+ ]
147
+ },
148
+ "metadata": {
149
+ "type": "object",
150
+ "maxProperties": 1000,
151
+ "additionalProperties": {
152
+ "$ref": "#/$defs/jsonValue"
153
+ }
154
+ }
155
+ }
156
+ }
@@ -0,0 +1,146 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://baron.dev/kline-scene/indicator.schema.json",
4
+ "title": "SceneIndicator",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "id",
9
+ "name",
10
+ "paneId",
11
+ "yAxisId",
12
+ "calcParams",
13
+ "precision",
14
+ "visible",
15
+ "zLevel",
16
+ "styles"
17
+ ],
18
+ "properties": {
19
+ "id": {
20
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/stableId"
21
+ },
22
+ "name": {
23
+ "enum": [
24
+ "MA",
25
+ "EMA",
26
+ "SMA",
27
+ "BBI",
28
+ "VOL",
29
+ "MACD",
30
+ "BOLL",
31
+ "KDJ",
32
+ "RSI",
33
+ "BIAS",
34
+ "BRAR",
35
+ "CCI",
36
+ "DMI",
37
+ "CR",
38
+ "PSY",
39
+ "DMA",
40
+ "TRIX",
41
+ "OBV",
42
+ "VR",
43
+ "WR",
44
+ "MTM",
45
+ "EMV",
46
+ "SAR",
47
+ "AO",
48
+ "ROC",
49
+ "PVT",
50
+ "AVP"
51
+ ]
52
+ },
53
+ "paneId": {
54
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/stableId"
55
+ },
56
+ "yAxisId": {
57
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/stableId"
58
+ },
59
+ "calcParams": {
60
+ "type": "array",
61
+ "maxItems": 8,
62
+ "items": {
63
+ "type": "number",
64
+ "exclusiveMinimum": 0,
65
+ "maximum": 100000
66
+ }
67
+ },
68
+ "precision": {
69
+ "type": "integer",
70
+ "minimum": 0,
71
+ "maximum": 16
72
+ },
73
+ "visible": {
74
+ "type": "boolean"
75
+ },
76
+ "zLevel": {
77
+ "type": "integer",
78
+ "minimum": -1000,
79
+ "maximum": 1000
80
+ },
81
+ "styles": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "required": [
85
+ "lines",
86
+ "bars",
87
+ "circles"
88
+ ],
89
+ "properties": {
90
+ "lines": {
91
+ "type": "array",
92
+ "maxItems": 16,
93
+ "items": {
94
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/lineStyle"
95
+ }
96
+ },
97
+ "bars": {
98
+ "type": "array",
99
+ "maxItems": 16,
100
+ "items": {
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "required": [
104
+ "upColor",
105
+ "downColor",
106
+ "noChangeColor"
107
+ ],
108
+ "properties": {
109
+ "upColor": {
110
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/rgbaColor"
111
+ },
112
+ "downColor": {
113
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/rgbaColor"
114
+ },
115
+ "noChangeColor": {
116
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/rgbaColor"
117
+ }
118
+ }
119
+ }
120
+ },
121
+ "circles": {
122
+ "type": "array",
123
+ "maxItems": 16,
124
+ "items": {
125
+ "type": "object",
126
+ "additionalProperties": false,
127
+ "required": [
128
+ "color",
129
+ "radius"
130
+ ],
131
+ "properties": {
132
+ "color": {
133
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/rgbaColor"
134
+ },
135
+ "radius": {
136
+ "type": "number",
137
+ "exclusiveMinimum": 0,
138
+ "maximum": 20
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://baron.dev/kline-scene/market-data.schema.json",
4
+ "title": "MarketData",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "timestamp",
9
+ "open",
10
+ "high",
11
+ "low",
12
+ "close"
13
+ ],
14
+ "properties": {
15
+ "timestamp": {
16
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/safeInteger"
17
+ },
18
+ "open": {
19
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/finiteNumber"
20
+ },
21
+ "high": {
22
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/finiteNumber"
23
+ },
24
+ "low": {
25
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/finiteNumber"
26
+ },
27
+ "close": {
28
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/finiteNumber"
29
+ },
30
+ "volume": {
31
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/nonNegativeNumber"
32
+ },
33
+ "turnover": {
34
+ "$ref": "https://baron.dev/kline-scene/common.schema.json#/$defs/nonNegativeNumber"
35
+ }
36
+ }
37
+ }