@simahfud/pine-to-kline 0.1.1 → 0.1.2

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 (117) hide show
  1. package/dist/index.d.ts +696 -21
  2. package/dist/pine-to-kline.js +17 -14
  3. package/dist/pine-to-kline.js.map +1 -1
  4. package/dist/pine-to-kline.umd.js +1 -1
  5. package/dist/pine-to-kline.umd.js.map +1 -1
  6. package/package.json +1 -1
  7. package/dist/PineInterpreter.d.ts +0 -19
  8. package/dist/PineInterpreter.d.ts.map +0 -1
  9. package/dist/PineInterpreter.js +0 -89
  10. package/dist/PineInterpreter.js.map +0 -1
  11. package/dist/adapter/FigureMapper.d.ts +0 -8
  12. package/dist/adapter/FigureMapper.d.ts.map +0 -1
  13. package/dist/adapter/FigureMapper.js +0 -22
  14. package/dist/adapter/FigureMapper.js.map +0 -1
  15. package/dist/adapter/KlineAdapter.d.ts +0 -11
  16. package/dist/adapter/KlineAdapter.d.ts.map +0 -1
  17. package/dist/adapter/KlineAdapter.js +0 -88
  18. package/dist/adapter/KlineAdapter.js.map +0 -1
  19. package/dist/adapter/StyleMapper.d.ts +0 -10
  20. package/dist/adapter/StyleMapper.d.ts.map +0 -1
  21. package/dist/adapter/StyleMapper.js +0 -28
  22. package/dist/adapter/StyleMapper.js.map +0 -1
  23. package/dist/builtins/color/constants.d.ts +0 -7
  24. package/dist/builtins/color/constants.d.ts.map +0 -1
  25. package/dist/builtins/color/constants.js +0 -25
  26. package/dist/builtins/color/constants.js.map +0 -1
  27. package/dist/builtins/color/functions.d.ts +0 -21
  28. package/dist/builtins/color/functions.d.ts.map +0 -1
  29. package/dist/builtins/color/functions.js +0 -52
  30. package/dist/builtins/color/functions.js.map +0 -1
  31. package/dist/builtins/index.d.ts +0 -15
  32. package/dist/builtins/index.d.ts.map +0 -1
  33. package/dist/builtins/index.js +0 -32
  34. package/dist/builtins/index.js.map +0 -1
  35. package/dist/builtins/input/functions.d.ts +0 -28
  36. package/dist/builtins/input/functions.d.ts.map +0 -1
  37. package/dist/builtins/input/functions.js +0 -114
  38. package/dist/builtins/input/functions.js.map +0 -1
  39. package/dist/builtins/math/functions.d.ts +0 -9
  40. package/dist/builtins/math/functions.d.ts.map +0 -1
  41. package/dist/builtins/math/functions.js +0 -57
  42. package/dist/builtins/math/functions.js.map +0 -1
  43. package/dist/builtins/ta/crossover.d.ts +0 -18
  44. package/dist/builtins/ta/crossover.d.ts.map +0 -1
  45. package/dist/builtins/ta/crossover.js +0 -59
  46. package/dist/builtins/ta/crossover.js.map +0 -1
  47. package/dist/builtins/ta/index.d.ts +0 -12
  48. package/dist/builtins/ta/index.d.ts.map +0 -1
  49. package/dist/builtins/ta/index.js +0 -61
  50. package/dist/builtins/ta/index.js.map +0 -1
  51. package/dist/builtins/ta/momentum.d.ts +0 -22
  52. package/dist/builtins/ta/momentum.d.ts.map +0 -1
  53. package/dist/builtins/ta/momentum.js +0 -81
  54. package/dist/builtins/ta/momentum.js.map +0 -1
  55. package/dist/builtins/ta/moving-averages.d.ts +0 -24
  56. package/dist/builtins/ta/moving-averages.d.ts.map +0 -1
  57. package/dist/builtins/ta/moving-averages.js +0 -108
  58. package/dist/builtins/ta/moving-averages.js.map +0 -1
  59. package/dist/builtins/ta/utility.d.ts +0 -28
  60. package/dist/builtins/ta/utility.d.ts.map +0 -1
  61. package/dist/builtins/ta/utility.js +0 -156
  62. package/dist/builtins/ta/utility.js.map +0 -1
  63. package/dist/builtins/ta/volatility.d.ts +0 -21
  64. package/dist/builtins/ta/volatility.d.ts.map +0 -1
  65. package/dist/builtins/ta/volatility.js +0 -71
  66. package/dist/builtins/ta/volatility.js.map +0 -1
  67. package/dist/index.d.ts.map +0 -1
  68. package/dist/index.js +0 -24
  69. package/dist/index.js.map +0 -1
  70. package/dist/lexer/Lexer.d.ts +0 -40
  71. package/dist/lexer/Lexer.d.ts.map +0 -1
  72. package/dist/lexer/Lexer.js +0 -383
  73. package/dist/lexer/Lexer.js.map +0 -1
  74. package/dist/lexer/Token.d.ts +0 -16
  75. package/dist/lexer/Token.d.ts.map +0 -1
  76. package/dist/lexer/Token.js +0 -26
  77. package/dist/lexer/Token.js.map +0 -1
  78. package/dist/lexer/TokenType.d.ts +0 -74
  79. package/dist/lexer/TokenType.d.ts.map +0 -1
  80. package/dist/lexer/TokenType.js +0 -111
  81. package/dist/lexer/TokenType.js.map +0 -1
  82. package/dist/parser/Parser.d.ts +0 -55
  83. package/dist/parser/Parser.d.ts.map +0 -1
  84. package/dist/parser/Parser.js +0 -569
  85. package/dist/parser/Parser.js.map +0 -1
  86. package/dist/parser/nodes/index.d.ts +0 -215
  87. package/dist/parser/nodes/index.d.ts.map +0 -1
  88. package/dist/parser/nodes/index.js +0 -7
  89. package/dist/parser/nodes/index.js.map +0 -1
  90. package/dist/plugin/KlineChartProPlugin.d.ts +0 -43
  91. package/dist/plugin/KlineChartProPlugin.d.ts.map +0 -1
  92. package/dist/plugin/KlineChartProPlugin.js +0 -44
  93. package/dist/plugin/KlineChartProPlugin.js.map +0 -1
  94. package/dist/runtime/BarContext.d.ts +0 -23
  95. package/dist/runtime/BarContext.d.ts.map +0 -1
  96. package/dist/runtime/BarContext.js +0 -41
  97. package/dist/runtime/BarContext.js.map +0 -1
  98. package/dist/runtime/PineRuntime.d.ts +0 -51
  99. package/dist/runtime/PineRuntime.d.ts.map +0 -1
  100. package/dist/runtime/PineRuntime.js +0 -471
  101. package/dist/runtime/PineRuntime.js.map +0 -1
  102. package/dist/runtime/SeriesEmulator.d.ts +0 -21
  103. package/dist/runtime/SeriesEmulator.d.ts.map +0 -1
  104. package/dist/runtime/SeriesEmulator.js +0 -32
  105. package/dist/runtime/SeriesEmulator.js.map +0 -1
  106. package/dist/runtime/VarPersistence.d.ts +0 -20
  107. package/dist/runtime/VarPersistence.d.ts.map +0 -1
  108. package/dist/runtime/VarPersistence.js +0 -28
  109. package/dist/runtime/VarPersistence.js.map +0 -1
  110. package/dist/types.d.ts +0 -97
  111. package/dist/types.d.ts.map +0 -1
  112. package/dist/types.js +0 -6
  113. package/dist/types.js.map +0 -1
  114. package/dist/utils/errors.d.ts +0 -24
  115. package/dist/utils/errors.d.ts.map +0 -1
  116. package/dist/utils/errors.js +0 -46
  117. package/dist/utils/errors.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simahfud/pine-to-kline",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,19 +0,0 @@
1
- /**
2
- * pine-to-kline — PineInterpreter
3
- * Main entry point class for the library
4
- * @license Apache-2.0
5
- */
6
- import type { PineInterpreterOptions, CompileResult, ValidationResult, KlineData } from './types';
7
- export declare class PineInterpreter {
8
- private options;
9
- constructor(options?: PineInterpreterOptions);
10
- /** Full compile: PineScript source → IndicatorConfig (IndicatorTemplate) */
11
- compile(source: string): CompileResult;
12
- /** Validate syntax only (no execution) */
13
- validate(source: string): ValidationResult;
14
- /** Compile + register to KlineChart (global or instance) */
15
- register(source: string, registerFn?: (config: any) => void): string;
16
- /** Execute directly with data (for testing/preview) */
17
- execute(source: string, dataList: KlineData[], params?: any[]): Record<string, any>[];
18
- }
19
- //# sourceMappingURL=PineInterpreter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PineInterpreter.d.ts","sourceRoot":"","sources":["../src/PineInterpreter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,gBAAgB,EAAmB,SAAS,EAAE,MAAM,SAAS,CAAA;AAclH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAkC;gBAErC,OAAO,GAAE,sBAA2B;IAIhD,4EAA4E;IAC5E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAyCtC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAU1C,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM;IAWpE,uDAAuD;IACvD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;CAKtF"}
@@ -1,89 +0,0 @@
1
- /**
2
- * pine-to-kline — PineInterpreter
3
- * Main entry point class for the library
4
- * @license Apache-2.0
5
- */
6
- import { Lexer } from './lexer/Lexer';
7
- import { Parser } from './parser/Parser';
8
- import { PineRuntime } from './runtime/PineRuntime';
9
- import { KlineAdapter } from './adapter/KlineAdapter';
10
- const DEFAULT_OPTIONS = {
11
- version: 'v5',
12
- strict: false,
13
- sandbox: true,
14
- onWarning: console.warn,
15
- onError: console.error,
16
- };
17
- export class PineInterpreter {
18
- options;
19
- constructor(options = {}) {
20
- this.options = { ...DEFAULT_OPTIONS, ...options };
21
- }
22
- /** Full compile: PineScript source → IndicatorConfig (IndicatorTemplate) */
23
- compile(source) {
24
- try {
25
- const tokens = new Lexer(source).tokenize();
26
- const ast = new Parser(tokens).parse();
27
- const runtime = new PineRuntime();
28
- // Execute with empty data to extract metadata
29
- const dummyData = [{ timestamp: 0, open: 0, high: 0, low: 0, close: 0 }];
30
- const ir = runtime.execute(ast, dummyData);
31
- // Build the real calc function that re-executes for actual data
32
- const realIR = {
33
- ...ir,
34
- calcFn: (dataList, params) => {
35
- const rt = new PineRuntime();
36
- return rt.execute(ast, dataList, params).calcFn(dataList, params);
37
- }
38
- };
39
- const adapter = new KlineAdapter();
40
- const config = adapter.toIndicatorTemplate(realIR);
41
- return {
42
- success: true,
43
- indicatorConfig: config,
44
- name: config.name,
45
- warnings: ir.warnings,
46
- errors: [],
47
- };
48
- }
49
- catch (e) {
50
- this.options.onError(e);
51
- return {
52
- success: false,
53
- indicatorConfig: {},
54
- name: '',
55
- warnings: [],
56
- errors: [e],
57
- };
58
- }
59
- }
60
- /** Validate syntax only (no execution) */
61
- validate(source) {
62
- try {
63
- const tokens = new Lexer(source).tokenize();
64
- new Parser(tokens).parse();
65
- return { valid: true, errors: [] };
66
- }
67
- catch (e) {
68
- return { valid: false, errors: [e] };
69
- }
70
- }
71
- /** Compile + register to KlineChart (global or instance) */
72
- register(source, registerFn) {
73
- const result = this.compile(source);
74
- if (!result.success)
75
- throw result.errors[0];
76
- if (registerFn) {
77
- registerFn(result.indicatorConfig);
78
- }
79
- return result.name;
80
- }
81
- /** Execute directly with data (for testing/preview) */
82
- execute(source, dataList, params) {
83
- const result = this.compile(source);
84
- if (!result.success)
85
- throw result.errors[0];
86
- return result.indicatorConfig.calc(dataList, { calcParams: params ?? result.indicatorConfig.calcParams });
87
- }
88
- }
89
- //# sourceMappingURL=PineInterpreter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PineInterpreter.js","sourceRoot":"","sources":["../src/PineInterpreter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * pine-to-kline — Figure Mapper
3
- * Maps Pine plot styles to KlineChart figure types
4
- * @license Apache-2.0
5
- */
6
- export type KlineFigureType = 'line' | 'bar' | 'circle';
7
- export declare function mapPlotStyle(style: string | null): KlineFigureType;
8
- //# sourceMappingURL=FigureMapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FigureMapper.d.ts","sourceRoot":"","sources":["../../src/adapter/FigureMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;AAcvD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAGlE"}
@@ -1,22 +0,0 @@
1
- /**
2
- * pine-to-kline — Figure Mapper
3
- * Maps Pine plot styles to KlineChart figure types
4
- * @license Apache-2.0
5
- */
6
- const STYLE_MAP = {
7
- 'plot.style_line': 'line',
8
- 'plot.style_linebr': 'line',
9
- 'plot.style_stepline': 'line',
10
- 'plot.style_area': 'line',
11
- 'plot.style_areabr': 'line',
12
- 'plot.style_columns': 'bar',
13
- 'plot.style_histogram': 'bar',
14
- 'plot.style_circles': 'circle',
15
- 'plot.style_cross': 'circle',
16
- };
17
- export function mapPlotStyle(style) {
18
- if (!style)
19
- return 'line';
20
- return STYLE_MAP[style] ?? 'line';
21
- }
22
- //# sourceMappingURL=FigureMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FigureMapper.js","sourceRoot":"","sources":["../../src/adapter/FigureMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,SAAS,GAAoC;IACjD,iBAAiB,EAAQ,MAAM;IAC/B,mBAAmB,EAAM,MAAM;IAC/B,qBAAqB,EAAI,MAAM;IAC/B,iBAAiB,EAAQ,MAAM;IAC/B,mBAAmB,EAAM,MAAM;IAC/B,oBAAoB,EAAK,KAAK;IAC9B,sBAAsB,EAAG,KAAK;IAC9B,oBAAoB,EAAK,QAAQ;IACjC,kBAAkB,EAAO,QAAQ;CAClC,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAA;IACzB,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAA;AACnC,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * pine-to-kline — KlineChart Adapter
3
- * Converts PineRuntime IR → KlineChart IndicatorTemplate
4
- * @license Apache-2.0
5
- */
6
- import type { IndicatorConfig, PineIR } from '../types';
7
- export declare class KlineAdapter {
8
- toIndicatorTemplate(ir: PineIR): IndicatorConfig;
9
- private mapFigures;
10
- }
11
- //# sourceMappingURL=KlineAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KlineAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/KlineAdapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAkC,MAAM,UAAU,CAAA;AAIvF,qBAAa,YAAY;IACvB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe;IA8EhD,OAAO,CAAC,UAAU;CAUnB"}
@@ -1,88 +0,0 @@
1
- /**
2
- * pine-to-kline — KlineChart Adapter
3
- * Converts PineRuntime IR → KlineChart IndicatorTemplate
4
- * @license Apache-2.0
5
- */
6
- import { mapPlotStyle } from './FigureMapper';
7
- import { resolveColor, mapLinestyle } from './StyleMapper';
8
- export class KlineAdapter {
9
- toIndicatorTemplate(ir) {
10
- const { meta, inputs, plots, hlines, calcFn } = ir;
11
- const name = meta.name.toUpperCase().replace(/[^A-Z0-9_]/g, '_');
12
- return {
13
- name,
14
- shortName: meta.shortName ?? meta.name,
15
- series: meta.overlay ? 'price' : 'normal',
16
- calcParams: inputs.map(i => i.defaultValue),
17
- extendData: {
18
- pineInputs: inputs.map(i => i.title || i.name || 'Param')
19
- },
20
- figures: this.mapFigures(plots),
21
- regenerateFigures: inputs.length > 0
22
- ? (_params) => this.mapFigures(plots)
23
- : undefined,
24
- calc: (dataList, indicator) => {
25
- const params = indicator.calcParams ?? inputs.map(i => i.defaultValue);
26
- return calcFn(dataList, params);
27
- },
28
- // hline() → custom draw callback
29
- ...(hlines.length > 0 && {
30
- draw: (params) => {
31
- const { ctx, bounding, indicator, yAxis } = params;
32
- if (!ctx || !yAxis)
33
- return false;
34
- for (const h of hlines) {
35
- const y = yAxis.convertToPixel(h.price);
36
- if (y < bounding.top || y > bounding.top + bounding.height)
37
- continue;
38
- ctx.save();
39
- ctx.strokeStyle = resolveColor(h.color);
40
- ctx.lineWidth = h.linewidth ?? 1;
41
- const dash = mapLinestyle(h.linestyle);
42
- if (dash.length)
43
- ctx.setLineDash(dash);
44
- ctx.beginPath();
45
- ctx.moveTo(bounding.left, y);
46
- ctx.lineTo(bounding.left + bounding.width, y);
47
- ctx.stroke();
48
- // Draw label
49
- if (h.title) {
50
- ctx.fillStyle = resolveColor(h.color);
51
- ctx.font = '10px sans-serif';
52
- ctx.textAlign = 'right';
53
- ctx.fillText(h.title, bounding.left + bounding.width - 4, y - 4);
54
- }
55
- ctx.restore();
56
- }
57
- return false; // don't skip default figure rendering
58
- }
59
- }),
60
- createTooltipDataSource: (params) => {
61
- const { indicator } = params;
62
- const result = indicator?.result ?? [];
63
- const lastRow = result[result.length - 1];
64
- return {
65
- name: meta.name,
66
- calcParamsText: inputs.length > 0
67
- ? `(${(indicator?.calcParams ?? []).join(', ')})`
68
- : '',
69
- values: plots.map(p => ({
70
- title: `${p.title ?? p.id}: `,
71
- value: lastRow?.[p.id] ?? '--'
72
- }))
73
- };
74
- }
75
- };
76
- }
77
- mapFigures(plots) {
78
- return plots.map(plot => ({
79
- key: plot.id,
80
- title: `${plot.title ?? plot.id}: `,
81
- type: mapPlotStyle(plot.style),
82
- styles: (_data, _indicator, _defaultStyles) => ({
83
- color: resolveColor(plot.color)
84
- })
85
- }));
86
- }
87
- }
88
- //# sourceMappingURL=KlineAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KlineAdapter.js","sourceRoot":"","sources":["../../src/adapter/KlineAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * pine-to-kline — Style Mapper
3
- * Converts Pine style values to KlineChart-compatible CSS
4
- * @license Apache-2.0
5
- */
6
- /** Resolve a Pine color reference to a hex string */
7
- export declare function resolveColor(value: any): string;
8
- /** Map Pine linestyle to KlineChart dash array */
9
- export declare function mapLinestyle(style: string | null): number[];
10
- //# sourceMappingURL=StyleMapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StyleMapper.d.ts","sourceRoot":"","sources":["../../src/adapter/StyleMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAO/C;AAED,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAO3D"}
@@ -1,28 +0,0 @@
1
- /**
2
- * pine-to-kline — Style Mapper
3
- * Converts Pine style values to KlineChart-compatible CSS
4
- * @license Apache-2.0
5
- */
6
- import { COLOR_MAP } from '../builtins/color/constants';
7
- /** Resolve a Pine color reference to a hex string */
8
- export function resolveColor(value) {
9
- if (!value)
10
- return '#2196F3';
11
- if (typeof value === 'string') {
12
- if (value.startsWith('#'))
13
- return value;
14
- if (COLOR_MAP[value])
15
- return COLOR_MAP[value];
16
- }
17
- return '#2196F3';
18
- }
19
- /** Map Pine linestyle to KlineChart dash array */
20
- export function mapLinestyle(style) {
21
- switch (style) {
22
- case 'hline.style_dashed': return [6, 3];
23
- case 'hline.style_dotted': return [2, 2];
24
- case 'hline.style_solid':
25
- default: return [];
26
- }
27
- }
28
- //# sourceMappingURL=StyleMapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StyleMapper.js","sourceRoot":"","sources":["../../src/adapter/StyleMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAEvD,qDAAqD;AACrD,MAAM,UAAU,YAAY,CAAC,KAAU;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QACvC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACxC,KAAK,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACxC,KAAK,mBAAmB,CAAC;QACzB,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IACpB,CAAC;AACH,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * pine-to-kline — Color Constants
3
- * All Pine color.* constants → hex values
4
- * @license Apache-2.0
5
- */
6
- export declare const COLOR_MAP: Record<string, string>;
7
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/builtins/color/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkB5C,CAAA"}
@@ -1,25 +0,0 @@
1
- /**
2
- * pine-to-kline — Color Constants
3
- * All Pine color.* constants → hex values
4
- * @license Apache-2.0
5
- */
6
- export const COLOR_MAP = {
7
- 'color.aqua': '#00BCD4',
8
- 'color.black': '#000000',
9
- 'color.blue': '#2196F3',
10
- 'color.fuchsia': '#E040FB',
11
- 'color.gray': '#9E9E9E',
12
- 'color.green': '#4CAF50',
13
- 'color.lime': '#00E676',
14
- 'color.maroon': '#880E4F',
15
- 'color.navy': '#0D47A1',
16
- 'color.olive': '#808000',
17
- 'color.orange': '#FF9800',
18
- 'color.purple': '#9C27B0',
19
- 'color.red': '#F44336',
20
- 'color.silver': '#B0BEC5',
21
- 'color.teal': '#009688',
22
- 'color.white': '#FFFFFF',
23
- 'color.yellow': '#FFEB3B',
24
- };
25
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/builtins/color/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,YAAY,EAAK,SAAS;IAC1B,aAAa,EAAI,SAAS;IAC1B,YAAY,EAAK,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,YAAY,EAAK,SAAS;IAC1B,aAAa,EAAI,SAAS;IAC1B,YAAY,EAAK,SAAS;IAC1B,cAAc,EAAG,SAAS;IAC1B,YAAY,EAAK,SAAS;IAC1B,aAAa,EAAI,SAAS;IAC1B,cAAc,EAAG,SAAS;IAC1B,cAAc,EAAG,SAAS;IAC1B,WAAW,EAAM,SAAS;IAC1B,cAAc,EAAG,SAAS;IAC1B,YAAY,EAAK,SAAS;IAC1B,aAAa,EAAI,SAAS;IAC1B,cAAc,EAAG,SAAS;CAC3B,CAAA"}
@@ -1,21 +0,0 @@
1
- /**
2
- * pine-to-kline — Color Functions
3
- * Implements: color.new(), color.rgb(), color.from_gradient()
4
- * @license Apache-2.0
5
- */
6
- /**
7
- * color.new(baseColor, transp) — create color with transparency
8
- * transp: 0 = opaque, 100 = fully transparent
9
- */
10
- export declare function colorNew(baseColor: string, transp: number): string;
11
- /**
12
- * color.rgb(red, green, blue, transp?) — create RGBA color
13
- */
14
- export declare function colorRgb(r: number, g: number, b: number, transp?: number): string;
15
- /**
16
- * color.from_gradient(value, bottom, top, bottomColor, topColor)
17
- * Linear interpolation between two colors
18
- */
19
- export declare function colorFromGradient(value: number, bottom: number, top: number, bottomColor: string, topColor: string): string;
20
- export declare const COLOR_FUNCTIONS: Record<string, Function>;
21
- //# sourceMappingURL=functions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/builtins/color/functions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,MAAM,CAQ5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,CAcR;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAIpD,CAAA"}
@@ -1,52 +0,0 @@
1
- /**
2
- * pine-to-kline — Color Functions
3
- * Implements: color.new(), color.rgb(), color.from_gradient()
4
- * @license Apache-2.0
5
- */
6
- /**
7
- * color.new(baseColor, transp) — create color with transparency
8
- * transp: 0 = opaque, 100 = fully transparent
9
- */
10
- export function colorNew(baseColor, transp) {
11
- const alpha = Math.round((1 - transp / 100) * 255);
12
- const hex = baseColor.startsWith('#') ? baseColor : '#000000';
13
- const base = hex.length === 9 ? hex.slice(0, 7) : hex;
14
- return base + alpha.toString(16).padStart(2, '0');
15
- }
16
- /**
17
- * color.rgb(red, green, blue, transp?) — create RGBA color
18
- */
19
- export function colorRgb(r, g, b, transp = 0) {
20
- const clamp = (v) => Math.max(0, Math.min(255, Math.round(v)));
21
- const alpha = Math.round((1 - transp / 100) * 255);
22
- return '#' +
23
- clamp(r).toString(16).padStart(2, '0') +
24
- clamp(g).toString(16).padStart(2, '0') +
25
- clamp(b).toString(16).padStart(2, '0') +
26
- (alpha < 255 ? alpha.toString(16).padStart(2, '0') : '');
27
- }
28
- /**
29
- * color.from_gradient(value, bottom, top, bottomColor, topColor)
30
- * Linear interpolation between two colors
31
- */
32
- export function colorFromGradient(value, bottom, top, bottomColor, topColor) {
33
- const t = Math.max(0, Math.min(1, (value - bottom) / (top - bottom)));
34
- const parseHex = (hex) => {
35
- const h = hex.replace('#', '');
36
- return {
37
- r: parseInt(h.slice(0, 2), 16),
38
- g: parseInt(h.slice(2, 4), 16),
39
- b: parseInt(h.slice(4, 6), 16),
40
- };
41
- };
42
- const c1 = parseHex(bottomColor);
43
- const c2 = parseHex(topColor);
44
- const lerp = (a, b) => Math.round(a + (b - a) * t);
45
- return colorRgb(lerp(c1.r, c2.r), lerp(c1.g, c2.g), lerp(c1.b, c2.b));
46
- }
47
- export const COLOR_FUNCTIONS = {
48
- 'color.new': colorNew,
49
- 'color.rgb': colorRgb,
50
- 'color.from_gradient': colorFromGradient,
51
- };
52
- //# sourceMappingURL=functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/builtins/color/functions.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * pine-to-kline — Builtins Master Index
3
- * Central registry of all built-in functions and constants
4
- * @license Apache-2.0
5
- */
6
- export { TA_REGISTRY } from './ta/index';
7
- export { MATH_REGISTRY, MATH_CONSTANTS } from './math/functions';
8
- export { COLOR_MAP } from './color/constants';
9
- export { COLOR_FUNCTIONS } from './color/functions';
10
- export { INPUT_REGISTRY, resetInputCounter } from './input/functions';
11
- /** Combined registry of ALL built-in functions */
12
- export declare const ALL_BUILTINS: Record<string, Function>;
13
- /** Combined registry of ALL built-in constants */
14
- export declare const ALL_CONSTANTS: Record<string, any>;
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQrE,kDAAkD;AAClD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAKjD,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAO7C,CAAA"}
@@ -1,32 +0,0 @@
1
- /**
2
- * pine-to-kline — Builtins Master Index
3
- * Central registry of all built-in functions and constants
4
- * @license Apache-2.0
5
- */
6
- export { TA_REGISTRY } from './ta/index';
7
- export { MATH_REGISTRY, MATH_CONSTANTS } from './math/functions';
8
- export { COLOR_MAP } from './color/constants';
9
- export { COLOR_FUNCTIONS } from './color/functions';
10
- export { INPUT_REGISTRY, resetInputCounter } from './input/functions';
11
- import { TA_REGISTRY } from './ta/index';
12
- import { MATH_REGISTRY, MATH_CONSTANTS } from './math/functions';
13
- import { COLOR_MAP } from './color/constants';
14
- import { COLOR_FUNCTIONS } from './color/functions';
15
- import { INPUT_REGISTRY } from './input/functions';
16
- /** Combined registry of ALL built-in functions */
17
- export const ALL_BUILTINS = {
18
- ...TA_REGISTRY,
19
- ...MATH_REGISTRY,
20
- ...COLOR_FUNCTIONS,
21
- ...INPUT_REGISTRY,
22
- };
23
- /** Combined registry of ALL built-in constants */
24
- export const ALL_CONSTANTS = {
25
- ...MATH_CONSTANTS,
26
- ...COLOR_MAP,
27
- // Pine special constants
28
- 'na': NaN,
29
- 'true': true,
30
- 'false': false,
31
- };
32
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,kDAAkD;AAClD,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,GAAG,WAAW;IACd,GAAG,aAAa;IAChB,GAAG,eAAe;IAClB,GAAG,cAAc;CAClB,CAAA;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,GAAG,cAAc;IACjB,GAAG,SAAS;IACZ,yBAAyB;IACzB,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK;CACf,CAAA"}
@@ -1,28 +0,0 @@
1
- /**
2
- * pine-to-kline — Input Functions
3
- * Handles input.int(), input.float(), input.bool(), etc.
4
- * These extract metadata for KlineChart calcParams.
5
- * @license Apache-2.0
6
- */
7
- import type { PineInput } from '../../types';
8
- export interface InputCallResult {
9
- meta: PineInput;
10
- value: any;
11
- }
12
- export declare function resetInputCounter(): void;
13
- /** input.int(defval, title?, ...) */
14
- export declare function inputInt(defval: number, title?: string, options?: Record<string, any>): InputCallResult;
15
- /** input.float(defval, title?, ...) */
16
- export declare function inputFloat(defval: number, title?: string, options?: Record<string, any>): InputCallResult;
17
- /** input.bool(defval, title?) */
18
- export declare function inputBool(defval: boolean, title?: string): InputCallResult;
19
- /** input.string(defval, title?, options?) */
20
- export declare function inputString(defval: string, title?: string, options?: string[]): InputCallResult;
21
- /** input.color(defval, title?) */
22
- export declare function inputColor(defval: string, title?: string): InputCallResult;
23
- /** input.source(defval, title?) — typically resolves to 'close' */
24
- export declare function inputSource(defval: string, title?: string): InputCallResult;
25
- /** input() — generic input (Pine v5 legacy) */
26
- export declare function inputGeneric(defval: any, title?: string): InputCallResult;
27
- export declare const INPUT_REGISTRY: Record<string, Function>;
28
- //# sourceMappingURL=functions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/builtins/input/functions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,GAAG,CAAA;CACX;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,CAavG;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,CAazG;AAED,iCAAiC;AACjC,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAU1E;AAED,6CAA6C;AAC7C,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAW/F;AAED,kCAAkC;AAClC,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAU1E;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAU3E;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAczE;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAQnD,CAAA"}