@forgecharts/sdk 1.1.32 → 1.1.36
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/api/IndicatorDAG.d.ts +2 -0
- package/dist/api/IndicatorDAG.d.ts.map +1 -1
- package/dist/api/TChart.d.ts +13 -0
- package/dist/api/TChart.d.ts.map +1 -1
- package/dist/api/drawingUtils.d.ts +6 -0
- package/dist/api/drawingUtils.d.ts.map +1 -1
- package/dist/core/Chart.d.ts +30 -1
- package/dist/core/Chart.d.ts.map +1 -1
- package/dist/core/Crosshair.d.ts.map +1 -1
- package/dist/core/InteractionManager.d.ts +16 -1
- package/dist/core/InteractionManager.d.ts.map +1 -1
- package/dist/core/TimeScale.d.ts.map +1 -1
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -1
- package/dist/forgecharts.css +4143 -0
- package/dist/{tscript/TScriptIndicator.d.ts → forgescript/ForgeScriptIndicator.d.ts} +19 -5
- package/dist/forgescript/ForgeScriptIndicator.d.ts.map +1 -0
- package/dist/forgescript/ForgeScriptTypes.d.ts +89 -0
- package/dist/forgescript/ForgeScriptTypes.d.ts.map +1 -0
- package/dist/forgescript/__tests__/ai-response-parser.test.d.ts +2 -0
- package/dist/forgescript/__tests__/ai-response-parser.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/language-detector.test.d.ts +2 -0
- package/dist/forgescript/__tests__/language-detector.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/lexer.test.d.ts +2 -0
- package/dist/forgescript/__tests__/lexer.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/forgescript/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/parser.test.d.ts +2 -0
- package/dist/forgescript/__tests__/parser.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/pine-transpiler.test.d.ts +2 -0
- package/dist/forgescript/__tests__/pine-transpiler.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/runtime.test.d.ts +2 -0
- package/dist/forgescript/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/sandbox.test.d.ts +2 -0
- package/dist/forgescript/__tests__/sandbox.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/save-gate.test.d.ts +2 -0
- package/dist/forgescript/__tests__/save-gate.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/series.test.d.ts +2 -0
- package/dist/forgescript/__tests__/series.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/telemetry.test.d.ts +2 -0
- package/dist/forgescript/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/forgescript/__tests__/validation.test.d.ts +2 -0
- package/dist/forgescript/__tests__/validation.test.d.ts.map +1 -0
- package/dist/forgescript/ast.d.ts +153 -0
- package/dist/forgescript/ast.d.ts.map +1 -0
- package/dist/forgescript/builtins/color.d.ts +29 -0
- package/dist/forgescript/builtins/color.d.ts.map +1 -0
- package/dist/forgescript/builtins/math.d.ts +22 -0
- package/dist/forgescript/builtins/math.d.ts.map +1 -0
- package/dist/forgescript/builtins/request.d.ts +22 -0
- package/dist/forgescript/builtins/request.d.ts.map +1 -0
- package/dist/forgescript/builtins/syminfo.d.ts +27 -0
- package/dist/forgescript/builtins/syminfo.d.ts.map +1 -0
- package/dist/forgescript/builtins/ta.d.ts +39 -0
- package/dist/forgescript/builtins/ta.d.ts.map +1 -0
- package/dist/forgescript/conversion/ai-conversion-agent.d.ts +41 -0
- package/dist/forgescript/conversion/ai-conversion-agent.d.ts.map +1 -0
- package/dist/forgescript/conversion/conversion-orchestrator.d.ts +44 -0
- package/dist/forgescript/conversion/conversion-orchestrator.d.ts.map +1 -0
- package/dist/forgescript/conversion/index.d.ts +19 -0
- package/dist/forgescript/conversion/index.d.ts.map +1 -0
- package/dist/forgescript/conversion/language-detector.d.ts +27 -0
- package/dist/forgescript/conversion/language-detector.d.ts.map +1 -0
- package/dist/forgescript/conversion/prompts/index.d.ts +17 -0
- package/dist/forgescript/conversion/prompts/index.d.ts.map +1 -0
- package/dist/forgescript/conversion/sandbox.d.ts +23 -0
- package/dist/forgescript/conversion/sandbox.d.ts.map +1 -0
- package/dist/forgescript/conversion/save-gate.d.ts +29 -0
- package/dist/forgescript/conversion/save-gate.d.ts.map +1 -0
- package/dist/forgescript/conversion/telemetry.d.ts +22 -0
- package/dist/forgescript/conversion/telemetry.d.ts.map +1 -0
- package/dist/forgescript/conversion/types.d.ts +120 -0
- package/dist/forgescript/conversion/types.d.ts.map +1 -0
- package/dist/forgescript/conversion/validation.d.ts +18 -0
- package/dist/forgescript/conversion/validation.d.ts.map +1 -0
- package/dist/{tscript → forgescript}/lexer.d.ts +7 -1
- package/dist/forgescript/lexer.d.ts.map +1 -0
- package/dist/{tscript → forgescript}/parser.d.ts +14 -0
- package/dist/forgescript/parser.d.ts.map +1 -0
- package/dist/{pine → forgescript/pine}/PineCompiler.d.ts +7 -4
- package/dist/forgescript/pine/PineCompiler.d.ts.map +1 -0
- package/dist/forgescript/pine/diagnostics.d.ts.map +1 -0
- package/dist/forgescript/pine/index.d.ts.map +1 -0
- package/dist/{pine → forgescript/pine}/pine-ast.d.ts +50 -2
- package/dist/forgescript/pine/pine-ast.d.ts.map +1 -0
- package/dist/forgescript/pine/pine-lexer.d.ts.map +1 -0
- package/dist/forgescript/pine/pine-parser.d.ts +108 -0
- package/dist/forgescript/pine/pine-parser.d.ts.map +1 -0
- package/dist/{pine → forgescript/pine}/pine-transpiler.d.ts +10 -3
- package/dist/forgescript/pine/pine-transpiler.d.ts.map +1 -0
- package/dist/forgescript/runtime.d.ts +307 -0
- package/dist/forgescript/runtime.d.ts.map +1 -0
- package/dist/forgescript/series.d.ts.map +1 -0
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3365 -265
- package/dist/index.js.map +1 -1
- package/dist/internal.js +3409 -309
- package/dist/internal.js.map +1 -1
- package/dist/licensing/ChartRuntimeResolver.d.ts +4 -0
- package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -1
- package/dist/licensing/licenseTypes.d.ts +18 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -1
- package/dist/logo_dark-B2KCSRPJ.png +0 -0
- package/dist/logo_light-NAWNBY4G.png +0 -0
- package/dist/react/canvas/ChartCanvas.d.ts +18 -2
- package/dist/react/canvas/ChartCanvas.d.ts.map +1 -1
- package/dist/react/canvas/PointerOverlay.d.ts +3 -1
- package/dist/react/canvas/PointerOverlay.d.ts.map +1 -1
- package/dist/react/canvas/TableOverlay.d.ts +12 -0
- package/dist/react/canvas/TableOverlay.d.ts.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts +7 -1
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -1
- package/dist/react/hooks/useBrokerEvents.d.ts +32 -0
- package/dist/react/hooks/useBrokerEvents.d.ts.map +1 -0
- package/dist/react/index.js +2506 -387
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.d.ts +1 -1
- package/dist/react/internal.d.ts.map +1 -1
- package/dist/react/internal.js +5103 -988
- package/dist/react/internal.js.map +1 -1
- package/dist/react/shell/ManagedAppShell.d.ts +20 -0
- package/dist/react/shell/ManagedAppShell.d.ts.map +1 -1
- package/dist/react/shell/OrderEntryPanel.d.ts +73 -1
- package/dist/react/shell/OrderEntryPanel.d.ts.map +1 -1
- package/dist/react/shell/ScriptDrawer.d.ts +5 -1
- package/dist/react/shell/ScriptDrawer.d.ts.map +1 -1
- package/dist/react/shell/TradeDrawer.d.ts +8 -1
- package/dist/react/shell/TradeDrawer.d.ts.map +1 -1
- package/dist/react/shell/WatchlistDrawer.d.ts.map +1 -1
- package/dist/react/shell/useWatchlistQuotes.d.ts +1 -0
- package/dist/react/shell/useWatchlistQuotes.d.ts.map +1 -1
- package/dist/react/workspace/ChartWorkspace.d.ts +5 -1
- package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -1
- package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -1
- package/dist/react/workspace/TabBar.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/TopToolbar.d.ts +2 -1
- package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -1
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -1
- package/dist/services/serverClock.d.ts +61 -0
- package/dist/services/serverClock.d.ts.map +1 -0
- package/package.json +3 -2
- package/dist/pine/PineCompiler.d.ts.map +0 -1
- package/dist/pine/diagnostics.d.ts.map +0 -1
- package/dist/pine/index.d.ts.map +0 -1
- package/dist/pine/pine-ast.d.ts.map +0 -1
- package/dist/pine/pine-lexer.d.ts.map +0 -1
- package/dist/pine/pine-parser.d.ts +0 -51
- package/dist/pine/pine-parser.d.ts.map +0 -1
- package/dist/pine/pine-transpiler.d.ts.map +0 -1
- package/dist/tscript/TScriptIndicator.d.ts.map +0 -1
- package/dist/tscript/ast.d.ts +0 -89
- package/dist/tscript/ast.d.ts.map +0 -1
- package/dist/tscript/lexer.d.ts.map +0 -1
- package/dist/tscript/parser.d.ts.map +0 -1
- package/dist/tscript/runtime.d.ts +0 -123
- package/dist/tscript/runtime.d.ts.map +0 -1
- package/dist/tscript/series.d.ts.map +0 -1
- /package/dist/{pine → forgescript/pine}/diagnostics.d.ts +0 -0
- /package/dist/{pine → forgescript/pine}/index.d.ts +0 -0
- /package/dist/{pine → forgescript/pine}/pine-lexer.d.ts +0 -0
- /package/dist/{tscript → forgescript}/series.d.ts +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pine Script Parser — recursive-descent, produces a PineProgram AST.
|
|
3
|
+
*
|
|
4
|
+
* Handles Pine v5 and v6 constructs:
|
|
5
|
+
* indicator(), input.*(), ta.*(), math.*(), str.*(), plot(), plotshape()
|
|
6
|
+
* var / varip declarations
|
|
7
|
+
* := reassignment
|
|
8
|
+
* if / else (indented blocks)
|
|
9
|
+
* switch statement/expression (v6+)
|
|
10
|
+
* while loop (v6+)
|
|
11
|
+
* for...in loop (v6+, emits unsupported diagnostic)
|
|
12
|
+
* type / method / enum declarations (v6+, silently skipped)
|
|
13
|
+
* import / export statements (v6+, silently skipped)
|
|
14
|
+
* ternary a ? b : c
|
|
15
|
+
* namespace.member and namespace.call(...)
|
|
16
|
+
*/
|
|
17
|
+
import type { PineProgram } from './pine-ast';
|
|
18
|
+
export declare class PineParser {
|
|
19
|
+
private _tokens;
|
|
20
|
+
private _pos;
|
|
21
|
+
readonly version: number;
|
|
22
|
+
constructor(src: string);
|
|
23
|
+
parse(): PineProgram;
|
|
24
|
+
private _stmt;
|
|
25
|
+
private _varDecl;
|
|
26
|
+
private _assignStmt;
|
|
27
|
+
private _indicatorDecl;
|
|
28
|
+
private _ifStmt;
|
|
29
|
+
private _indentedBlock;
|
|
30
|
+
/**
|
|
31
|
+
* switch expr
|
|
32
|
+
* val1 => body ← single-line
|
|
33
|
+
* val2 => ← multi-line
|
|
34
|
+
* stmt1
|
|
35
|
+
* => defaultBody ← default / else (no condition)
|
|
36
|
+
*
|
|
37
|
+
* OR boolean-style (no subject):
|
|
38
|
+
* switch
|
|
39
|
+
* cond1 => body
|
|
40
|
+
* cond2 => body
|
|
41
|
+
* => defaultBody
|
|
42
|
+
*/
|
|
43
|
+
private _switchStmt;
|
|
44
|
+
/** Parse single-line body (after =>) OR consume NL and parse an indented block. */
|
|
45
|
+
private _singleLineOrBlock;
|
|
46
|
+
private _whileStmt;
|
|
47
|
+
private _forInStmt;
|
|
48
|
+
/**
|
|
49
|
+
* type MyType
|
|
50
|
+
* float field1 = 0
|
|
51
|
+
* int field2 = 0
|
|
52
|
+
*
|
|
53
|
+
* We parse the name and skip the indented field block.
|
|
54
|
+
*/
|
|
55
|
+
private _typeDefStmt;
|
|
56
|
+
/**
|
|
57
|
+
* import username/libraryname/version as alias
|
|
58
|
+
*/
|
|
59
|
+
private _importStmt;
|
|
60
|
+
/**
|
|
61
|
+
* Returns true if the current position looks like a user-defined function
|
|
62
|
+
* declaration: `IDENT '(' ... ')' '=>'`.
|
|
63
|
+
* Scans forward to find the matching RPAREN, then checks for ARROW.
|
|
64
|
+
*/
|
|
65
|
+
private _looksLikeFuncDef;
|
|
66
|
+
/**
|
|
67
|
+
* Skip a user-defined function declaration and its body.
|
|
68
|
+
*
|
|
69
|
+
* funcname(param, ...) =>
|
|
70
|
+
* body
|
|
71
|
+
*
|
|
72
|
+
* OR single-line:
|
|
73
|
+
* funcname(params) => expr
|
|
74
|
+
*
|
|
75
|
+
* Emits no output — user-defined functions are unsupported in ForgeScript.
|
|
76
|
+
*/
|
|
77
|
+
private _funcDefStmt;
|
|
78
|
+
/** Skip to end of current line (consumes any tokens before NEWLINE/EOF). */
|
|
79
|
+
private _skipToNL;
|
|
80
|
+
/** Skip a full INDENT…DEDENT block, handling nesting. Does nothing if no INDENT. */
|
|
81
|
+
private _skipBlock;
|
|
82
|
+
private _expr;
|
|
83
|
+
private _ternary;
|
|
84
|
+
private _or;
|
|
85
|
+
private _and;
|
|
86
|
+
private _not;
|
|
87
|
+
private _comparison;
|
|
88
|
+
private _addition;
|
|
89
|
+
private _multiply;
|
|
90
|
+
private _unary;
|
|
91
|
+
private _postfix;
|
|
92
|
+
private _primary;
|
|
93
|
+
private _argList;
|
|
94
|
+
private _parseOneArg;
|
|
95
|
+
private _cur;
|
|
96
|
+
private _advance;
|
|
97
|
+
private _check;
|
|
98
|
+
private _checkIdent;
|
|
99
|
+
private _peekKind;
|
|
100
|
+
private _match;
|
|
101
|
+
private _consume;
|
|
102
|
+
private _skipNL;
|
|
103
|
+
private _consumeNLorEOF;
|
|
104
|
+
private _locOfCur;
|
|
105
|
+
private _locOf;
|
|
106
|
+
private _bin;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=pine-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pine-parser.d.ts","sourceRoot":"","sources":["../../../src/forgescript/pine/pine-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,YAAY,CAAC;AAGpB,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAQ;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,GAAG,EAAE,MAAM;IAMvB,KAAK,IAAI,WAAW;IAapB,OAAO,CAAC,KAAK;IA2Fb,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,cAAc;IAgBtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,WAAW;IAwCnB,mFAAmF;IACnF,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,UAAU;IA+BlB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;IAsBpB,4EAA4E;IAC5E,OAAO,CAAC,SAAS;IAOjB,oFAAoF;IACpF,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,GAAG;IAUX,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,QAAQ;IAmHhB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Pine Script →
|
|
2
|
+
* Pine Script → ForgeScript transpiler.
|
|
3
3
|
*
|
|
4
|
-
* Walks a `PineProgram` AST and emits a
|
|
5
|
-
* directly executable by the existing `
|
|
4
|
+
* Walks a `PineProgram` AST and emits a ForgeScript source string that is
|
|
5
|
+
* directly executable by the existing `ForgeScriptRuntime`.
|
|
6
|
+
* Supports Pine v5 and v6 constructs.
|
|
6
7
|
*/
|
|
7
8
|
import type { PineProgram } from './pine-ast';
|
|
8
9
|
import { DiagnosticBag } from './diagnostics';
|
|
@@ -18,11 +19,17 @@ export declare class PineTranspiler {
|
|
|
18
19
|
private _assign;
|
|
19
20
|
private _exprStmt;
|
|
20
21
|
private _ifStmt;
|
|
22
|
+
private _switchStmt;
|
|
23
|
+
private _whileStmt;
|
|
24
|
+
private _forInStmt;
|
|
21
25
|
private _expr;
|
|
22
26
|
private _numLit;
|
|
23
27
|
private _nsCall;
|
|
24
28
|
private _inputNsCall;
|
|
29
|
+
private _strNsCall;
|
|
25
30
|
private _call;
|
|
31
|
+
/** Transpile supported output functions, preserving named args */
|
|
32
|
+
private _outputFnCall;
|
|
26
33
|
private _plotCall;
|
|
27
34
|
private _member;
|
|
28
35
|
private _binary;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pine-transpiler.d.ts","sourceRoot":"","sources":["../../../src/forgescript/pine/pine-transpiler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkG9C,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,EAAE,aAAa;IAI/B,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IAWpC,OAAO,CAAC,KAAK;IAeb,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,OAAO;IAmEf,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,KAAK;IAiCb,kEAAkE;IAClE,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,KAAK;CAId"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TScript Runtime — tree-walking interpreter.
|
|
3
|
+
*
|
|
4
|
+
* Execution model
|
|
5
|
+
* ───────────────
|
|
6
|
+
* A TScript program is executed once per compiled bar in left-to-right,
|
|
7
|
+
* top-to-bottom statement order. The runtime keeps a persistent `Scope`
|
|
8
|
+
* so that `Series` variables accumulate history across bars.
|
|
9
|
+
*
|
|
10
|
+
* Built-in series (available in every script):
|
|
11
|
+
* open, high, low, close, volume, hl2, hlc3, ohlc4, bar_index
|
|
12
|
+
*
|
|
13
|
+
* Built-in TA functions:
|
|
14
|
+
* sma(src, length) — simple moving average
|
|
15
|
+
* ema(src, length) — exponential moving average
|
|
16
|
+
* wma(src, length) — weighted moving average
|
|
17
|
+
* rma(src, length) — Wilder's (RMA) moving average
|
|
18
|
+
* stdev(src, length) — rolling standard deviation
|
|
19
|
+
* highest(src, n) — rolling max over n bars
|
|
20
|
+
* lowest(src, n) — rolling min over n bars
|
|
21
|
+
* change(src, n?) — src - src[n] (default n=1)
|
|
22
|
+
* mom(src, length) — momentum = change(src, length)
|
|
23
|
+
* atr(length) — Average True Range
|
|
24
|
+
* crossover(a, b) — a crosses above b
|
|
25
|
+
* crossunder(a, b) — a crosses below b
|
|
26
|
+
* nz(x, y?) — replace NaN with y (default 0)
|
|
27
|
+
* na(x) — true if x is NaN
|
|
28
|
+
* abs(x) — Math.abs
|
|
29
|
+
* max(...) — Math.max over args
|
|
30
|
+
* min(...) — Math.min over args
|
|
31
|
+
* round(x) — Math.round
|
|
32
|
+
* floor(x) — Math.floor
|
|
33
|
+
* ceil(x) — Math.ceil
|
|
34
|
+
* sqrt(x) — Math.sqrt
|
|
35
|
+
* log(x) — Math.log
|
|
36
|
+
* pow(x, y) — Math.pow
|
|
37
|
+
* sign(x) — Math.sign
|
|
38
|
+
*
|
|
39
|
+
* Built-in utility functions:
|
|
40
|
+
* input(default, ...) — returns the default value (params resolved externally)
|
|
41
|
+
* plot(value, ...) — records a value for the current bar
|
|
42
|
+
* barssince(cond) — bars since condition was true
|
|
43
|
+
*/
|
|
44
|
+
import type { OHLCV } from '@forgecharts/types';
|
|
45
|
+
import { Series } from './series';
|
|
46
|
+
import type { IndicatorPoint } from '../core/IndicatorEngine';
|
|
47
|
+
/** Runtime array type — wraps a JS array of TValues. */
|
|
48
|
+
export declare class TArray {
|
|
49
|
+
items: TValue[];
|
|
50
|
+
constructor(items?: TValue[]);
|
|
51
|
+
size(): number;
|
|
52
|
+
get(i: number): TValue;
|
|
53
|
+
set(i: number, v: TValue): void;
|
|
54
|
+
push(v: TValue): void;
|
|
55
|
+
pop(): TValue;
|
|
56
|
+
remove(i: number): TValue;
|
|
57
|
+
clear(): void;
|
|
58
|
+
includes(v: TValue): boolean;
|
|
59
|
+
indexOf(v: TValue): number;
|
|
60
|
+
slice(start: number, end?: number): TArray;
|
|
61
|
+
join(sep: string): string;
|
|
62
|
+
}
|
|
63
|
+
/** A TScript value is a number, boolean, string, Series, or TArray. */
|
|
64
|
+
export type TValue = number | boolean | string | Series | TArray;
|
|
65
|
+
/** Scope maps variable names to their TScript values. */
|
|
66
|
+
export type Scope = Map<string, TValue>;
|
|
67
|
+
/** Metadata for a study output line/shape/fill. */
|
|
68
|
+
export interface PlotMeta {
|
|
69
|
+
title: string;
|
|
70
|
+
color?: string;
|
|
71
|
+
linewidth?: number;
|
|
72
|
+
style: string;
|
|
73
|
+
}
|
|
74
|
+
/** A horizontal reference line. */
|
|
75
|
+
export interface HLineMeta {
|
|
76
|
+
id: string;
|
|
77
|
+
price: number;
|
|
78
|
+
title?: string;
|
|
79
|
+
color: string;
|
|
80
|
+
lineStyle: string;
|
|
81
|
+
lineWidth: number;
|
|
82
|
+
}
|
|
83
|
+
/** A fill between two references. */
|
|
84
|
+
export interface FillMeta {
|
|
85
|
+
id1: string;
|
|
86
|
+
id2: string;
|
|
87
|
+
color: string;
|
|
88
|
+
title?: string;
|
|
89
|
+
}
|
|
90
|
+
/** A bar background color entry. */
|
|
91
|
+
export interface BgColorEntry {
|
|
92
|
+
time: number;
|
|
93
|
+
color: string;
|
|
94
|
+
}
|
|
95
|
+
/** A bar color override entry. */
|
|
96
|
+
export interface BarColorEntry {
|
|
97
|
+
time: number;
|
|
98
|
+
color: string;
|
|
99
|
+
}
|
|
100
|
+
/** A shape marker on a bar. */
|
|
101
|
+
export interface ShapeEntry {
|
|
102
|
+
time: number;
|
|
103
|
+
style: string;
|
|
104
|
+
location: string;
|
|
105
|
+
color: string;
|
|
106
|
+
text?: string;
|
|
107
|
+
title?: string;
|
|
108
|
+
}
|
|
109
|
+
/** A single cell in a table. */
|
|
110
|
+
export interface TableCellEntry {
|
|
111
|
+
row: number;
|
|
112
|
+
col: number;
|
|
113
|
+
text: string;
|
|
114
|
+
textColor: string;
|
|
115
|
+
bgColor: string;
|
|
116
|
+
textSize: string;
|
|
117
|
+
textHAlign: string;
|
|
118
|
+
textVAlign: string;
|
|
119
|
+
}
|
|
120
|
+
/** A screen-positioned table/text panel. */
|
|
121
|
+
export interface TableEntry {
|
|
122
|
+
id: string;
|
|
123
|
+
position: string;
|
|
124
|
+
rows: number;
|
|
125
|
+
cols: number;
|
|
126
|
+
cells: TableCellEntry[];
|
|
127
|
+
bgColor: string;
|
|
128
|
+
borderColor: string;
|
|
129
|
+
borderWidth: number;
|
|
130
|
+
frameColor: string;
|
|
131
|
+
frameWidth: number;
|
|
132
|
+
}
|
|
133
|
+
/** Result produced by a single script execution run. */
|
|
134
|
+
export type ScriptResult = {
|
|
135
|
+
/** Title from indicator("...") declaration. */
|
|
136
|
+
title: string;
|
|
137
|
+
/** Collected plot() calls for this run, in declaration order. */
|
|
138
|
+
plots: IndicatorPoint[][];
|
|
139
|
+
/** Metadata for each plot (color, title, linewidth, style). */
|
|
140
|
+
plotMetas: PlotMeta[];
|
|
141
|
+
/** Horizontal reference lines from hline() calls. */
|
|
142
|
+
hlines: HLineMeta[];
|
|
143
|
+
/** Fill instructions between plot pairs. */
|
|
144
|
+
fills: FillMeta[];
|
|
145
|
+
/** Per-bar background colors from bgcolor() calls. */
|
|
146
|
+
bgcolors: BgColorEntry[];
|
|
147
|
+
/** Per-bar bar color overrides from barcolor() calls. */
|
|
148
|
+
barcolors: BarColorEntry[];
|
|
149
|
+
/** Shape markers from plotshape/plotchar/plotarrow calls. */
|
|
150
|
+
shapes: ShapeEntry[];
|
|
151
|
+
/** Screen-positioned tables (text panels). */
|
|
152
|
+
tables: TableEntry[];
|
|
153
|
+
/** Whether the indicator is an overlay. */
|
|
154
|
+
overlay: boolean;
|
|
155
|
+
};
|
|
156
|
+
export declare class ForgeScriptRuntime {
|
|
157
|
+
private readonly _program;
|
|
158
|
+
private readonly _scope;
|
|
159
|
+
private readonly _plotSeries;
|
|
160
|
+
private readonly _plotMetas;
|
|
161
|
+
private readonly _hlines;
|
|
162
|
+
private readonly _fills;
|
|
163
|
+
private readonly _bgcolors;
|
|
164
|
+
private readonly _barcolors;
|
|
165
|
+
private readonly _shapes;
|
|
166
|
+
private readonly _tables;
|
|
167
|
+
private readonly _functions;
|
|
168
|
+
/** Tracks which vars have been initialized (for var/varip init-once semantics). */
|
|
169
|
+
private readonly _varInitialized;
|
|
170
|
+
/** varip variables update intra-bar; we track their names to handle them differently. */
|
|
171
|
+
private readonly _varipNames;
|
|
172
|
+
/** Current bar index for use in output functions. */
|
|
173
|
+
private _barIndex;
|
|
174
|
+
/** Total number of bars in the current run (for barstate). */
|
|
175
|
+
private _totalBars;
|
|
176
|
+
/** Current bar for output timestamp. */
|
|
177
|
+
private _currentBar;
|
|
178
|
+
/** Whether this indicator is an overlay. */
|
|
179
|
+
private _overlay;
|
|
180
|
+
title: string;
|
|
181
|
+
constructor(src: string);
|
|
182
|
+
/**
|
|
183
|
+
* Execute one bar.
|
|
184
|
+
*
|
|
185
|
+
* Call this in chronological order for every OHLCV bar.
|
|
186
|
+
* The runtime updates all built-in series with the bar's OHLCV values,
|
|
187
|
+
* then re-executes the full program body.
|
|
188
|
+
*
|
|
189
|
+
* @returns the current values of all `plot()` series after this bar.
|
|
190
|
+
*/
|
|
191
|
+
execBar(bar: OHLCV, barIndex: number): void;
|
|
192
|
+
/**
|
|
193
|
+
* Run the full bar history and return IndicatorPoint arrays indexed by
|
|
194
|
+
* plot() call order.
|
|
195
|
+
*
|
|
196
|
+
* @param bars chronologically ordered OHLCV array
|
|
197
|
+
*/
|
|
198
|
+
run(bars: readonly OHLCV[]): IndicatorPoint[][];
|
|
199
|
+
/** Set total bar count for barstate properties (call before execBar loop). */
|
|
200
|
+
setTotalBars(n: number): void;
|
|
201
|
+
/**
|
|
202
|
+
* Snapshot the current plot series as IndicatorPoint arrays.
|
|
203
|
+
* Must be called after `run()` or after the last `execBar()`.
|
|
204
|
+
* @param bars the same bar array passed to run() — used for timestamps.
|
|
205
|
+
*/
|
|
206
|
+
getPlots(bars: readonly OHLCV[]): IndicatorPoint[][];
|
|
207
|
+
/** Return the full script result including all output types. */
|
|
208
|
+
getResult(bars: readonly OHLCV[]): ScriptResult;
|
|
209
|
+
/** Reset all persistent series state (call on symbol/timeframe change). */
|
|
210
|
+
reset(): void;
|
|
211
|
+
private _execStmt;
|
|
212
|
+
private _execIf;
|
|
213
|
+
private _execWhile;
|
|
214
|
+
private _execFor;
|
|
215
|
+
/** var / varip — only initialize on the first bar (bar_index 0). */
|
|
216
|
+
private _execVarDecl;
|
|
217
|
+
/** := reassignment — variable must already exist. */
|
|
218
|
+
private _execReassign;
|
|
219
|
+
private _execAssign;
|
|
220
|
+
private _evalExpr;
|
|
221
|
+
private _evalIdent;
|
|
222
|
+
private _evalIndex;
|
|
223
|
+
private _evalBinary;
|
|
224
|
+
private _evalUnary;
|
|
225
|
+
private _evalTernary;
|
|
226
|
+
private _evalLogical;
|
|
227
|
+
private _evalNsCall;
|
|
228
|
+
private _evalTaCall;
|
|
229
|
+
private _evalMathCall;
|
|
230
|
+
private _evalColorCall;
|
|
231
|
+
private _evalStrCall;
|
|
232
|
+
private static readonly _COLOR_MAP;
|
|
233
|
+
private _evalMember;
|
|
234
|
+
private _plotIdx;
|
|
235
|
+
private _evalCall;
|
|
236
|
+
/** Resolve a call argument as a Series (wrapping scalar if needed). */
|
|
237
|
+
private _argSeries;
|
|
238
|
+
private _argInt;
|
|
239
|
+
private _ta_rsi;
|
|
240
|
+
private _ta_sma;
|
|
241
|
+
private _ta_ema;
|
|
242
|
+
private _ta_wma;
|
|
243
|
+
private _ta_rma;
|
|
244
|
+
private _ta_stdev;
|
|
245
|
+
private _ta_rolling;
|
|
246
|
+
private _ta_change;
|
|
247
|
+
private _ta_atr;
|
|
248
|
+
private _ta_crossover;
|
|
249
|
+
private _ta_crossunder;
|
|
250
|
+
private _ta_barssince;
|
|
251
|
+
/** ta.cross(a, b) — true when a crosses b in either direction */
|
|
252
|
+
private _ta_cross;
|
|
253
|
+
/** ta.macd(src, fast, slow, signal) — returns [macd, signal, hist] via internal series */
|
|
254
|
+
private _ta_macd;
|
|
255
|
+
/** ta.bb(src, length, mult) — returns middle band; stores upper/lower in named series */
|
|
256
|
+
private _ta_bb;
|
|
257
|
+
/** ta.stoch(source, high, low, length) — %K */
|
|
258
|
+
private _ta_stoch;
|
|
259
|
+
/** ta.obv — On Balance Volume */
|
|
260
|
+
private _ta_obv;
|
|
261
|
+
/** ta.correlation(src1, src2, length) — Pearson r */
|
|
262
|
+
private _ta_correlation;
|
|
263
|
+
/** ta.dev(src, length) — mean absolute deviation */
|
|
264
|
+
private _ta_dev;
|
|
265
|
+
/** ta.variance(src, length) */
|
|
266
|
+
private _ta_variance;
|
|
267
|
+
/** ta.cum(src) — cumulative sum */
|
|
268
|
+
private _ta_cum;
|
|
269
|
+
/** ta.sum(src, length) — rolling sum */
|
|
270
|
+
private _ta_sum;
|
|
271
|
+
/** ta.valuewhen(condition, source, occurrence) */
|
|
272
|
+
private _ta_valuewhen;
|
|
273
|
+
/** ta.pivothigh(src, leftbars, rightbars) */
|
|
274
|
+
private _ta_pivothigh;
|
|
275
|
+
/** ta.pivotlow(src, leftbars, rightbars) */
|
|
276
|
+
private _ta_pivotlow;
|
|
277
|
+
/** ta.tr(handleNa?) — True Range */
|
|
278
|
+
private _ta_tr;
|
|
279
|
+
/** ta.swma(src) — Symmetrically Weighted MA with fixed period 4 */
|
|
280
|
+
private _ta_swma;
|
|
281
|
+
/** ta.vwma(src, length) — Volume Weighted MA */
|
|
282
|
+
private _ta_vwma;
|
|
283
|
+
/** ta.rising(src, length) */
|
|
284
|
+
private _ta_rising;
|
|
285
|
+
/** ta.falling(src, length) */
|
|
286
|
+
private _ta_falling;
|
|
287
|
+
private _callPlotshape;
|
|
288
|
+
private _callPlotarrow;
|
|
289
|
+
private _callHline;
|
|
290
|
+
private _callFill;
|
|
291
|
+
private _callBgcolor;
|
|
292
|
+
private _callBarcolor;
|
|
293
|
+
private _evalArrayCall;
|
|
294
|
+
private _evalInputNsCall;
|
|
295
|
+
private _tableCounter;
|
|
296
|
+
private _evalTableCall;
|
|
297
|
+
private _callUserFunction;
|
|
298
|
+
/** Persistent scalar state for stateful TA functions (EMA, RMA, ATR). */
|
|
299
|
+
private readonly _internalState;
|
|
300
|
+
private _getInternalNum;
|
|
301
|
+
private _setInternal;
|
|
302
|
+
/** Push a value into a named built-in Series, creating it if needed. */
|
|
303
|
+
private _pushBuiltin;
|
|
304
|
+
/** Compute a simple rolling average directly from a Series (no state). */
|
|
305
|
+
private _smaOfSeries;
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/forgescript/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../../src/forgescript/series.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,IAAI,CAAc;gBAEd,QAAQ,SAAO;IAK3B,sDAAsD;IACtD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzB;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAO7B,wBAAwB;IACxB,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gDAAgD;IAChD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,4BAA4B;IAC5B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM,EAAE;IAQnB,gDAAgD;IAChD,KAAK,IAAI,IAAI;CAKd"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,18 +2,21 @@ export { createChart } from './api/createChart';
|
|
|
2
2
|
export { TChart } from './api/TChart';
|
|
3
3
|
export { ReferenceAPI } from './api/ReferenceAPI';
|
|
4
4
|
export type { ReferenceAPIConfig } from './api/ReferenceAPI';
|
|
5
|
+
export { serverNow, exchangeNow, serverClockOffset, initServerClock } from './services/serverClock';
|
|
5
6
|
export { DatafeedConnector } from './datafeed/DatafeedConnector';
|
|
6
7
|
export type { ConnectorCallbacks } from './datafeed/DatafeedConnector';
|
|
7
8
|
export { computeSMA, computeEMA, computeRSI, computeMACD, computeVolume, extractField, computeSMAFromSeries, computeEMAFromSeries, computeWMAFromSeries, } from './core/IndicatorEngine';
|
|
8
9
|
export type { IndicatorPoint, MACDPoint } from './core/IndicatorEngine';
|
|
9
10
|
export { IndicatorDAG } from './api/IndicatorDAG';
|
|
10
11
|
export type { DAGResult } from './api/IndicatorDAG';
|
|
11
|
-
export {
|
|
12
|
-
export { Series as
|
|
13
|
-
export {
|
|
14
|
-
export type { TValue, ScriptResult } from './
|
|
15
|
-
export { PineCompiler, DiagnosticBag } from './pine';
|
|
16
|
-
export type { PineCompileResult, Diagnostic, DiagnosticSeverity } from './pine';
|
|
12
|
+
export { ForgeScriptIndicator } from './forgescript/ForgeScriptIndicator';
|
|
13
|
+
export { Series as ForgeScriptSeries } from './forgescript/series';
|
|
14
|
+
export { ForgeScriptRuntime } from './forgescript/runtime';
|
|
15
|
+
export type { TValue, ScriptResult, TableEntry, TableCellEntry } from './forgescript/runtime';
|
|
16
|
+
export { PineCompiler, DiagnosticBag } from './forgescript/pine';
|
|
17
|
+
export type { PineCompileResult, Diagnostic, DiagnosticSeverity } from './forgescript/pine';
|
|
18
|
+
export { convertScript, detectLanguage, detectLanguageWithFallback, validateForgeScript, runSandbox, evaluateSaveGate, runAIConversion, parseAIResponse, getSystemPrompt, buildConversionPrompt, FORGESCRIPT_REFERENCE, onConversionEvent, clearTelemetryListeners, } from './forgescript/conversion';
|
|
19
|
+
export type { SourceLanguage, Confidence, LanguageDetectionResult, ConversionPath, ConversionWarning, ConversionResult, ConversionOptions, ValidationIssue, ValidationResult, SandboxResult, SaveGateCheck, AIConversionResponse, LLMProvider, ChatMessage, ConversionTelemetryEvent, } from './forgescript/conversion';
|
|
17
20
|
export { PaneManager } from './api/PaneManager';
|
|
18
21
|
export { CoordTransform } from './core/CoordTransform';
|
|
19
22
|
export type { PlotArea } from './core/CoordTransform';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,EAEb,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|