openalgo-script 0.1.0-alpha.1 → 0.2.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.
- package/CHANGELOG.md +1200 -0
- package/README.md +49 -28
- package/dist/adapters/charts/alerts.d.ts +70 -0
- package/dist/adapters/charts/alerts.d.ts.map +1 -0
- package/dist/adapters/charts/alerts.js +52 -0
- package/dist/adapters/charts/alerts.js.map +1 -0
- package/dist/adapters/charts/bars.d.ts +39 -0
- package/dist/adapters/charts/bars.d.ts.map +1 -0
- package/dist/adapters/charts/bars.js +32 -0
- package/dist/adapters/charts/bars.js.map +1 -0
- package/dist/adapters/charts/candles.d.ts +40 -0
- package/dist/adapters/charts/candles.d.ts.map +1 -0
- package/dist/adapters/charts/candles.js +85 -0
- package/dist/adapters/charts/candles.js.map +1 -0
- package/dist/adapters/charts/colours.d.ts +47 -0
- package/dist/adapters/charts/colours.d.ts.map +1 -0
- package/dist/adapters/charts/colours.js +80 -0
- package/dist/adapters/charts/colours.js.map +1 -0
- package/dist/adapters/charts/columns.d.ts +37 -0
- package/dist/adapters/charts/columns.d.ts.map +1 -0
- package/dist/adapters/charts/columns.js +56 -0
- package/dist/adapters/charts/columns.js.map +1 -0
- package/dist/adapters/charts/contract.d.ts +278 -0
- package/dist/adapters/charts/contract.d.ts.map +1 -0
- package/dist/adapters/charts/contract.js +2 -0
- package/dist/adapters/charts/contract.js.map +1 -0
- package/dist/adapters/charts/descriptor.d.ts +48 -0
- package/dist/adapters/charts/descriptor.d.ts.map +1 -0
- package/dist/adapters/charts/descriptor.js +111 -0
- package/dist/adapters/charts/descriptor.js.map +1 -0
- package/dist/adapters/charts/drawings.d.ts +43 -0
- package/dist/adapters/charts/drawings.d.ts.map +1 -0
- package/dist/adapters/charts/drawings.js +172 -0
- package/dist/adapters/charts/drawings.js.map +1 -0
- package/dist/adapters/charts/errors.d.ts +28 -0
- package/dist/adapters/charts/errors.d.ts.map +1 -0
- package/dist/adapters/charts/errors.js +21 -0
- package/dist/adapters/charts/errors.js.map +1 -0
- package/dist/adapters/charts/fields.d.ts +33 -0
- package/dist/adapters/charts/fields.d.ts.map +1 -0
- package/dist/adapters/charts/fields.js +51 -0
- package/dist/adapters/charts/fields.js.map +1 -0
- package/dist/adapters/charts/fills.d.ts +23 -0
- package/dist/adapters/charts/fills.d.ts.map +1 -0
- package/dist/adapters/charts/fills.js +48 -0
- package/dist/adapters/charts/fills.js.map +1 -0
- package/dist/adapters/charts/index.d.ts +37 -0
- package/dist/adapters/charts/index.d.ts.map +1 -0
- package/dist/adapters/charts/index.js +33 -0
- package/dist/adapters/charts/index.js.map +1 -0
- package/dist/adapters/charts/levels.d.ts +39 -0
- package/dist/adapters/charts/levels.d.ts.map +1 -0
- package/dist/adapters/charts/levels.js +61 -0
- package/dist/adapters/charts/levels.js.map +1 -0
- package/dist/adapters/charts/markers.d.ts +41 -0
- package/dist/adapters/charts/markers.d.ts.map +1 -0
- package/dist/adapters/charts/markers.js +75 -0
- package/dist/adapters/charts/markers.js.map +1 -0
- package/dist/adapters/charts/paint.d.ts +61 -0
- package/dist/adapters/charts/paint.d.ts.map +1 -0
- package/dist/adapters/charts/paint.js +47 -0
- package/dist/adapters/charts/paint.js.map +1 -0
- package/dist/adapters/charts/plots.d.ts +39 -0
- package/dist/adapters/charts/plots.d.ts.map +1 -0
- package/dist/adapters/charts/plots.js +117 -0
- package/dist/adapters/charts/plots.js.map +1 -0
- package/dist/adapters/charts/produced.d.ts +57 -0
- package/dist/adapters/charts/produced.d.ts.map +1 -0
- package/dist/adapters/charts/produced.js +11 -0
- package/dist/adapters/charts/produced.js.map +1 -0
- package/dist/adapters/charts/requests.d.ts +114 -0
- package/dist/adapters/charts/requests.d.ts.map +1 -0
- package/dist/adapters/charts/requests.js +277 -0
- package/dist/adapters/charts/requests.js.map +1 -0
- package/dist/adapters/charts/run.d.ts +147 -0
- package/dist/adapters/charts/run.d.ts.map +1 -0
- package/dist/adapters/charts/run.js +148 -0
- package/dist/adapters/charts/run.js.map +1 -0
- package/dist/adapters/charts/settings.d.ts +78 -0
- package/dist/adapters/charts/settings.d.ts.map +1 -0
- package/dist/adapters/charts/settings.js +225 -0
- package/dist/adapters/charts/settings.js.map +1 -0
- package/dist/adapters/charts/surfaces.d.ts +204 -0
- package/dist/adapters/charts/surfaces.d.ts.map +1 -0
- package/dist/adapters/charts/surfaces.js +2 -0
- package/dist/adapters/charts/surfaces.js.map +1 -0
- package/dist/adapters/charts/tables.d.ts +65 -0
- package/dist/adapters/charts/tables.d.ts.map +1 -0
- package/dist/adapters/charts/tables.js +84 -0
- package/dist/adapters/charts/tables.js.map +1 -0
- package/dist/core/catalogue/catalogue.generated.d.ts +98 -10
- package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
- package/dist/core/catalogue/catalogue.generated.js +17 -9
- package/dist/core/catalogue/catalogue.generated.js.map +1 -1
- package/dist/core/catalogue/values.generated.d.ts +25 -0
- package/dist/core/catalogue/values.generated.d.ts.map +1 -1
- package/dist/core/check/arguments.d.ts +41 -0
- package/dist/core/check/arguments.d.ts.map +1 -0
- package/dist/core/check/arguments.js +84 -0
- package/dist/core/check/arguments.js.map +1 -0
- package/dist/core/check/call-sites.d.ts +22 -0
- package/dist/core/check/call-sites.d.ts.map +1 -0
- package/dist/core/check/call-sites.js +329 -0
- package/dist/core/check/call-sites.js.map +1 -0
- package/dist/core/check/call-warmup.d.ts +37 -0
- package/dist/core/check/call-warmup.d.ts.map +1 -0
- package/dist/core/check/call-warmup.js +97 -0
- package/dist/core/check/call-warmup.js.map +1 -0
- package/dist/core/check/calls.d.ts +33 -0
- package/dist/core/check/calls.d.ts.map +1 -0
- package/dist/core/check/calls.js +348 -0
- package/dist/core/check/calls.js.map +1 -0
- package/dist/core/check/check.d.ts +23 -0
- package/dist/core/check/check.d.ts.map +1 -0
- package/dist/core/check/check.js +163 -0
- package/dist/core/check/check.js.map +1 -0
- package/dist/core/check/checked.d.ts +198 -0
- package/dist/core/check/checked.d.ts.map +1 -0
- package/dist/core/check/checked.js +19 -0
- package/dist/core/check/checked.js.map +1 -0
- package/dist/core/check/checker.d.ts +182 -0
- package/dist/core/check/checker.d.ts.map +1 -0
- package/dist/core/check/checker.js +280 -0
- package/dist/core/check/checker.js.map +1 -0
- package/dist/core/check/conditional.d.ts +35 -0
- package/dist/core/check/conditional.d.ts.map +1 -0
- package/dist/core/check/conditional.js +100 -0
- package/dist/core/check/conditional.js.map +1 -0
- package/dist/core/check/constant.d.ts +47 -0
- package/dist/core/check/constant.d.ts.map +1 -0
- package/dist/core/check/constant.js +101 -0
- package/dist/core/check/constant.js.map +1 -0
- package/dist/core/check/declaration.d.ts +33 -0
- package/dist/core/check/declaration.d.ts.map +1 -0
- package/dist/core/check/declaration.js +181 -0
- package/dist/core/check/declaration.js.map +1 -0
- package/dist/core/check/expressions.d.ts +36 -0
- package/dist/core/check/expressions.d.ts.map +1 -0
- package/dist/core/check/expressions.js +398 -0
- package/dist/core/check/expressions.js.map +1 -0
- package/dist/core/check/functions.d.ts +31 -0
- package/dist/core/check/functions.d.ts.map +1 -0
- package/dist/core/check/functions.js +238 -0
- package/dist/core/check/functions.js.map +1 -0
- package/dist/core/check/handles.d.ts +48 -0
- package/dist/core/check/handles.d.ts.map +1 -0
- package/dist/core/check/handles.js +43 -0
- package/dist/core/check/handles.js.map +1 -0
- package/dist/core/check/index.d.ts +30 -0
- package/dist/core/check/index.d.ts.map +1 -0
- package/dist/core/check/index.js +26 -0
- package/dist/core/check/index.js.map +1 -0
- package/dist/core/check/library-bars.d.ts +7 -0
- package/dist/core/check/library-bars.d.ts.map +1 -0
- package/dist/core/check/library-bars.js +181 -0
- package/dist/core/check/library-bars.js.map +1 -0
- package/dist/core/check/library-orders.d.ts +5 -0
- package/dist/core/check/library-orders.d.ts.map +1 -0
- package/dist/core/check/library-orders.js +250 -0
- package/dist/core/check/library-orders.js.map +1 -0
- package/dist/core/check/library-output.d.ts +7 -0
- package/dist/core/check/library-output.d.ts.map +1 -0
- package/dist/core/check/library-output.js +195 -0
- package/dist/core/check/library-output.js.map +1 -0
- package/dist/core/check/library-series.d.ts +3 -0
- package/dist/core/check/library-series.d.ts.map +1 -0
- package/dist/core/check/library-series.js +415 -0
- package/dist/core/check/library-series.js.map +1 -0
- package/dist/core/check/library.d.ts +204 -0
- package/dist/core/check/library.d.ts.map +1 -0
- package/dist/core/check/library.js +198 -0
- package/dist/core/check/library.js.map +1 -0
- package/dist/core/check/literals.d.ts +19 -0
- package/dist/core/check/literals.d.ts.map +1 -0
- package/dist/core/check/literals.js +22 -0
- package/dist/core/check/literals.js.map +1 -0
- package/dist/core/check/outputs.d.ts +31 -0
- package/dist/core/check/outputs.d.ts.map +1 -0
- package/dist/core/check/outputs.js +113 -0
- package/dist/core/check/outputs.js.map +1 -0
- package/dist/core/check/statements.d.ts +25 -0
- package/dist/core/check/statements.d.ts.map +1 -0
- package/dist/core/check/statements.js +377 -0
- package/dist/core/check/statements.js.map +1 -0
- package/dist/core/check/suggest.d.ts +25 -0
- package/dist/core/check/suggest.d.ts.map +1 -0
- package/dist/core/check/suggest.js +61 -0
- package/dist/core/check/suggest.js.map +1 -0
- package/dist/core/check/surface.d.ts +38 -0
- package/dist/core/check/surface.d.ts.map +1 -0
- package/dist/core/check/surface.js +100 -0
- package/dist/core/check/surface.js.map +1 -0
- package/dist/core/check/tags.d.ts +4 -0
- package/dist/core/check/tags.d.ts.map +1 -0
- package/dist/core/check/tags.js +54 -0
- package/dist/core/check/tags.js.map +1 -0
- package/dist/core/check/types.d.ts +153 -0
- package/dist/core/check/types.d.ts.map +1 -0
- package/dist/core/check/types.js +221 -0
- package/dist/core/check/types.js.map +1 -0
- package/dist/core/check/warmup.d.ts +73 -0
- package/dist/core/check/warmup.d.ts.map +1 -0
- package/dist/core/check/warmup.js +62 -0
- package/dist/core/check/warmup.js.map +1 -0
- package/dist/core/diagnostics/collector.d.ts +12 -0
- package/dist/core/diagnostics/collector.d.ts.map +1 -1
- package/dist/core/diagnostics/collector.js +27 -1
- package/dist/core/diagnostics/collector.js.map +1 -1
- package/dist/core/emit/calls.d.ts +38 -0
- package/dist/core/emit/calls.d.ts.map +1 -0
- package/dist/core/emit/calls.js +347 -0
- package/dist/core/emit/calls.js.map +1 -0
- package/dist/core/emit/canonical.d.ts +39 -0
- package/dist/core/emit/canonical.d.ts.map +1 -0
- package/dist/core/emit/canonical.js +71 -0
- package/dist/core/emit/canonical.js.map +1 -0
- package/dist/core/emit/channels.d.ts +28 -0
- package/dist/core/emit/channels.d.ts.map +1 -0
- package/dist/core/emit/channels.js +110 -0
- package/dist/core/emit/channels.js.map +1 -0
- package/dist/core/emit/code.d.ts +75 -0
- package/dist/core/emit/code.d.ts.map +1 -0
- package/dist/core/emit/code.js +104 -0
- package/dist/core/emit/code.js.map +1 -0
- package/dist/core/emit/colours.d.ts +35 -0
- package/dist/core/emit/colours.d.ts.map +1 -0
- package/dist/core/emit/colours.js +50 -0
- package/dist/core/emit/colours.js.map +1 -0
- package/dist/core/emit/context.d.ts +271 -0
- package/dist/core/emit/context.d.ts.map +1 -0
- package/dist/core/emit/context.js +358 -0
- package/dist/core/emit/context.js.map +1 -0
- package/dist/core/emit/defaults.d.ts +45 -0
- package/dist/core/emit/defaults.d.ts.map +1 -0
- package/dist/core/emit/defaults.js +116 -0
- package/dist/core/emit/defaults.js.map +1 -0
- package/dist/core/emit/emit.d.ts +13 -0
- package/dist/core/emit/emit.d.ts.map +1 -0
- package/dist/core/emit/emit.js +281 -0
- package/dist/core/emit/emit.js.map +1 -0
- package/dist/core/emit/events.d.ts +21 -0
- package/dist/core/emit/events.d.ts.map +1 -0
- package/dist/core/emit/events.js +112 -0
- package/dist/core/emit/events.js.map +1 -0
- package/dist/core/emit/expressions.d.ts +23 -0
- package/dist/core/emit/expressions.d.ts.map +1 -0
- package/dist/core/emit/expressions.js +253 -0
- package/dist/core/emit/expressions.js.map +1 -0
- package/dist/core/emit/functions.d.ts +30 -0
- package/dist/core/emit/functions.d.ts.map +1 -0
- package/dist/core/emit/functions.js +171 -0
- package/dist/core/emit/functions.js.map +1 -0
- package/dist/core/emit/gaps.d.ts +34 -0
- package/dist/core/emit/gaps.d.ts.map +1 -0
- package/dist/core/emit/gaps.js +16 -0
- package/dist/core/emit/gaps.js.map +1 -0
- package/dist/core/emit/index.d.ts +29 -0
- package/dist/core/emit/index.d.ts.map +1 -0
- package/dist/core/emit/index.js +23 -0
- package/dist/core/emit/index.js.map +1 -0
- package/dist/core/emit/inputs.d.ts +47 -0
- package/dist/core/emit/inputs.d.ts.map +1 -0
- package/dist/core/emit/inputs.js +150 -0
- package/dist/core/emit/inputs.js.map +1 -0
- package/dist/core/emit/layout.d.ts +73 -0
- package/dist/core/emit/layout.d.ts.map +1 -0
- package/dist/core/emit/layout.js +126 -0
- package/dist/core/emit/layout.js.map +1 -0
- package/dist/core/emit/meta.d.ts +14 -0
- package/dist/core/emit/meta.d.ts.map +1 -0
- package/dist/core/emit/meta.js +68 -0
- package/dist/core/emit/meta.js.map +1 -0
- package/dist/core/emit/opcodes.d.ts +28 -0
- package/dist/core/emit/opcodes.d.ts.map +1 -0
- package/dist/core/emit/opcodes.js +137 -0
- package/dist/core/emit/opcodes.js.map +1 -0
- package/dist/core/emit/outputs.d.ts +67 -0
- package/dist/core/emit/outputs.d.ts.map +1 -0
- package/dist/core/emit/outputs.js +293 -0
- package/dist/core/emit/outputs.js.map +1 -0
- package/dist/core/emit/pool.d.ts +33 -0
- package/dist/core/emit/pool.d.ts.map +1 -0
- package/dist/core/emit/pool.js +79 -0
- package/dist/core/emit/pool.js.map +1 -0
- package/dist/core/emit/program.d.ts +333 -0
- package/dist/core/emit/program.d.ts.map +1 -0
- package/dist/core/emit/program.js +15 -0
- package/dist/core/emit/program.js.map +1 -0
- package/dist/core/emit/registers.d.ts +35 -0
- package/dist/core/emit/registers.d.ts.map +1 -0
- package/dist/core/emit/registers.js +170 -0
- package/dist/core/emit/registers.js.map +1 -0
- package/dist/core/emit/request-scope.d.ts +36 -0
- package/dist/core/emit/request-scope.d.ts.map +1 -0
- package/dist/core/emit/request-scope.js +41 -0
- package/dist/core/emit/request-scope.js.map +1 -0
- package/dist/core/emit/requests.d.ts +69 -0
- package/dist/core/emit/requests.d.ts.map +1 -0
- package/dist/core/emit/requests.js +230 -0
- package/dist/core/emit/requests.js.map +1 -0
- package/dist/core/emit/requires.d.ts +4 -0
- package/dist/core/emit/requires.d.ts.map +1 -0
- package/dist/core/emit/requires.js +71 -0
- package/dist/core/emit/requires.js.map +1 -0
- package/dist/core/emit/sha256.d.ts +24 -0
- package/dist/core/emit/sha256.d.ts.map +1 -0
- package/dist/core/emit/sha256.js +109 -0
- package/dist/core/emit/sha256.js.map +1 -0
- package/dist/core/emit/statements.d.ts +20 -0
- package/dist/core/emit/statements.d.ts.map +1 -0
- package/dist/core/emit/statements.js +393 -0
- package/dist/core/emit/statements.js.map +1 -0
- package/dist/core/emit/values.d.ts +80 -0
- package/dist/core/emit/values.d.ts.map +1 -0
- package/dist/core/emit/values.js +242 -0
- package/dist/core/emit/values.js.map +1 -0
- package/dist/core/engine/alerts.d.ts +66 -0
- package/dist/core/engine/alerts.d.ts.map +1 -0
- package/dist/core/engine/alerts.js +119 -0
- package/dist/core/engine/alerts.js.map +1 -0
- package/dist/core/engine/arithmetic.d.ts +82 -0
- package/dist/core/engine/arithmetic.d.ts.map +1 -0
- package/dist/core/engine/arithmetic.js +141 -0
- package/dist/core/engine/arithmetic.js.map +1 -0
- package/dist/core/engine/bars.d.ts +95 -0
- package/dist/core/engine/bars.d.ts.map +1 -0
- package/dist/core/engine/bars.js +133 -0
- package/dist/core/engine/bars.js.map +1 -0
- package/dist/core/engine/budget.d.ts +162 -0
- package/dist/core/engine/budget.d.ts.map +1 -0
- package/dist/core/engine/budget.js +188 -0
- package/dist/core/engine/budget.js.map +1 -0
- package/dist/core/engine/channels.d.ts +106 -0
- package/dist/core/engine/channels.d.ts.map +1 -0
- package/dist/core/engine/channels.js +99 -0
- package/dist/core/engine/channels.js.map +1 -0
- package/dist/core/engine/drawings.d.ts +64 -0
- package/dist/core/engine/drawings.d.ts.map +1 -0
- package/dist/core/engine/drawings.js +67 -0
- package/dist/core/engine/drawings.js.map +1 -0
- package/dist/core/engine/engine.d.ts +140 -0
- package/dist/core/engine/engine.d.ts.map +1 -0
- package/dist/core/engine/engine.js +405 -0
- package/dist/core/engine/engine.js.map +1 -0
- package/dist/core/engine/errors.d.ts +64 -0
- package/dist/core/engine/errors.d.ts.map +1 -0
- package/dist/core/engine/errors.js +63 -0
- package/dist/core/engine/errors.js.map +1 -0
- package/dist/core/engine/frames.d.ts +48 -0
- package/dist/core/engine/frames.d.ts.map +1 -0
- package/dist/core/engine/frames.js +41 -0
- package/dist/core/engine/frames.js.map +1 -0
- package/dist/core/engine/grids.d.ts +25 -0
- package/dist/core/engine/grids.d.ts.map +1 -0
- package/dist/core/engine/grids.js +77 -0
- package/dist/core/engine/grids.js.map +1 -0
- package/dist/core/engine/guard.d.ts +4 -0
- package/dist/core/engine/guard.d.ts.map +1 -0
- package/dist/core/engine/guard.js +46 -0
- package/dist/core/engine/guard.js.map +1 -0
- package/dist/core/engine/host.d.ts +219 -0
- package/dist/core/engine/host.d.ts.map +1 -0
- package/dist/core/engine/host.js +38 -0
- package/dist/core/engine/host.js.map +1 -0
- package/dist/core/engine/index.d.ts +49 -0
- package/dist/core/engine/index.d.ts.map +1 -0
- package/dist/core/engine/index.js +33 -0
- package/dist/core/engine/index.js.map +1 -0
- package/dist/core/engine/inputs.d.ts +77 -0
- package/dist/core/engine/inputs.d.ts.map +1 -0
- package/dist/core/engine/inputs.js +205 -0
- package/dist/core/engine/inputs.js.map +1 -0
- package/dist/core/engine/ledger/call.d.ts +63 -0
- package/dist/core/engine/ledger/call.d.ts.map +1 -0
- package/dist/core/engine/ledger/call.js +136 -0
- package/dist/core/engine/ledger/call.js.map +1 -0
- package/dist/core/engine/ledger/closable.d.ts +155 -0
- package/dist/core/engine/ledger/closable.d.ts.map +1 -0
- package/dist/core/engine/ledger/closable.js +173 -0
- package/dist/core/engine/ledger/closable.js.map +1 -0
- package/dist/core/engine/ledger/holdings.d.ts +194 -0
- package/dist/core/engine/ledger/holdings.d.ts.map +1 -0
- package/dist/core/engine/ledger/holdings.js +237 -0
- package/dist/core/engine/ledger/holdings.js.map +1 -0
- package/dist/core/engine/ledger/index.d.ts +19 -0
- package/dist/core/engine/ledger/index.d.ts.map +1 -0
- package/dist/core/engine/ledger/index.js +2 -0
- package/dist/core/engine/ledger/index.js.map +1 -0
- package/dist/core/engine/ledger/intent.d.ts +106 -0
- package/dist/core/engine/ledger/intent.d.ts.map +1 -0
- package/dist/core/engine/ledger/intent.js +21 -0
- package/dist/core/engine/ledger/intent.js.map +1 -0
- package/dist/core/engine/ledger/ledger.d.ts +143 -0
- package/dist/core/engine/ledger/ledger.d.ts.map +1 -0
- package/dist/core/engine/ledger/ledger.js +237 -0
- package/dist/core/engine/ledger/ledger.js.map +1 -0
- package/dist/core/engine/ledger/place.d.ts +75 -0
- package/dist/core/engine/ledger/place.d.ts.map +1 -0
- package/dist/core/engine/ledger/place.js +174 -0
- package/dist/core/engine/ledger/place.js.map +1 -0
- package/dist/core/engine/ledger/positions.d.ts +68 -0
- package/dist/core/engine/ledger/positions.d.ts.map +1 -0
- package/dist/core/engine/ledger/positions.js +114 -0
- package/dist/core/engine/ledger/positions.js.map +1 -0
- package/dist/core/engine/ledger/refuse.d.ts +43 -0
- package/dist/core/engine/ledger/refuse.d.ts.map +1 -0
- package/dist/core/engine/ledger/refuse.js +329 -0
- package/dist/core/engine/ledger/refuse.js.map +1 -0
- package/dist/core/engine/ledger/row.d.ts +176 -0
- package/dist/core/engine/ledger/row.d.ts.map +1 -0
- package/dist/core/engine/ledger/row.js +169 -0
- package/dist/core/engine/ledger/row.js.map +1 -0
- package/dist/core/engine/ledger/sizing.d.ts +142 -0
- package/dist/core/engine/ledger/sizing.d.ts.map +1 -0
- package/dist/core/engine/ledger/sizing.js +223 -0
- package/dist/core/engine/ledger/sizing.js.map +1 -0
- package/dist/core/engine/library/arrays.d.ts +14 -0
- package/dist/core/engine/library/arrays.d.ts.map +1 -0
- package/dist/core/engine/library/arrays.js +285 -0
- package/dist/core/engine/library/arrays.js.map +1 -0
- package/dist/core/engine/library/averages.d.ts +9 -0
- package/dist/core/engine/library/averages.d.ts.map +1 -0
- package/dist/core/engine/library/averages.js +41 -0
- package/dist/core/engine/library/averages.js.map +1 -0
- package/dist/core/engine/library/binding.d.ts +230 -0
- package/dist/core/engine/library/binding.d.ts.map +1 -0
- package/dist/core/engine/library/binding.js +109 -0
- package/dist/core/engine/library/binding.js.map +1 -0
- package/dist/core/engine/library/chart.d.ts +3 -0
- package/dist/core/engine/library/chart.d.ts.map +1 -0
- package/dist/core/engine/library/chart.js +83 -0
- package/dist/core/engine/library/chart.js.map +1 -0
- package/dist/core/engine/library/colours.d.ts +26 -0
- package/dist/core/engine/library/colours.d.ts.map +1 -0
- package/dist/core/engine/library/colours.js +81 -0
- package/dist/core/engine/library/colours.js.map +1 -0
- package/dist/core/engine/library/dates.d.ts +3 -0
- package/dist/core/engine/library/dates.d.ts.map +1 -0
- package/dist/core/engine/library/dates.js +75 -0
- package/dist/core/engine/library/dates.js.map +1 -0
- package/dist/core/engine/library/index.d.ts +13 -0
- package/dist/core/engine/library/index.d.ts.map +1 -0
- package/dist/core/engine/library/index.js +86 -0
- package/dist/core/engine/library/index.js.map +1 -0
- package/dist/core/engine/library/maths.d.ts +3 -0
- package/dist/core/engine/library/maths.d.ts.map +1 -0
- package/dist/core/engine/library/maths.js +89 -0
- package/dist/core/engine/library/maths.js.map +1 -0
- package/dist/core/engine/library/objects.d.ts +3 -0
- package/dist/core/engine/library/objects.d.ts.map +1 -0
- package/dist/core/engine/library/objects.js +199 -0
- package/dist/core/engine/library/objects.js.map +1 -0
- package/dist/core/engine/library/oscillators.d.ts +3 -0
- package/dist/core/engine/library/oscillators.d.ts.map +1 -0
- package/dist/core/engine/library/oscillators.js +29 -0
- package/dist/core/engine/library/oscillators.js.map +1 -0
- package/dist/core/engine/library/ranges.d.ts +3 -0
- package/dist/core/engine/library/ranges.d.ts.map +1 -0
- package/dist/core/engine/library/ranges.js +23 -0
- package/dist/core/engine/library/ranges.js.map +1 -0
- package/dist/core/engine/library/series.d.ts +3 -0
- package/dist/core/engine/library/series.d.ts.map +1 -0
- package/dist/core/engine/library/series.js +46 -0
- package/dist/core/engine/library/series.js.map +1 -0
- package/dist/core/engine/library/state.d.ts +35 -0
- package/dist/core/engine/library/state.d.ts.map +1 -0
- package/dist/core/engine/library/state.js +19 -0
- package/dist/core/engine/library/state.js.map +1 -0
- package/dist/core/engine/library/studies.d.ts +3 -0
- package/dist/core/engine/library/studies.d.ts.map +1 -0
- package/dist/core/engine/library/studies.js +35 -0
- package/dist/core/engine/library/studies.js.map +1 -0
- package/dist/core/engine/library/text.d.ts +6 -0
- package/dist/core/engine/library/text.d.ts.map +1 -0
- package/dist/core/engine/library/text.js +280 -0
- package/dist/core/engine/library/text.js.map +1 -0
- package/dist/core/engine/library/trend.d.ts +3 -0
- package/dist/core/engine/library/trend.d.ts.map +1 -0
- package/dist/core/engine/library/trend.js +29 -0
- package/dist/core/engine/library/trend.js.map +1 -0
- package/dist/core/engine/library/volume.d.ts +3 -0
- package/dist/core/engine/library/volume.d.ts.map +1 -0
- package/dist/core/engine/library/volume.js +51 -0
- package/dist/core/engine/library/volume.js.map +1 -0
- package/dist/core/engine/load.d.ts +45 -0
- package/dist/core/engine/load.d.ts.map +1 -0
- package/dist/core/engine/load.js +60 -0
- package/dist/core/engine/load.js.map +1 -0
- package/dist/core/engine/machine.d.ts +107 -0
- package/dist/core/engine/machine.d.ts.map +1 -0
- package/dist/core/engine/machine.js +337 -0
- package/dist/core/engine/machine.js.map +1 -0
- package/dist/core/engine/memory.d.ts +60 -0
- package/dist/core/engine/memory.d.ts.map +1 -0
- package/dist/core/engine/memory.js +92 -0
- package/dist/core/engine/memory.js.map +1 -0
- package/dist/core/engine/operations.d.ts +62 -0
- package/dist/core/engine/operations.d.ts.map +1 -0
- package/dist/core/engine/operations.js +149 -0
- package/dist/core/engine/operations.js.map +1 -0
- package/dist/core/engine/orders.d.ts +56 -0
- package/dist/core/engine/orders.d.ts.map +1 -0
- package/dist/core/engine/orders.js +83 -0
- package/dist/core/engine/orders.js.map +1 -0
- package/dist/core/engine/registers.d.ts +50 -0
- package/dist/core/engine/registers.d.ts.map +1 -0
- package/dist/core/engine/registers.js +85 -0
- package/dist/core/engine/registers.js.map +1 -0
- package/dist/core/engine/request-body.d.ts +138 -0
- package/dist/core/engine/request-body.d.ts.map +1 -0
- package/dist/core/engine/request-body.js +227 -0
- package/dist/core/engine/request-body.js.map +1 -0
- package/dist/core/engine/request-plan.d.ts +79 -0
- package/dist/core/engine/request-plan.d.ts.map +1 -0
- package/dist/core/engine/request-plan.js +228 -0
- package/dist/core/engine/request-plan.js.map +1 -0
- package/dist/core/engine/requests.d.ts +105 -0
- package/dist/core/engine/requests.d.ts.map +1 -0
- package/dist/core/engine/requests.js +260 -0
- package/dist/core/engine/requests.js.map +1 -0
- package/dist/core/engine/results.d.ts +40 -0
- package/dist/core/engine/results.d.ts.map +1 -0
- package/dist/core/engine/results.js +2 -0
- package/dist/core/engine/results.js.map +1 -0
- package/dist/core/engine/series.d.ts +61 -0
- package/dist/core/engine/series.d.ts.map +1 -0
- package/dist/core/engine/series.js +41 -0
- package/dist/core/engine/series.js.map +1 -0
- package/dist/core/engine/session/hours.d.ts +49 -0
- package/dist/core/engine/session/hours.d.ts.map +1 -0
- package/dist/core/engine/session/hours.js +31 -0
- package/dist/core/engine/session/hours.js.map +1 -0
- package/dist/core/engine/session/index.d.ts +17 -0
- package/dist/core/engine/session/index.d.ts.map +1 -0
- package/dist/core/engine/session/index.js +3 -0
- package/dist/core/engine/session/index.js.map +1 -0
- package/dist/core/engine/session/record.d.ts +56 -0
- package/dist/core/engine/session/record.d.ts.map +1 -0
- package/dist/core/engine/session/record.js +165 -0
- package/dist/core/engine/session/record.js.map +1 -0
- package/dist/core/engine/session/spec.d.ts +19 -0
- package/dist/core/engine/session/spec.d.ts.map +1 -0
- package/dist/core/engine/session/spec.js +31 -0
- package/dist/core/engine/session/spec.js.map +1 -0
- package/dist/core/engine/timeframe.d.ts +59 -0
- package/dist/core/engine/timeframe.d.ts.map +1 -0
- package/dist/core/engine/timeframe.js +140 -0
- package/dist/core/engine/timeframe.js.map +1 -0
- package/dist/core/engine/types.d.ts +15 -0
- package/dist/core/engine/types.d.ts.map +1 -0
- package/dist/core/engine/types.js +2 -0
- package/dist/core/engine/types.js.map +1 -0
- package/dist/core/engine/values/heap.d.ts +134 -0
- package/dist/core/engine/values/heap.d.ts.map +1 -0
- package/dist/core/engine/values/heap.js +230 -0
- package/dist/core/engine/values/heap.js.map +1 -0
- package/dist/core/engine/values/index.d.ts +13 -0
- package/dist/core/engine/values/index.d.ts.map +1 -0
- package/dist/core/engine/values/index.js +3 -0
- package/dist/core/engine/values/index.js.map +1 -0
- package/dist/core/engine/values/value.d.ts +82 -0
- package/dist/core/engine/values/value.d.ts.map +1 -0
- package/dist/core/engine/values/value.js +134 -0
- package/dist/core/engine/values/value.js.map +1 -0
- package/dist/core/engine/verify-budgets.d.ts +35 -0
- package/dist/core/engine/verify-budgets.d.ts.map +1 -0
- package/dist/core/engine/verify-budgets.js +172 -0
- package/dist/core/engine/verify-budgets.js.map +1 -0
- package/dist/core/engine/verify-code.d.ts +32 -0
- package/dist/core/engine/verify-code.d.ts.map +1 -0
- package/dist/core/engine/verify-code.js +278 -0
- package/dist/core/engine/verify-code.js.map +1 -0
- package/dist/core/engine/verify-requests.d.ts +44 -0
- package/dist/core/engine/verify-requests.d.ts.map +1 -0
- package/dist/core/engine/verify-requests.js +220 -0
- package/dist/core/engine/verify-requests.js.map +1 -0
- package/dist/core/engine/verify-shape.d.ts +46 -0
- package/dist/core/engine/verify-shape.d.ts.map +1 -0
- package/dist/core/engine/verify-shape.js +147 -0
- package/dist/core/engine/verify-shape.js.map +1 -0
- package/dist/core/engine/verify-tables.d.ts +19 -0
- package/dist/core/engine/verify-tables.d.ts.map +1 -0
- package/dist/core/engine/verify-tables.js +171 -0
- package/dist/core/engine/verify-tables.js.map +1 -0
- package/dist/core/engine/verify.d.ts +19 -0
- package/dist/core/engine/verify.d.ts.map +1 -0
- package/dist/core/engine/verify.js +309 -0
- package/dist/core/engine/verify.js.map +1 -0
- package/dist/core/index.d.ts +61 -6
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +48 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/parse/expressions.js +1 -1
- package/dist/core/parse/expressions.js.map +1 -1
- package/dist/core/parse/names.d.ts +7 -1
- package/dist/core/parse/names.d.ts.map +1 -1
- package/dist/core/parse/names.js +28 -2
- package/dist/core/parse/names.js.map +1 -1
- package/dist/core/stdlib/averages/exponential.d.ts +51 -0
- package/dist/core/stdlib/averages/exponential.d.ts.map +1 -0
- package/dist/core/stdlib/averages/exponential.js +72 -0
- package/dist/core/stdlib/averages/exponential.js.map +1 -0
- package/dist/core/stdlib/averages/index.d.ts +7 -0
- package/dist/core/stdlib/averages/index.d.ts.map +1 -0
- package/dist/core/stdlib/averages/index.js +5 -0
- package/dist/core/stdlib/averages/index.js.map +1 -0
- package/dist/core/stdlib/averages/select.d.ts +35 -0
- package/dist/core/stdlib/averages/select.d.ts.map +1 -0
- package/dist/core/stdlib/averages/select.js +43 -0
- package/dist/core/stdlib/averages/select.js.map +1 -0
- package/dist/core/stdlib/averages/shaped.d.ts +61 -0
- package/dist/core/stdlib/averages/shaped.d.ts.map +1 -0
- package/dist/core/stdlib/averages/shaped.js +126 -0
- package/dist/core/stdlib/averages/shaped.js.map +1 -0
- package/dist/core/stdlib/averages/simple.d.ts +58 -0
- package/dist/core/stdlib/averages/simple.d.ts.map +1 -0
- package/dist/core/stdlib/averages/simple.js +92 -0
- package/dist/core/stdlib/averages/simple.js.map +1 -0
- package/dist/core/stdlib/calendar/civil.d.ts +56 -0
- package/dist/core/stdlib/calendar/civil.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/civil.js +70 -0
- package/dist/core/stdlib/calendar/civil.js.map +1 -0
- package/dist/core/stdlib/calendar/fields.d.ts +36 -0
- package/dist/core/stdlib/calendar/fields.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/fields.js +93 -0
- package/dist/core/stdlib/calendar/fields.js.map +1 -0
- package/dist/core/stdlib/calendar/format.d.ts +19 -0
- package/dist/core/stdlib/calendar/format.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/format.js +51 -0
- package/dist/core/stdlib/calendar/format.js.map +1 -0
- package/dist/core/stdlib/calendar/index.d.ts +7 -0
- package/dist/core/stdlib/calendar/index.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/index.js +5 -0
- package/dist/core/stdlib/calendar/index.js.map +1 -0
- package/dist/core/stdlib/calendar/zone.d.ts +53 -0
- package/dist/core/stdlib/calendar/zone.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/zone.js +138 -0
- package/dist/core/stdlib/calendar/zone.js.map +1 -0
- package/dist/core/stdlib/index.d.ts +57 -0
- package/dist/core/stdlib/index.d.ts.map +1 -0
- package/dist/core/stdlib/index.js +51 -0
- package/dist/core/stdlib/index.js.map +1 -0
- package/dist/core/stdlib/maths/arithmetic.d.ts +38 -0
- package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -0
- package/dist/core/stdlib/maths/arithmetic.js +66 -0
- package/dist/core/stdlib/maths/arithmetic.js.map +1 -0
- package/dist/core/stdlib/maths/elementary.d.ts +65 -0
- package/dist/core/stdlib/maths/elementary.d.ts.map +1 -0
- package/dist/core/stdlib/maths/elementary.js +93 -0
- package/dist/core/stdlib/maths/elementary.js.map +1 -0
- package/dist/core/stdlib/maths/index.d.ts +4 -0
- package/dist/core/stdlib/maths/index.d.ts.map +1 -0
- package/dist/core/stdlib/maths/index.js +4 -0
- package/dist/core/stdlib/maths/index.js.map +1 -0
- package/dist/core/stdlib/maths/rounding.d.ts +43 -0
- package/dist/core/stdlib/maths/rounding.d.ts.map +1 -0
- package/dist/core/stdlib/maths/rounding.js +62 -0
- package/dist/core/stdlib/maths/rounding.js.map +1 -0
- package/dist/core/stdlib/momentum/convergence.d.ts +36 -0
- package/dist/core/stdlib/momentum/convergence.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/convergence.js +48 -0
- package/dist/core/stdlib/momentum/convergence.js.map +1 -0
- package/dist/core/stdlib/momentum/index.d.ts +6 -0
- package/dist/core/stdlib/momentum/index.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/index.js +6 -0
- package/dist/core/stdlib/momentum/index.js.map +1 -0
- package/dist/core/stdlib/momentum/pressure.d.ts +43 -0
- package/dist/core/stdlib/momentum/pressure.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/pressure.js +103 -0
- package/dist/core/stdlib/momentum/pressure.js.map +1 -0
- package/dist/core/stdlib/momentum/rates.d.ts +74 -0
- package/dist/core/stdlib/momentum/rates.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/rates.js +134 -0
- package/dist/core/stdlib/momentum/rates.js.map +1 -0
- package/dist/core/stdlib/momentum/rsi.d.ts +21 -0
- package/dist/core/stdlib/momentum/rsi.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/rsi.js +30 -0
- package/dist/core/stdlib/momentum/rsi.js.map +1 -0
- package/dist/core/stdlib/momentum/stochastic.d.ts +44 -0
- package/dist/core/stdlib/momentum/stochastic.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/stochastic.js +97 -0
- package/dist/core/stdlib/momentum/stochastic.js.map +1 -0
- package/dist/core/stdlib/series/changes.d.ts +59 -0
- package/dist/core/stdlib/series/changes.d.ts.map +1 -0
- package/dist/core/stdlib/series/changes.js +129 -0
- package/dist/core/stdlib/series/changes.js.map +1 -0
- package/dist/core/stdlib/series/conditions.d.ts +34 -0
- package/dist/core/stdlib/series/conditions.d.ts.map +1 -0
- package/dist/core/stdlib/series/conditions.js +52 -0
- package/dist/core/stdlib/series/conditions.js.map +1 -0
- package/dist/core/stdlib/series/extremes.d.ts +29 -0
- package/dist/core/stdlib/series/extremes.d.ts.map +1 -0
- package/dist/core/stdlib/series/extremes.js +62 -0
- package/dist/core/stdlib/series/extremes.js.map +1 -0
- package/dist/core/stdlib/series/index.d.ts +9 -0
- package/dist/core/stdlib/series/index.d.ts.map +1 -0
- package/dist/core/stdlib/series/index.js +7 -0
- package/dist/core/stdlib/series/index.js.map +1 -0
- package/dist/core/stdlib/series/pivots.d.ts +25 -0
- package/dist/core/stdlib/series/pivots.d.ts.map +1 -0
- package/dist/core/stdlib/series/pivots.js +42 -0
- package/dist/core/stdlib/series/pivots.js.map +1 -0
- package/dist/core/stdlib/series/statistics.d.ts +64 -0
- package/dist/core/stdlib/series/statistics.d.ts.map +1 -0
- package/dist/core/stdlib/series/statistics.js +148 -0
- package/dist/core/stdlib/series/statistics.js.map +1 -0
- package/dist/core/stdlib/series/totals.d.ts +68 -0
- package/dist/core/stdlib/series/totals.d.ts.map +1 -0
- package/dist/core/stdlib/series/totals.js +115 -0
- package/dist/core/stdlib/series/totals.js.map +1 -0
- package/dist/core/stdlib/trend/directional.d.ts +69 -0
- package/dist/core/stdlib/trend/directional.d.ts.map +1 -0
- package/dist/core/stdlib/trend/directional.js +151 -0
- package/dist/core/stdlib/trend/directional.js.map +1 -0
- package/dist/core/stdlib/trend/index.d.ts +4 -0
- package/dist/core/stdlib/trend/index.d.ts.map +1 -0
- package/dist/core/stdlib/trend/index.js +4 -0
- package/dist/core/stdlib/trend/index.js.map +1 -0
- package/dist/core/stdlib/trend/psar.d.ts +33 -0
- package/dist/core/stdlib/trend/psar.d.ts.map +1 -0
- package/dist/core/stdlib/trend/psar.js +86 -0
- package/dist/core/stdlib/trend/psar.js.map +1 -0
- package/dist/core/stdlib/trend/supertrend.d.ts +30 -0
- package/dist/core/stdlib/trend/supertrend.d.ts.map +1 -0
- package/dist/core/stdlib/trend/supertrend.js +65 -0
- package/dist/core/stdlib/trend/supertrend.js.map +1 -0
- package/dist/core/stdlib/values/bar.d.ts +39 -0
- package/dist/core/stdlib/values/bar.d.ts.map +1 -0
- package/dist/core/stdlib/values/bar.js +33 -0
- package/dist/core/stdlib/values/bar.js.map +1 -0
- package/dist/core/stdlib/values/index.d.ts +11 -0
- package/dist/core/stdlib/values/index.d.ts.map +1 -0
- package/dist/core/stdlib/values/index.js +6 -0
- package/dist/core/stdlib/values/index.js.map +1 -0
- package/dist/core/stdlib/values/lookback.d.ts +83 -0
- package/dist/core/stdlib/values/lookback.d.ts.map +1 -0
- package/dist/core/stdlib/values/lookback.js +134 -0
- package/dist/core/stdlib/values/lookback.js.map +1 -0
- package/dist/core/stdlib/values/region.d.ts +55 -0
- package/dist/core/stdlib/values/region.d.ts.map +1 -0
- package/dist/core/stdlib/values/region.js +73 -0
- package/dist/core/stdlib/values/region.js.map +1 -0
- package/dist/core/stdlib/values/tail.d.ts +44 -0
- package/dist/core/stdlib/values/tail.d.ts.map +1 -0
- package/dist/core/stdlib/values/tail.js +23 -0
- package/dist/core/stdlib/values/tail.js.map +1 -0
- package/dist/core/stdlib/values/value.d.ts +64 -0
- package/dist/core/stdlib/values/value.d.ts.map +1 -0
- package/dist/core/stdlib/values/value.js +61 -0
- package/dist/core/stdlib/values/value.js.map +1 -0
- package/dist/core/stdlib/volatility/bands.d.ts +50 -0
- package/dist/core/stdlib/volatility/bands.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/bands.js +101 -0
- package/dist/core/stdlib/volatility/bands.js.map +1 -0
- package/dist/core/stdlib/volatility/deviation.d.ts +43 -0
- package/dist/core/stdlib/volatility/deviation.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/deviation.js +75 -0
- package/dist/core/stdlib/volatility/deviation.js.map +1 -0
- package/dist/core/stdlib/volatility/index.d.ts +6 -0
- package/dist/core/stdlib/volatility/index.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/index.js +5 -0
- package/dist/core/stdlib/volatility/index.js.map +1 -0
- package/dist/core/stdlib/volatility/measures.d.ts +48 -0
- package/dist/core/stdlib/volatility/measures.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/measures.js +73 -0
- package/dist/core/stdlib/volatility/measures.js.map +1 -0
- package/dist/core/stdlib/volatility/range.d.ts +69 -0
- package/dist/core/stdlib/volatility/range.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/range.js +86 -0
- package/dist/core/stdlib/volatility/range.js.map +1 -0
- package/dist/core/stdlib/volume/accumulation.d.ts +61 -0
- package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -0
- package/dist/core/stdlib/volume/accumulation.js +127 -0
- package/dist/core/stdlib/volume/accumulation.js.map +1 -0
- package/dist/core/stdlib/volume/flow.d.ts +60 -0
- package/dist/core/stdlib/volume/flow.d.ts.map +1 -0
- package/dist/core/stdlib/volume/flow.js +125 -0
- package/dist/core/stdlib/volume/flow.js.map +1 -0
- package/dist/core/stdlib/volume/index.d.ts +5 -0
- package/dist/core/stdlib/volume/index.d.ts.map +1 -0
- package/dist/core/stdlib/volume/index.js +4 -0
- package/dist/core/stdlib/volume/index.js.map +1 -0
- package/dist/core/stdlib/volume/weighted.d.ts +52 -0
- package/dist/core/stdlib/volume/weighted.d.ts.map +1 -0
- package/dist/core/stdlib/volume/weighted.js +64 -0
- package/dist/core/stdlib/volume/weighted.js.map +1 -0
- package/dist/core/version/version.generated.d.ts +2 -2
- package/dist/core/version/version.generated.d.ts.map +1 -1
- package/dist/core/version/version.generated.js +2 -2
- package/dist/core/version/version.generated.js.map +1 -1
- package/package.json +38 -14
- package/spec/errors.json +382 -183
- package/src/adapters/charts/alerts.ts +116 -0
- package/src/adapters/charts/bars.ts +63 -0
- package/src/adapters/charts/candles.ts +137 -0
- package/src/adapters/charts/colours.ts +113 -0
- package/src/adapters/charts/columns.ts +99 -0
- package/src/adapters/charts/contract.ts +320 -0
- package/src/adapters/charts/descriptor.ts +199 -0
- package/src/adapters/charts/drawings.ts +213 -0
- package/src/adapters/charts/errors.ts +45 -0
- package/src/adapters/charts/fields.ts +74 -0
- package/src/adapters/charts/fills.ts +71 -0
- package/src/adapters/charts/index.ts +78 -0
- package/src/adapters/charts/levels.ts +92 -0
- package/src/adapters/charts/markers.ts +119 -0
- package/src/adapters/charts/paint.ts +101 -0
- package/src/adapters/charts/plots.ts +185 -0
- package/src/adapters/charts/produced.ts +68 -0
- package/src/adapters/charts/requests.ts +357 -0
- package/src/adapters/charts/run.ts +327 -0
- package/src/adapters/charts/settings.ts +273 -0
- package/src/adapters/charts/surfaces.ts +238 -0
- package/src/adapters/charts/tables.ts +155 -0
- package/src/core/catalogue/catalogue.generated.ts +17 -9
- package/src/core/catalogue/values.generated.ts +8 -0
- package/src/core/check/arguments.ts +126 -0
- package/src/core/check/call-sites.ts +385 -0
- package/src/core/check/call-warmup.ts +121 -0
- package/src/core/check/calls.ts +412 -0
- package/src/core/check/check.ts +183 -0
- package/src/core/check/checked.ts +228 -0
- package/src/core/check/checker.ts +393 -0
- package/src/core/check/conditional.ts +143 -0
- package/src/core/check/constant.ts +127 -0
- package/src/core/check/declaration.ts +230 -0
- package/src/core/check/expressions.ts +471 -0
- package/src/core/check/functions.ts +283 -0
- package/src/core/check/handles.ts +75 -0
- package/src/core/check/index.ts +67 -0
- package/src/core/check/library-bars.ts +194 -0
- package/src/core/check/library-orders.ts +290 -0
- package/src/core/check/library-output.ts +241 -0
- package/src/core/check/library-series.ts +457 -0
- package/src/core/check/library.ts +374 -0
- package/src/core/check/literals.ts +35 -0
- package/src/core/check/outputs.ts +152 -0
- package/src/core/check/statements.ts +465 -0
- package/src/core/check/suggest.ts +63 -0
- package/src/core/check/surface.ts +115 -0
- package/src/core/check/tags.ts +94 -0
- package/src/core/check/types.ts +260 -0
- package/src/core/check/warmup.ts +100 -0
- package/src/core/diagnostics/collector.ts +27 -1
- package/src/core/emit/calls.ts +415 -0
- package/src/core/emit/canonical.ts +81 -0
- package/src/core/emit/channels.ts +144 -0
- package/src/core/emit/code.ts +155 -0
- package/src/core/emit/colours.ts +75 -0
- package/src/core/emit/context.ts +461 -0
- package/src/core/emit/defaults.ts +150 -0
- package/src/core/emit/emit.ts +313 -0
- package/src/core/emit/events.ts +141 -0
- package/src/core/emit/expressions.ts +292 -0
- package/src/core/emit/functions.ts +195 -0
- package/src/core/emit/gaps.ts +44 -0
- package/src/core/emit/index.ts +74 -0
- package/src/core/emit/inputs.ts +179 -0
- package/src/core/emit/layout.ts +165 -0
- package/src/core/emit/meta.ts +104 -0
- package/src/core/emit/opcodes.ts +160 -0
- package/src/core/emit/outputs.ts +357 -0
- package/src/core/emit/pool.ts +102 -0
- package/src/core/emit/program.ts +385 -0
- package/src/core/emit/registers.ts +179 -0
- package/src/core/emit/request-scope.ts +52 -0
- package/src/core/emit/requests.ts +258 -0
- package/src/core/emit/requires.ts +91 -0
- package/src/core/emit/sha256.ts +119 -0
- package/src/core/emit/statements.ts +438 -0
- package/src/core/emit/values.ts +284 -0
- package/src/core/engine/alerts.ts +152 -0
- package/src/core/engine/arithmetic.ts +165 -0
- package/src/core/engine/bars.ts +224 -0
- package/src/core/engine/budget.ts +284 -0
- package/src/core/engine/channels.ts +171 -0
- package/src/core/engine/drawings.ts +127 -0
- package/src/core/engine/engine.ts +498 -0
- package/src/core/engine/errors.ts +100 -0
- package/src/core/engine/frames.ts +85 -0
- package/src/core/engine/grids.ts +98 -0
- package/src/core/engine/guard.ts +71 -0
- package/src/core/engine/host.ts +251 -0
- package/src/core/engine/index.ts +93 -0
- package/src/core/engine/inputs.ts +263 -0
- package/src/core/engine/ledger/call.ts +218 -0
- package/src/core/engine/ledger/closable.ts +269 -0
- package/src/core/engine/ledger/holdings.ts +354 -0
- package/src/core/engine/ledger/index.ts +28 -0
- package/src/core/engine/ledger/intent.ts +112 -0
- package/src/core/engine/ledger/ledger.ts +314 -0
- package/src/core/engine/ledger/place.ts +277 -0
- package/src/core/engine/ledger/positions.ts +123 -0
- package/src/core/engine/ledger/refuse.ts +378 -0
- package/src/core/engine/ledger/row.ts +318 -0
- package/src/core/engine/ledger/sizing.ts +292 -0
- package/src/core/engine/library/arrays.ts +316 -0
- package/src/core/engine/library/averages.ts +97 -0
- package/src/core/engine/library/binding.ts +325 -0
- package/src/core/engine/library/chart.ts +115 -0
- package/src/core/engine/library/colours.ts +111 -0
- package/src/core/engine/library/dates.ts +109 -0
- package/src/core/engine/library/index.ts +103 -0
- package/src/core/engine/library/maths.ts +134 -0
- package/src/core/engine/library/objects.ts +265 -0
- package/src/core/engine/library/oscillators.ts +124 -0
- package/src/core/engine/library/ranges.ts +51 -0
- package/src/core/engine/library/series.ts +236 -0
- package/src/core/engine/library/state.ts +47 -0
- package/src/core/engine/library/studies.ts +150 -0
- package/src/core/engine/library/text.ts +303 -0
- package/src/core/engine/library/trend.ts +79 -0
- package/src/core/engine/library/volume.ts +101 -0
- package/src/core/engine/load.ts +104 -0
- package/src/core/engine/machine.ts +446 -0
- package/src/core/engine/memory.ts +129 -0
- package/src/core/engine/operations.ts +171 -0
- package/src/core/engine/orders.ts +121 -0
- package/src/core/engine/registers.ts +104 -0
- package/src/core/engine/request-body.ts +328 -0
- package/src/core/engine/request-plan.ts +270 -0
- package/src/core/engine/requests.ts +382 -0
- package/src/core/engine/results.ts +41 -0
- package/src/core/engine/series.ts +82 -0
- package/src/core/engine/session/hours.ts +86 -0
- package/src/core/engine/session/index.ts +17 -0
- package/src/core/engine/session/record.ts +191 -0
- package/src/core/engine/session/spec.ts +45 -0
- package/src/core/engine/timeframe.ts +161 -0
- package/src/core/engine/types.ts +47 -0
- package/src/core/engine/values/heap.ts +295 -0
- package/src/core/engine/values/index.ts +34 -0
- package/src/core/engine/values/value.ts +158 -0
- package/src/core/engine/verify-budgets.ts +202 -0
- package/src/core/engine/verify-code.ts +332 -0
- package/src/core/engine/verify-requests.ts +255 -0
- package/src/core/engine/verify-shape.ts +164 -0
- package/src/core/engine/verify-tables.ts +176 -0
- package/src/core/engine/verify.ts +341 -0
- package/src/core/index.ts +128 -6
- package/src/core/parse/expressions.ts +1 -1
- package/src/core/parse/names.ts +29 -2
- package/src/core/stdlib/averages/exponential.ts +119 -0
- package/src/core/stdlib/averages/index.ts +45 -0
- package/src/core/stdlib/averages/select.ts +71 -0
- package/src/core/stdlib/averages/shaped.ts +161 -0
- package/src/core/stdlib/averages/simple.ts +139 -0
- package/src/core/stdlib/calendar/civil.ts +89 -0
- package/src/core/stdlib/calendar/fields.ts +124 -0
- package/src/core/stdlib/calendar/format.ts +71 -0
- package/src/core/stdlib/calendar/index.ts +15 -0
- package/src/core/stdlib/calendar/zone.ts +161 -0
- package/src/core/stdlib/index.ts +400 -0
- package/src/core/stdlib/maths/arithmetic.ts +74 -0
- package/src/core/stdlib/maths/elementary.ts +124 -0
- package/src/core/stdlib/maths/index.ts +43 -0
- package/src/core/stdlib/maths/rounding.ts +78 -0
- package/src/core/stdlib/momentum/convergence.ts +82 -0
- package/src/core/stdlib/momentum/index.ts +47 -0
- package/src/core/stdlib/momentum/pressure.ts +141 -0
- package/src/core/stdlib/momentum/rates.ts +188 -0
- package/src/core/stdlib/momentum/rsi.ts +49 -0
- package/src/core/stdlib/momentum/stochastic.ts +147 -0
- package/src/core/stdlib/series/changes.ts +177 -0
- package/src/core/stdlib/series/conditions.ts +74 -0
- package/src/core/stdlib/series/extremes.ts +92 -0
- package/src/core/stdlib/series/index.ts +83 -0
- package/src/core/stdlib/series/pivots.ts +63 -0
- package/src/core/stdlib/series/statistics.ts +207 -0
- package/src/core/stdlib/series/totals.ts +164 -0
- package/src/core/stdlib/trend/directional.ts +196 -0
- package/src/core/stdlib/trend/index.ts +13 -0
- package/src/core/stdlib/trend/psar.ts +131 -0
- package/src/core/stdlib/trend/supertrend.ts +100 -0
- package/src/core/stdlib/values/bar.ts +54 -0
- package/src/core/stdlib/values/index.ts +14 -0
- package/src/core/stdlib/values/lookback.ts +198 -0
- package/src/core/stdlib/values/region.ts +86 -0
- package/src/core/stdlib/values/tail.ts +58 -0
- package/src/core/stdlib/values/value.ts +82 -0
- package/src/core/stdlib/volatility/bands.ts +178 -0
- package/src/core/stdlib/volatility/deviation.ts +111 -0
- package/src/core/stdlib/volatility/index.ts +48 -0
- package/src/core/stdlib/volatility/measures.ts +96 -0
- package/src/core/stdlib/volatility/range.ts +143 -0
- package/src/core/stdlib/volume/accumulation.ts +152 -0
- package/src/core/stdlib/volume/flow.ts +173 -0
- package/src/core/stdlib/volume/index.ts +43 -0
- package/src/core/stdlib/volume/weighted.ts +101 -0
- package/src/core/version/version.generated.ts +2 -2
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The compiled program, as `compiled-program.md` section 2 defines it.
|
|
3
|
+
*
|
|
4
|
+
* This file is the artifact's shape and nothing else: no logic, no defaults, no
|
|
5
|
+
* decisions. It is separate because the artifact is the public contract of the
|
|
6
|
+
* project. Somebody implementing an engine in another language reads the
|
|
7
|
+
* specification and then reads this to check the two agree, and a type with a
|
|
8
|
+
* field the specification does not have, or missing one it does, is the defect
|
|
9
|
+
* no test of our own engine would ever catch.
|
|
10
|
+
*
|
|
11
|
+
* Field order here follows the specification's. It is not the order canonical
|
|
12
|
+
* encoding writes: that one sorts keys, and `canonical.ts` is where it happens.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/** One entry of the constant pool, `compiled-program.md` 2.9. */
|
|
16
|
+
export type Constant =
|
|
17
|
+
| readonly ['z', null]
|
|
18
|
+
| readonly ['b', boolean]
|
|
19
|
+
| readonly ['n', number]
|
|
20
|
+
| readonly ['s', string]
|
|
21
|
+
| readonly ['c', Colour];
|
|
22
|
+
|
|
23
|
+
/** Red, green and blue as whole numbers 0 to 255, alpha as a number 0 to 1. */
|
|
24
|
+
export type Colour = readonly [number, number, number, number];
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* One instruction: the opcode name, then its operands.
|
|
28
|
+
*
|
|
29
|
+
* The opcode is a string because the format says so (2.14), so a program is
|
|
30
|
+
* readable and diffable by hand and a format that adds an opcode renumbers
|
|
31
|
+
* nothing.
|
|
32
|
+
*/
|
|
33
|
+
export type Instruction = readonly [string, ...number[]];
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A declaration field a script wrote with an `input()`, 2.3.
|
|
37
|
+
*
|
|
38
|
+
* The engine resolves it once at load and substitutes the value, so nothing of
|
|
39
|
+
* this form survives to bar 0.
|
|
40
|
+
*/
|
|
41
|
+
export interface InputReference {
|
|
42
|
+
readonly input: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* A fact the host states at load, named where a request's identity is fixed.
|
|
47
|
+
*
|
|
48
|
+
* `req.symbol(leg, chart.interval, ...)` reads the chart's own interval, and
|
|
49
|
+
* `exchange = chart.exchange` is the default `stdlib.md` 15.1 writes out. Both
|
|
50
|
+
* are settled before bar 0 and neither is a value this compiler can know, so
|
|
51
|
+
* the request names the fact and the engine resolves it at load (2.16).
|
|
52
|
+
*/
|
|
53
|
+
export interface ChartReference {
|
|
54
|
+
readonly chart: 'symbol' | 'exchange' | 'interval';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** Anything a declaration field may hold: a value, or a reference to an input. */
|
|
58
|
+
export type Field =
|
|
59
|
+
| null
|
|
60
|
+
| boolean
|
|
61
|
+
| number
|
|
62
|
+
| string
|
|
63
|
+
| Colour
|
|
64
|
+
| readonly number[]
|
|
65
|
+
| InputReference;
|
|
66
|
+
|
|
67
|
+
/** What fixes one part of a request's identity, 2.16. */
|
|
68
|
+
export type RequestField = Field | ChartReference;
|
|
69
|
+
|
|
70
|
+
export interface FormatVersion {
|
|
71
|
+
readonly format: string;
|
|
72
|
+
readonly language: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface CompilerStamp {
|
|
76
|
+
readonly name: string;
|
|
77
|
+
readonly version: string;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface SourceStamp {
|
|
81
|
+
readonly hash: string;
|
|
82
|
+
readonly lines: number;
|
|
83
|
+
readonly file: string | null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface StrategyMeta {
|
|
87
|
+
readonly capital: Field;
|
|
88
|
+
readonly currency: Field;
|
|
89
|
+
readonly qty: Field;
|
|
90
|
+
readonly qtyType: Field;
|
|
91
|
+
readonly product: Field;
|
|
92
|
+
readonly fillOn: Field;
|
|
93
|
+
readonly slippage: Field;
|
|
94
|
+
readonly commission: Field;
|
|
95
|
+
readonly commissionType: Field;
|
|
96
|
+
readonly pyramiding: Field;
|
|
97
|
+
readonly closeOnSessionEnd: Field;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface Meta {
|
|
101
|
+
readonly kind: 'study' | 'strategy';
|
|
102
|
+
readonly title: Field;
|
|
103
|
+
readonly short: Field;
|
|
104
|
+
readonly overlay: Field;
|
|
105
|
+
readonly precision: Field;
|
|
106
|
+
readonly format: Field;
|
|
107
|
+
readonly range: Field;
|
|
108
|
+
readonly scale: Field;
|
|
109
|
+
readonly group: Field;
|
|
110
|
+
readonly onUnconfirmed: Field;
|
|
111
|
+
/** Present only when `kind` is `"strategy"`, 2.3. */
|
|
112
|
+
readonly strategy?: StrategyMeta;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface Limits {
|
|
116
|
+
readonly loops: number;
|
|
117
|
+
readonly history: number | null;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface LibraryFunction {
|
|
121
|
+
readonly name: string;
|
|
122
|
+
readonly arity: number;
|
|
123
|
+
readonly state: boolean;
|
|
124
|
+
readonly effect: 'none' | 'signal' | 'order' | 'draw' | 'log';
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface Library {
|
|
128
|
+
readonly manifest: number;
|
|
129
|
+
readonly functions: readonly LibraryFunction[];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface CompiledInput {
|
|
133
|
+
readonly key: string;
|
|
134
|
+
readonly kind: string;
|
|
135
|
+
readonly label: string;
|
|
136
|
+
readonly default: Constant;
|
|
137
|
+
readonly min: number | null;
|
|
138
|
+
readonly max: number | null;
|
|
139
|
+
readonly step: number | null;
|
|
140
|
+
readonly options: readonly Constant[] | null;
|
|
141
|
+
readonly group: string;
|
|
142
|
+
readonly tooltip: string | null;
|
|
143
|
+
readonly slot: number;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface Channel {
|
|
147
|
+
readonly id: number;
|
|
148
|
+
readonly type: 'number' | 'string' | 'color' | 'bool';
|
|
149
|
+
readonly defer: boolean;
|
|
150
|
+
readonly once: boolean;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface CandleChannels {
|
|
154
|
+
readonly open: number;
|
|
155
|
+
readonly high: number;
|
|
156
|
+
readonly low: number;
|
|
157
|
+
readonly close: number;
|
|
158
|
+
readonly colorUp: Field;
|
|
159
|
+
readonly colorDown: Field;
|
|
160
|
+
readonly wickColor: Field;
|
|
161
|
+
readonly borderColor: Field;
|
|
162
|
+
readonly colorUpChannel: number | null;
|
|
163
|
+
readonly colorDownChannel: number | null;
|
|
164
|
+
readonly wickColorChannel: number | null;
|
|
165
|
+
readonly borderColorChannel: number | null;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export interface Plot {
|
|
169
|
+
readonly key: string;
|
|
170
|
+
readonly title: Field;
|
|
171
|
+
readonly type: string;
|
|
172
|
+
readonly channel: number;
|
|
173
|
+
readonly color: Field;
|
|
174
|
+
readonly colorChannel: number | null;
|
|
175
|
+
readonly width: Field;
|
|
176
|
+
readonly lineStyle: Field;
|
|
177
|
+
readonly offset: Field;
|
|
178
|
+
readonly overlay: Field;
|
|
179
|
+
readonly scale: Field;
|
|
180
|
+
readonly precision: Field;
|
|
181
|
+
readonly priceFormat: Field;
|
|
182
|
+
readonly ohlc: CandleChannels | null;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export interface Band {
|
|
186
|
+
readonly between: readonly [string, string];
|
|
187
|
+
readonly colorUp: Field;
|
|
188
|
+
readonly colorDown: Field;
|
|
189
|
+
readonly colorUpChannel: number | null;
|
|
190
|
+
readonly colorDownChannel: number | null;
|
|
191
|
+
readonly opacity: Field;
|
|
192
|
+
readonly overlay: Field;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export interface Level {
|
|
196
|
+
readonly title: Field;
|
|
197
|
+
readonly channel: number;
|
|
198
|
+
readonly color: Field;
|
|
199
|
+
readonly lineStyle: Field;
|
|
200
|
+
readonly lineWidth: Field;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface Marker {
|
|
204
|
+
readonly key: string;
|
|
205
|
+
readonly channel: number;
|
|
206
|
+
readonly position: Field;
|
|
207
|
+
readonly shape: Field;
|
|
208
|
+
readonly color: Field;
|
|
209
|
+
readonly textColor: Field;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface TableOptions {
|
|
213
|
+
readonly textColor: Field;
|
|
214
|
+
readonly bgColor: Field;
|
|
215
|
+
readonly borderWidth: Field;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export interface Grid {
|
|
219
|
+
readonly key: string;
|
|
220
|
+
readonly title: Field;
|
|
221
|
+
readonly slot: number;
|
|
222
|
+
readonly position: Field;
|
|
223
|
+
readonly rows: Field;
|
|
224
|
+
readonly cols: Field;
|
|
225
|
+
readonly options: TableOptions;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export interface Alert {
|
|
229
|
+
readonly key: string;
|
|
230
|
+
readonly title: Field;
|
|
231
|
+
readonly condChannel: number;
|
|
232
|
+
readonly messageChannel: number | null;
|
|
233
|
+
readonly frequency: Field;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export interface Paint {
|
|
237
|
+
readonly channel: number;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export interface Outputs {
|
|
241
|
+
readonly plots: readonly Plot[];
|
|
242
|
+
readonly fills: readonly Band[];
|
|
243
|
+
readonly levels: readonly Level[];
|
|
244
|
+
readonly markers: readonly Marker[];
|
|
245
|
+
readonly tables: readonly Grid[];
|
|
246
|
+
readonly alerts: readonly Alert[];
|
|
247
|
+
readonly barColor: Paint | null;
|
|
248
|
+
readonly background: Paint | null;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export interface Register {
|
|
252
|
+
readonly id: number;
|
|
253
|
+
/**
|
|
254
|
+
* Where the register's entry for a bar comes from, 2.10.
|
|
255
|
+
*
|
|
256
|
+
* `request` and `input` are the two the engine fills rather than the program:
|
|
257
|
+
* the first from the answer to the read that names it in 2.16, the second
|
|
258
|
+
* from a resolved setting. Neither is ever written by an instruction.
|
|
259
|
+
*/
|
|
260
|
+
readonly kind: 'bar' | 'computed' | 'argument' | 'request' | 'input';
|
|
261
|
+
readonly field: string | null;
|
|
262
|
+
readonly name: string | null;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
export interface Frame {
|
|
266
|
+
readonly slots: number;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export interface Cell {
|
|
270
|
+
readonly id: number;
|
|
271
|
+
readonly kind: 'var' | 'live';
|
|
272
|
+
readonly name: string | null;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export interface StateRegion {
|
|
276
|
+
readonly id: number;
|
|
277
|
+
readonly fn: number;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export interface CompiledFunction {
|
|
281
|
+
readonly name: string;
|
|
282
|
+
readonly params: number;
|
|
283
|
+
readonly slots: number;
|
|
284
|
+
readonly code: readonly Instruction[];
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export interface CallSite {
|
|
288
|
+
readonly fn: number;
|
|
289
|
+
readonly argc: number;
|
|
290
|
+
readonly cellBase: number;
|
|
291
|
+
readonly stateBase: number;
|
|
292
|
+
readonly series: readonly number[];
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export interface Loop {
|
|
296
|
+
readonly id: number;
|
|
297
|
+
readonly kind: 'for' | 'forIn' | 'while';
|
|
298
|
+
readonly line: number;
|
|
299
|
+
readonly col: number;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/** `[instructionIndex, line, column]`, ascending by index, 2.15. */
|
|
303
|
+
export type Position = readonly [number, number, number];
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* One setting a read's expression reads, 2.16.
|
|
307
|
+
*
|
|
308
|
+
* It names a register rather than a slot because a body is one expression with
|
|
309
|
+
* no statement to write a slot from, and because a function body inside it
|
|
310
|
+
* reaches a register from any frame and a slot only from its own.
|
|
311
|
+
*/
|
|
312
|
+
export interface RequestInput {
|
|
313
|
+
readonly input: string;
|
|
314
|
+
readonly series: number;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/** An expression compiled over requested bars, 2.16. */
|
|
318
|
+
export interface RequestBody {
|
|
319
|
+
readonly inputs: readonly RequestInput[];
|
|
320
|
+
readonly series: readonly Register[];
|
|
321
|
+
readonly frame: Frame;
|
|
322
|
+
readonly cells: readonly Cell[];
|
|
323
|
+
readonly states: readonly StateRegion[];
|
|
324
|
+
readonly functions: readonly CompiledFunction[];
|
|
325
|
+
readonly callSites: readonly CallSite[];
|
|
326
|
+
readonly loops: readonly Loop[];
|
|
327
|
+
/** Reads written inside this one, over bars the body's own bars fold from. */
|
|
328
|
+
readonly requests: readonly Request[];
|
|
329
|
+
readonly code: readonly Instruction[];
|
|
330
|
+
readonly pos: readonly Position[];
|
|
331
|
+
readonly fnPos: readonly (readonly [number, readonly Position[]])[];
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/** One higher timeframe or other instrument read, 2.16. */
|
|
335
|
+
export interface Request {
|
|
336
|
+
readonly id: number;
|
|
337
|
+
readonly read: 'timeframe' | 'symbol';
|
|
338
|
+
readonly symbol: RequestField;
|
|
339
|
+
readonly exchange: RequestField;
|
|
340
|
+
readonly timeframe: RequestField;
|
|
341
|
+
readonly mode: 'confirmed' | 'developing' | 'lookahead';
|
|
342
|
+
/** The register the read's value for each chart bar lands in. */
|
|
343
|
+
readonly series: number;
|
|
344
|
+
/** Requested bars of history the body needs, or null when no floor is known. */
|
|
345
|
+
readonly warmup: number | null;
|
|
346
|
+
readonly body: RequestBody;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
export interface DebugNames {
|
|
350
|
+
readonly slots: readonly string[];
|
|
351
|
+
readonly cells: readonly string[];
|
|
352
|
+
readonly series: readonly string[];
|
|
353
|
+
readonly channels: readonly string[];
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export interface Debug {
|
|
357
|
+
readonly pos: readonly Position[];
|
|
358
|
+
readonly fnPos: readonly (readonly [number, readonly Position[]])[];
|
|
359
|
+
readonly names: DebugNames;
|
|
360
|
+
readonly retain: boolean;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
export interface CompiledProgram {
|
|
364
|
+
readonly openscript: FormatVersion;
|
|
365
|
+
readonly requires: readonly string[];
|
|
366
|
+
readonly compiler: CompilerStamp;
|
|
367
|
+
readonly source: SourceStamp;
|
|
368
|
+
readonly meta: Meta;
|
|
369
|
+
readonly limits: Limits;
|
|
370
|
+
readonly lib: Library;
|
|
371
|
+
readonly inputs: readonly CompiledInput[];
|
|
372
|
+
readonly channels: readonly Channel[];
|
|
373
|
+
readonly outputs: Outputs;
|
|
374
|
+
readonly consts: readonly Constant[];
|
|
375
|
+
readonly series: readonly Register[];
|
|
376
|
+
readonly frame: Frame;
|
|
377
|
+
readonly cells: readonly Cell[];
|
|
378
|
+
readonly states: readonly StateRegion[];
|
|
379
|
+
readonly functions: readonly CompiledFunction[];
|
|
380
|
+
readonly callSites: readonly CallSite[];
|
|
381
|
+
readonly loops: readonly Loop[];
|
|
382
|
+
readonly code: readonly Instruction[];
|
|
383
|
+
readonly debug: Debug;
|
|
384
|
+
readonly requests: readonly Request[];
|
|
385
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which values get a series register, and which of the three regions a name
|
|
3
|
+
* ends up in.
|
|
4
|
+
*
|
|
5
|
+
* The checker answers most of this already: a top-level name whose history the
|
|
6
|
+
* program reads is a register, a `var` is a cell, everything else is a slot
|
|
7
|
+
* (`compiled-program.md` 2.10 and 2.11). Two cases are left over, and both are
|
|
8
|
+
* the emitter's because both are about the shape of the instruction set rather
|
|
9
|
+
* than about the language.
|
|
10
|
+
*
|
|
11
|
+
* **A persistent name whose history is read is both.** `x[1]` on a `var` is
|
|
12
|
+
* "both" in `language.md` 8.3's own words: the cell carries the value forward
|
|
13
|
+
* and the register carries the past. Only a register has history, so a `var`
|
|
14
|
+
* the program indexes needs one beside its cell.
|
|
15
|
+
*
|
|
16
|
+
* **A slot cannot be read from another frame.** Slots are per frame (3.2), so a
|
|
17
|
+
* function body that reads a file-scope name has no instruction that reaches
|
|
18
|
+
* it. A name recomputed every bar can be given a register instead, which is
|
|
19
|
+
* addressed the same way from every frame and holds the same value the slot
|
|
20
|
+
* would have. A `var` cannot be promoted that way, because a register has no
|
|
21
|
+
* persistence: it keeps its cell and takes a register beside it, filled from
|
|
22
|
+
* the cell at the start of the bar and again at every assignment, so a body
|
|
23
|
+
* called anywhere in the bar reads what the cell holds at that point.
|
|
24
|
+
*/
|
|
25
|
+
import { walk, withoutGrouping } from '../ast/index.js';
|
|
26
|
+
import type { Binding } from '../check/index.js';
|
|
27
|
+
import type { Emitter } from './context.js';
|
|
28
|
+
import { declaredNames } from './context.js';
|
|
29
|
+
|
|
30
|
+
/** The bar fields an engine fills from the host's bar, `compiled-program.md` 2.10. */
|
|
31
|
+
export const BAR_FIELDS: readonly string[] = [
|
|
32
|
+
'open',
|
|
33
|
+
'high',
|
|
34
|
+
'low',
|
|
35
|
+
'close',
|
|
36
|
+
'volume',
|
|
37
|
+
'time',
|
|
38
|
+
'hl2',
|
|
39
|
+
'hlc3',
|
|
40
|
+
'ohlc4',
|
|
41
|
+
'hlcc4',
|
|
42
|
+
'oi',
|
|
43
|
+
];
|
|
44
|
+
|
|
45
|
+
/** The `bar.*` facts of `language.md` 7.2, which 2.10 makes registers as well. */
|
|
46
|
+
export const BAR_FACTS: readonly string[] = [
|
|
47
|
+
'bar.index',
|
|
48
|
+
'bar.count',
|
|
49
|
+
'bar.isFirst',
|
|
50
|
+
'bar.isLast',
|
|
51
|
+
'bar.isConfirmed',
|
|
52
|
+
'bar.isRealtime',
|
|
53
|
+
'bar.isNew',
|
|
54
|
+
'bar.updates',
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
/** `oi` is a built-in series and 2.10's table of bar fields does not list it. */
|
|
58
|
+
const UNLISTED_BAR_FIELD = 'oi';
|
|
59
|
+
|
|
60
|
+
export type Placement = 'slot' | 'cell' | 'register';
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The register a built-in series is read from, or nothing when the name is not
|
|
64
|
+
* one.
|
|
65
|
+
*/
|
|
66
|
+
export function registerOfName(e: Emitter, name: string): number | undefined {
|
|
67
|
+
if (name === UNLISTED_BAR_FIELD) {
|
|
68
|
+
e.gap(
|
|
69
|
+
"`oi` is a built-in series of stdlib.md 3.1 and 2.10's table of bar register fields " +
|
|
70
|
+
'does not list it, so the field name it is filled from is this compiler\'s choice',
|
|
71
|
+
'compiled-program.md 2.10, against stdlib.md 3.1',
|
|
72
|
+
undefined,
|
|
73
|
+
false,
|
|
74
|
+
);
|
|
75
|
+
return e.layout.bar(UNLISTED_BAR_FIELD);
|
|
76
|
+
}
|
|
77
|
+
if (BAR_FIELDS.includes(name) || BAR_FACTS.includes(name)) return e.layout.bar(name);
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Names whose value is a declaration handle, which `var` cannot change.
|
|
83
|
+
*
|
|
84
|
+
* A handle is settled before bar 0 and the engine writes it into the slot the
|
|
85
|
+
* declaration names (2.11), so there is nothing for a cell to carry forward and
|
|
86
|
+
* nothing to carry it forward from: `var grid = table(...)` and
|
|
87
|
+
* `grid = table(...)` are the same declaration, and a reader who wrote the
|
|
88
|
+
* first should not get a different program from the second.
|
|
89
|
+
*/
|
|
90
|
+
export function markDeclarationHandles(e: Emitter): void {
|
|
91
|
+
for (const declared of declaredNames(e)) {
|
|
92
|
+
const inner = withoutGrouping(declared.value);
|
|
93
|
+
if (inner.kind !== 'call') continue;
|
|
94
|
+
const name = e.callAt(inner)?.name ?? '';
|
|
95
|
+
if (!e.isDeclaration(name)) continue;
|
|
96
|
+
// `input()` is the one declaration call that also has a value, so it is the
|
|
97
|
+
// one a `var` says something about: `var len = input(14, "Length")` is an
|
|
98
|
+
// ordinary `var` initialised from the setting, and what it buys is a cell a
|
|
99
|
+
// later assignment keeps (`language.md` 8.2 and 13.4). The name therefore
|
|
100
|
+
// does not stand for the declaration the way `grid = table(...)` does, and
|
|
101
|
+
// the input keeps a slot of its own for the engine to write at step 5.
|
|
102
|
+
if (declared.persistent && name === 'input') continue;
|
|
103
|
+
const binding = e.checked.targets.get(declared.name);
|
|
104
|
+
if (binding !== undefined) e.handles.add(binding.id);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Where a name's value lives, the checker's answer with the three cases above. */
|
|
109
|
+
export function placementOf(e: Emitter, binding: Binding): Placement {
|
|
110
|
+
if (e.handles.has(binding.id)) return 'slot';
|
|
111
|
+
if (binding.persistence !== 'none') return 'cell';
|
|
112
|
+
if (binding.storage === 'register' || e.promoted.has(binding.id)) return 'register';
|
|
113
|
+
return 'slot';
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** The register a history read of a name reads from, allocating it if needed. */
|
|
117
|
+
export function shadowRegister(e: Emitter, binding: Binding): number {
|
|
118
|
+
// A setting read inside a read's expression already has one, filled by the
|
|
119
|
+
// engine on every requested bar, and a second would hold nothing (2.16).
|
|
120
|
+
return e.request?.registerFor(e, binding) ?? e.layout.computedFor(binding);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Decides every register before a single instruction is emitted.
|
|
125
|
+
*
|
|
126
|
+
* It has to happen first because the prologue and the epilogue that keep a
|
|
127
|
+
* shadow register in step with its cell are instructions like any other, and
|
|
128
|
+
* they cannot be written after the list they belong at the ends of.
|
|
129
|
+
*/
|
|
130
|
+
export function prepareRegisters(e: Emitter): void {
|
|
131
|
+
markDeclarationHandles(e);
|
|
132
|
+
const readInsideFunction = namesReadInsideFunctions(e);
|
|
133
|
+
|
|
134
|
+
for (const binding of e.checked.bindings) {
|
|
135
|
+
if (binding.kind === 'library' || binding.kind === 'function') continue;
|
|
136
|
+
|
|
137
|
+
const crossesFrame = binding.kind === 'file' && readInsideFunction.has(binding.id);
|
|
138
|
+
const retained = e.options.retain === true && binding.kind === 'file';
|
|
139
|
+
if (binding.persistence === 'none' && (crossesFrame || retained)) {
|
|
140
|
+
e.promoted.add(binding.id);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const placement = placementOf(e, binding);
|
|
144
|
+
if (placement === 'register') {
|
|
145
|
+
e.layout.computedFor(binding);
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
// A `var` a function body reads cannot be promoted, because a register has
|
|
149
|
+
// no persistence: it gets a register beside its cell instead, and the two
|
|
150
|
+
// are kept in step through the bar rather than only at the end of it.
|
|
151
|
+
if (placement === 'cell' && crossesFrame) {
|
|
152
|
+
e.layout.computedFor(binding);
|
|
153
|
+
e.shadowed.add(binding.id);
|
|
154
|
+
e.carried.add(binding.id);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
// A cell or an input slot whose past is read carries a register beside it,
|
|
158
|
+
// written once per bar so the entry for a bar is the value it ended with.
|
|
159
|
+
if (binding.readsHistory) {
|
|
160
|
+
e.layout.computedFor(binding);
|
|
161
|
+
e.shadowed.add(binding.id);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** Every file-scope name some function body reads, which a slot cannot serve. */
|
|
167
|
+
function namesReadInsideFunctions(e: Emitter): ReadonlySet<number> {
|
|
168
|
+
const found = new Set<number>();
|
|
169
|
+
for (const declared of e.checked.functions) {
|
|
170
|
+
walk(declared.declaration, {
|
|
171
|
+
enter: (node) => {
|
|
172
|
+
if (node.kind !== 'nameReference') return;
|
|
173
|
+
const binding = e.checked.references.get(node);
|
|
174
|
+
if (binding !== undefined && binding.kind === 'file') found.add(binding.id);
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
return found;
|
|
179
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One read's expression while it is being emitted, and the settings it reads.
|
|
3
|
+
*
|
|
4
|
+
* Its own file rather than a class inside `context.ts`, because it is not the
|
|
5
|
+
* state one compile shares: it is the state of one expression compiled over
|
|
6
|
+
* another instrument's bars, and the one thing that crosses the boundary
|
|
7
|
+
* between the two.
|
|
8
|
+
*/
|
|
9
|
+
import type { Binding, CheckedInput } from '../check/index.js';
|
|
10
|
+
import { inputHeldBy } from '../check/index.js';
|
|
11
|
+
import type { Emitter } from './context.js';
|
|
12
|
+
import { inputKey } from './context.js';
|
|
13
|
+
import type { RequestInput } from './program.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* `stdlib.md` 15.4 lets an expression inside a read name a setting and nothing
|
|
17
|
+
* else of the file, because a setting resolves before bar 0 and holds for the
|
|
18
|
+
* run while a per-bar name has no counterpart on the requested bars. Each one
|
|
19
|
+
* read here is filled into a register of the body's own table, named by
|
|
20
|
+
* `inputs` on the request (2.16).
|
|
21
|
+
*/
|
|
22
|
+
export class RequestScope {
|
|
23
|
+
readonly inputs: RequestInput[] = [];
|
|
24
|
+
private readonly byInput = new Map<number, number>();
|
|
25
|
+
|
|
26
|
+
/** The register a setting is filled into, or nothing when this is not one. */
|
|
27
|
+
registerFor(e: Emitter, binding: Binding): number | undefined {
|
|
28
|
+
const held = inputHeldBy(binding);
|
|
29
|
+
if (held === undefined) return undefined;
|
|
30
|
+
const input = e.checked.inputs[held];
|
|
31
|
+
return input === undefined ? undefined : this.registerForInput(e, input);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The same register for an `input()` written inside the expression itself.
|
|
36
|
+
*
|
|
37
|
+
* The two forms are one question. `stdlib.md` 15.4 lets a read's expression
|
|
38
|
+
* name a setting because a setting resolves before bar 0 and holds for the
|
|
39
|
+
* run, and that is a fact about the input rather than about whether a name
|
|
40
|
+
* was put in front of it. So both resolve here, keyed by the input, and two
|
|
41
|
+
* reads of one setting inside one body share one register rather than asking
|
|
42
|
+
* the engine to fill the same value twice.
|
|
43
|
+
*/
|
|
44
|
+
registerForInput(e: Emitter, input: CheckedInput): number {
|
|
45
|
+
const found = this.byInput.get(input.id);
|
|
46
|
+
if (found !== undefined) return found;
|
|
47
|
+
const register = e.layout.filled('input', inputKey(input));
|
|
48
|
+
this.byInput.set(input.id, register);
|
|
49
|
+
this.inputs.push({ input: inputKey(input), series: register });
|
|
50
|
+
return register;
|
|
51
|
+
}
|
|
52
|
+
}
|