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,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declared markers into the chart's bar anchored markers.
|
|
3
|
+
*
|
|
4
|
+
* **A marker is a discrete event with a label, not a column of prices.** Its
|
|
5
|
+
* declaration fixes where it sits, what shape it is drawn as and what colour it
|
|
6
|
+
* is, all before bar 0; only the text is read per bar, and a bar whose channel
|
|
7
|
+
* holds no string has no marker at all (`compiled-program.md` 2.8). So this
|
|
8
|
+
* walks one string channel per call site and produces an entry for each bar that
|
|
9
|
+
* wrote one, which is why a `signal()` under an `if` marks the bars the branch
|
|
10
|
+
* was taken and nothing anywhere else.
|
|
11
|
+
*
|
|
12
|
+
* **The text cannot travel in the values table**, which holds numbers, so the
|
|
13
|
+
* markers are built here, once per calculation, and left in the run record that
|
|
14
|
+
* `produced.ts` keeps for the hook to read.
|
|
15
|
+
*
|
|
16
|
+
* **Two of the chart's words are not the language's, and the translation is
|
|
17
|
+
* here.** A position is `"above"` in the language and `aboveBar` on the chart;
|
|
18
|
+
* `"price"` names no price for the language to put a marker at, so it becomes
|
|
19
|
+
* the chart's in-bar position rather than a price this module chose. A shape is
|
|
20
|
+
* the same word in both worlds for nine of the ten, and the tenth, `"label"`, is
|
|
21
|
+
* a plate whose tail points at the anchor, so the side the marker sits on is
|
|
22
|
+
* what decides which of the chart's two plates it is.
|
|
23
|
+
*
|
|
24
|
+
* A marker is anchored to a bar's time rather than to its index, because an
|
|
25
|
+
* index moves when more history loads and a time does not.
|
|
26
|
+
*/
|
|
27
|
+
import type { CompiledProgram } from '../../core/emit/index.js';
|
|
28
|
+
import type { ChartBar } from './contract.js';
|
|
29
|
+
import type { InputLookup } from './fields.js';
|
|
30
|
+
import type { Columns } from './run.js';
|
|
31
|
+
import type { ChartMarker } from './surfaces.js';
|
|
32
|
+
/**
|
|
33
|
+
* Every marker the run produced, oldest bar first.
|
|
34
|
+
*
|
|
35
|
+
* The bars are walked once per call site rather than once in total, so the
|
|
36
|
+
* entries of one call site are contiguous; the sort afterwards is what puts the
|
|
37
|
+
* whole set in bar order, and it is stable, so two call sites that marked one
|
|
38
|
+
* bar stay in declaration order on it.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildMarkers(program: CompiledProgram, lookup: InputLookup, bars: readonly ChartBar[], columns: Columns, defaultColour: string): readonly ChartMarker[];
|
|
41
|
+
//# sourceMappingURL=markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,0BAA0B,CAAC;AAExE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAyC,MAAM,eAAe,CAAC;AA6BxF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,GACpB,SAAS,WAAW,EAAE,CAaxB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { cssColour } from './colours.js';
|
|
2
|
+
import { colourField, stringField } from './fields.js';
|
|
3
|
+
/** The language's three positions, in the chart's own words. */
|
|
4
|
+
const POSITIONS = {
|
|
5
|
+
above: 'aboveBar',
|
|
6
|
+
below: 'belowBar',
|
|
7
|
+
price: 'inBar',
|
|
8
|
+
};
|
|
9
|
+
/** The nine shapes both worlds spell the same way. */
|
|
10
|
+
const SHAPES = [
|
|
11
|
+
'arrowUp',
|
|
12
|
+
'arrowDown',
|
|
13
|
+
'triangleUp',
|
|
14
|
+
'triangleDown',
|
|
15
|
+
'circle',
|
|
16
|
+
'square',
|
|
17
|
+
'diamond',
|
|
18
|
+
'cross',
|
|
19
|
+
'flag',
|
|
20
|
+
];
|
|
21
|
+
/** Which plate a `"label"` is: the tail points at the bar from where it sits. */
|
|
22
|
+
const PLATES = {
|
|
23
|
+
aboveBar: 'labelDown',
|
|
24
|
+
belowBar: 'labelUp',
|
|
25
|
+
inBar: 'text',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Every marker the run produced, oldest bar first.
|
|
29
|
+
*
|
|
30
|
+
* The bars are walked once per call site rather than once in total, so the
|
|
31
|
+
* entries of one call site are contiguous; the sort afterwards is what puts the
|
|
32
|
+
* whole set in bar order, and it is stable, so two call sites that marked one
|
|
33
|
+
* bar stay in declaration order on it.
|
|
34
|
+
*/
|
|
35
|
+
export function buildMarkers(program, lookup, bars, columns, defaultColour) {
|
|
36
|
+
const out = [];
|
|
37
|
+
for (const declared of program.outputs.markers) {
|
|
38
|
+
const style = styleOf(declared, lookup, defaultColour);
|
|
39
|
+
const column = columns[declared.channel] ?? [];
|
|
40
|
+
for (let index = 0; index < bars.length; index += 1) {
|
|
41
|
+
const text = column[index];
|
|
42
|
+
const bar = bars[index];
|
|
43
|
+
if (typeof text !== 'string' || bar === undefined)
|
|
44
|
+
continue;
|
|
45
|
+
out.push({ index, marker: { ...style, time: bar.time, text } });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return out.sort((a, b) => a.index - b.index).map((one) => one.marker);
|
|
49
|
+
}
|
|
50
|
+
/** The part of a marker that is declared once and is the same on every bar. */
|
|
51
|
+
function styleOf(declared, lookup, defaultColour) {
|
|
52
|
+
const colour = colourField(declared.color, lookup);
|
|
53
|
+
const written = stringField(declared.position, lookup, 'above');
|
|
54
|
+
// A declaration a host cannot draw takes the default rather than stopping the
|
|
55
|
+
// study: the compiler refuses an unknown one with OS3008, so a value arriving
|
|
56
|
+
// here that is not in the set came from a hand edited program.
|
|
57
|
+
const position = POSITIONS[written] ?? 'aboveBar';
|
|
58
|
+
return {
|
|
59
|
+
position,
|
|
60
|
+
shape: shapeOf(stringField(declared.shape, lookup, 'label'), position),
|
|
61
|
+
// The language has no marker size and the chart needs one, so every marker
|
|
62
|
+
// is drawn at the size the chart's own studies use.
|
|
63
|
+
size: 'small',
|
|
64
|
+
// `signal`'s colour defaults to absence, which `stdlib.md` 14.3 reads as the
|
|
65
|
+
// host's own default for a marker. The chart has no default of its own to
|
|
66
|
+
// fall back to, so a host that has one states it.
|
|
67
|
+
color: colour === undefined ? defaultColour : cssColour(colour),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function shapeOf(written, position) {
|
|
71
|
+
if (SHAPES.includes(written))
|
|
72
|
+
return written;
|
|
73
|
+
return PLATES[position];
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../../src/adapters/charts/markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bar colouring and the pane background, and the rule for who owns the candles.
|
|
3
|
+
*
|
|
4
|
+
* Both are one colour per bar on one channel, so both ride the values table as
|
|
5
|
+
* the two number columns a colour packs into, and both are read back as a column
|
|
6
|
+
* of colours the length of the bars. A bar the script left alone has an absent
|
|
7
|
+
* channel, and absence on a drawing surface is a gap: the bar keeps its own
|
|
8
|
+
* colour and the column behind it stays unshaded, which is the `null` the chart
|
|
9
|
+
* reads for exactly that.
|
|
10
|
+
*
|
|
11
|
+
* **Bar colouring is a statement about the price bars themselves, and they are
|
|
12
|
+
* not the study's to own.** A pane may hold several studies and the instrument's
|
|
13
|
+
* candles are one object, so two studies painting them is not two drawings that
|
|
14
|
+
* overlap, it is two answers to one question. The rule is
|
|
15
|
+
* `compiled-program.md` 11's: the owner is the study latest in the chart's own
|
|
16
|
+
* study order that paints, and every other study's bar colouring is not drawn.
|
|
17
|
+
*
|
|
18
|
+
* Two things follow, and both are the point of having a rule at all. It is
|
|
19
|
+
* decided from the list of studies, which is what the legend shows and what the
|
|
20
|
+
* user reorders, rather than from the order the calculations happened to return
|
|
21
|
+
* in, so it does not change when one study is slower than another on one frame.
|
|
22
|
+
* And it changes only when the user adds, removes or reorders a study, so the
|
|
23
|
+
* candles do not flicker between two colourings while both studies keep
|
|
24
|
+
* recomputing. A chart that arbitrates between publishers itself applies that
|
|
25
|
+
* rule from its own list and this descriptor simply states what it wants;
|
|
26
|
+
* `candleOwner` is the same rule for a host whose chart does not.
|
|
27
|
+
*
|
|
28
|
+
* A background needs no such rule. It is drawn behind everything in its own
|
|
29
|
+
* pane, a colour carries its own alpha in this language, and two translucent
|
|
30
|
+
* shadings compose the way any two drawings in a pane do.
|
|
31
|
+
*/
|
|
32
|
+
import type { CompiledProgram } from '../../core/emit/index.js';
|
|
33
|
+
import type { ColumnSpec } from './columns.js';
|
|
34
|
+
import type { ChartSurfaceContext } from './surfaces.js';
|
|
35
|
+
/** A column of colours, one per bar, `null` where the script painted none. */
|
|
36
|
+
export type Painting = (ctx: ChartSurfaceContext) => readonly (string | null)[];
|
|
37
|
+
export interface PaintBuild {
|
|
38
|
+
readonly columns: readonly ColumnSpec[];
|
|
39
|
+
readonly barColors: Painting | undefined;
|
|
40
|
+
readonly background: Painting | undefined;
|
|
41
|
+
}
|
|
42
|
+
export declare function buildPaint(program: CompiledProgram): PaintBuild;
|
|
43
|
+
/** A study on the chart, as the ownership rule reads one. */
|
|
44
|
+
export interface Painter {
|
|
45
|
+
readonly id: string;
|
|
46
|
+
/** The study's own `barColors`, or nothing where it declares none. */
|
|
47
|
+
readonly barColors?: unknown;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Which study's bar colouring is drawn, given the chart's own study order.
|
|
51
|
+
*
|
|
52
|
+
* The list is the host's, oldest first, which is the order a legend lists them
|
|
53
|
+
* and the order a user changes deliberately. The answer is the last study in it
|
|
54
|
+
* that paints: a study added on top of another is the one whose colouring the
|
|
55
|
+
* user just asked to see, and adding a study that paints nothing changes
|
|
56
|
+
* nothing.
|
|
57
|
+
*
|
|
58
|
+
* Nothing is returned when no study paints, which is the ordinary case.
|
|
59
|
+
*/
|
|
60
|
+
export declare function candleOwner(studies: readonly Painter[]): string | undefined;
|
|
61
|
+
//# sourceMappingURL=paint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/paint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAS,MAAM,0BAA0B,CAAC;AAEvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAMzD,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAQ/D;AAmBD,6DAA6D;AAC7D,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,SAAS,CAM3E"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { colourAt, colourColumns } from './columns.js';
|
|
2
|
+
/** The key each paint channel's two colour columns travel under. */
|
|
3
|
+
const BAR_COLOR = 'openscript:barColor';
|
|
4
|
+
const BACKGROUND = 'openscript:background';
|
|
5
|
+
export function buildPaint(program) {
|
|
6
|
+
const bar = oneOf(program.outputs.barColor, BAR_COLOR);
|
|
7
|
+
const pane = oneOf(program.outputs.background, BACKGROUND);
|
|
8
|
+
return {
|
|
9
|
+
columns: [...bar.columns, ...pane.columns],
|
|
10
|
+
barColors: bar.read,
|
|
11
|
+
background: pane.read,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function oneOf(paint, key) {
|
|
15
|
+
if (paint === null)
|
|
16
|
+
return { columns: [], read: undefined };
|
|
17
|
+
return {
|
|
18
|
+
columns: colourColumns(key, paint.channel),
|
|
19
|
+
read: (ctx) => {
|
|
20
|
+
const out = new Array(ctx.bars.length);
|
|
21
|
+
for (let index = 0; index < out.length; index += 1) {
|
|
22
|
+
out[index] = colourAt(ctx.values, index, key) ?? null;
|
|
23
|
+
}
|
|
24
|
+
return out;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Which study's bar colouring is drawn, given the chart's own study order.
|
|
30
|
+
*
|
|
31
|
+
* The list is the host's, oldest first, which is the order a legend lists them
|
|
32
|
+
* and the order a user changes deliberately. The answer is the last study in it
|
|
33
|
+
* that paints: a study added on top of another is the one whose colouring the
|
|
34
|
+
* user just asked to see, and adding a study that paints nothing changes
|
|
35
|
+
* nothing.
|
|
36
|
+
*
|
|
37
|
+
* Nothing is returned when no study paints, which is the ordinary case.
|
|
38
|
+
*/
|
|
39
|
+
export function candleOwner(studies) {
|
|
40
|
+
for (let index = studies.length - 1; index >= 0; index -= 1) {
|
|
41
|
+
const study = studies[index];
|
|
42
|
+
if (study !== undefined && study.barColors !== undefined)
|
|
43
|
+
return study.id;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=paint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paint.js","sourceRoot":"","sources":["../../../src/adapters/charts/paint.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIvD,oEAAoE;AACpE,MAAM,SAAS,GAAG,qBAAqB,CAAC;AACxC,MAAM,UAAU,GAAG,uBAAuB,CAAC;AAW3C,MAAM,UAAU,UAAU,CAAC,OAAwB;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3D,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1C,SAAS,EAAE,GAAG,CAAC,IAAI;QACnB,UAAU,EAAE,IAAI,CAAC,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CACZ,KAAmB,EACnB,GAAW;IAEX,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5D,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;QAC1C,IAAI,EAAE,CAAC,GAAwB,EAA8B,EAAE;YAC7D,MAAM,GAAG,GAAG,IAAI,KAAK,CAAgB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;YACxD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AASD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declared plots into the chart's plots.
|
|
3
|
+
*
|
|
4
|
+
* This is the part of the mapping that is a rename and a table. A plot names a
|
|
5
|
+
* style, a width, a dash pattern, a scale, an offset and a colour, and every one
|
|
6
|
+
* of those is a field the chart's plot spec already has. Three places are not a
|
|
7
|
+
* rename and are worth knowing:
|
|
8
|
+
*
|
|
9
|
+
* **A colour a script wrote as an `input()` becomes the settings key rather than
|
|
10
|
+
* a value.** The chart generates an appearance row per plot, and a descriptor
|
|
11
|
+
* that already declares a colour input owns that key, so pointing the plot at
|
|
12
|
+
* the script's own key makes one row drive both the drawn line and the value the
|
|
13
|
+
* engine computes with. A generated row beside it would shadow the script's, and
|
|
14
|
+
* changing the script's would silently stop working.
|
|
15
|
+
*
|
|
16
|
+
* **A colour a script computed per bar is not a value at all.** It arrives on a
|
|
17
|
+
* channel, travels as two number columns and is read back by the per-bar colour
|
|
18
|
+
* callback, which is the only shape a chart's values table has room for.
|
|
19
|
+
*
|
|
20
|
+
* **Scale formatting belongs to a scale and not to a series.** A study's own
|
|
21
|
+
* `precision` and `format` are its pane's, so they reach only the plots that
|
|
22
|
+
* stay in that pane: setting them on a plot drawn over the price pane would
|
|
23
|
+
* reformat the instrument's own axis, which is what OS8007 warns a script about
|
|
24
|
+
* at compile time.
|
|
25
|
+
*/
|
|
26
|
+
import type { CompiledProgram } from '../../core/emit/index.js';
|
|
27
|
+
import type { ColumnSpec } from './columns.js';
|
|
28
|
+
import type { ChartPlot } from './contract.js';
|
|
29
|
+
import type { InputLookup } from './fields.js';
|
|
30
|
+
export interface PlotsBuild {
|
|
31
|
+
readonly plots: readonly ChartPlot[];
|
|
32
|
+
readonly columns: readonly ColumnSpec[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* `ownPane` is whether the study draws in a pane of its own, which is what
|
|
36
|
+
* decides whether the study's own scale formatting reaches a plot at all.
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildPlots(program: CompiledProgram, lookup: InputLookup, ownPane: boolean): PlotsBuild;
|
|
39
|
+
//# sourceMappingURL=plots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plots.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/plots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAQ,MAAM,0BAA0B,CAAC;AAItE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAGV,SAAS,EAKV,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA6B/C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,GACf,UAAU,CASZ"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { buildCandle } from './candles.js';
|
|
2
|
+
import { cssColour } from './colours.js';
|
|
3
|
+
import { colourAt, colourColumns } from './columns.js';
|
|
4
|
+
import { boolField, colourField, isReference, numberField, stringField } from './fields.js';
|
|
5
|
+
/**
|
|
6
|
+
* The seven styles a plot declaration may carry, in the chart's spelling.
|
|
7
|
+
*
|
|
8
|
+
* A name that is not one of them is drawn as a line. Load-time verification
|
|
9
|
+
* enumerates a channel's type and not a plot's, so a program can reach here
|
|
10
|
+
* carrying a style no engine has, and there is no catalogue code for a declared
|
|
11
|
+
* plot style a host cannot draw. A line is the least wrong thing to draw and
|
|
12
|
+
* inventing a code to refuse it is not this adapter's to do.
|
|
13
|
+
*/
|
|
14
|
+
const SERIES_TYPES = {
|
|
15
|
+
line: 'line',
|
|
16
|
+
lineWithMarkers: 'line-markers',
|
|
17
|
+
step: 'step',
|
|
18
|
+
area: 'area',
|
|
19
|
+
histogram: 'histogram',
|
|
20
|
+
column: 'column',
|
|
21
|
+
candle: 'candlestick',
|
|
22
|
+
};
|
|
23
|
+
const SCALES = {
|
|
24
|
+
right: 'right',
|
|
25
|
+
left: 'left',
|
|
26
|
+
none: '',
|
|
27
|
+
};
|
|
28
|
+
const LINE_STYLES = ['solid', 'dashed', 'dotted'];
|
|
29
|
+
/**
|
|
30
|
+
* `ownPane` is whether the study draws in a pane of its own, which is what
|
|
31
|
+
* decides whether the study's own scale formatting reaches a plot at all.
|
|
32
|
+
*/
|
|
33
|
+
export function buildPlots(program, lookup, ownPane) {
|
|
34
|
+
const plots = [];
|
|
35
|
+
const columns = [];
|
|
36
|
+
for (const declared of program.outputs.plots) {
|
|
37
|
+
const built = onePlot(program, declared, lookup, ownPane);
|
|
38
|
+
plots.push(built.plot);
|
|
39
|
+
columns.push(...built.columns);
|
|
40
|
+
}
|
|
41
|
+
return { plots, columns };
|
|
42
|
+
}
|
|
43
|
+
function onePlot(program, declared, lookup, ownPane) {
|
|
44
|
+
const key = declared.key;
|
|
45
|
+
const title = stringField(declared.title, lookup, key);
|
|
46
|
+
const overlay = boolField(declared.overlay, lookup);
|
|
47
|
+
const inOwnPane = ownPane && overlay !== true;
|
|
48
|
+
const offset = numberField(declared.offset, lookup, 0);
|
|
49
|
+
const columns = [{ key, channel: declared.channel, part: 'value' }];
|
|
50
|
+
const candle = declared.ohlc === null ? undefined : buildCandle(key, declared.ohlc, lookup);
|
|
51
|
+
if (candle !== undefined)
|
|
52
|
+
columns.push(...candle.columns);
|
|
53
|
+
if (declared.colorChannel !== null)
|
|
54
|
+
columns.push(...colourColumns(key, declared.colorChannel));
|
|
55
|
+
// A constant colour is nothing when the script named none, which leaves the
|
|
56
|
+
// colour to the host's palette, and nothing when a channel carries it per bar,
|
|
57
|
+
// because a constant beside a per-bar colour is a colour the plot never draws.
|
|
58
|
+
const constant = candle === undefined && declared.colorChannel === null
|
|
59
|
+
? colourField(declared.color, lookup)
|
|
60
|
+
: undefined;
|
|
61
|
+
const style = {
|
|
62
|
+
title,
|
|
63
|
+
lineWidth: numberField(declared.width, lookup, 1.5),
|
|
64
|
+
lineStyle: lineStyleOf(stringField(declared.lineStyle, lookup, 'solid')),
|
|
65
|
+
...(candle?.style ?? {}),
|
|
66
|
+
...(constant === undefined ? {} : { color: cssColour(constant) }),
|
|
67
|
+
};
|
|
68
|
+
const format = priceFormatOf(program, declared, lookup, inOwnPane);
|
|
69
|
+
const plot = {
|
|
70
|
+
key,
|
|
71
|
+
type: SERIES_TYPES[declared.type] ?? 'line',
|
|
72
|
+
title,
|
|
73
|
+
style,
|
|
74
|
+
priceScaleId: SCALES[stringField(declared.scale, lookup, 'right')] ?? 'right',
|
|
75
|
+
...(format === undefined ? {} : { priceFormat: format }),
|
|
76
|
+
...(overlay === undefined ? {} : { overlay }),
|
|
77
|
+
...(offset === 0 ? {} : { offset }),
|
|
78
|
+
...(isReference(declared.color) ? { colorKey: declared.color.input } : {}),
|
|
79
|
+
...(candle === undefined ? {} : { ohlc: candle.ohlc }),
|
|
80
|
+
...(candle?.colorParts === undefined ? {} : { colorParts: candle.colorParts }),
|
|
81
|
+
...(declared.colorChannel === null
|
|
82
|
+
? {}
|
|
83
|
+
: {
|
|
84
|
+
colorBy: (ctx) => colourAt(ctx.values, ctx.index, key),
|
|
85
|
+
}),
|
|
86
|
+
};
|
|
87
|
+
return { plot, columns };
|
|
88
|
+
}
|
|
89
|
+
function lineStyleOf(value) {
|
|
90
|
+
return LINE_STYLES.includes(value) ? value : 'solid';
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The value formatting of the scale this plot maps to.
|
|
94
|
+
*
|
|
95
|
+
* The plot's own `format` and `precision` win. The study's own are applied only
|
|
96
|
+
* where the plot stays in the study's pane, so an overlaid column leaves the
|
|
97
|
+
* instrument's axis exactly as the chart already formats it.
|
|
98
|
+
*/
|
|
99
|
+
function priceFormatOf(program, declared, lookup, inOwnPane) {
|
|
100
|
+
const format = declared.priceFormat !== null
|
|
101
|
+
? stringField(declared.priceFormat, lookup, 'price')
|
|
102
|
+
: inOwnPane
|
|
103
|
+
? stringField(program.meta.format, lookup, 'price')
|
|
104
|
+
: undefined;
|
|
105
|
+
if (format === undefined)
|
|
106
|
+
return undefined;
|
|
107
|
+
if (format === 'volume')
|
|
108
|
+
return { type: 'volume' };
|
|
109
|
+
const precision = declared.precision !== null
|
|
110
|
+
? numberField(declared.precision, lookup, 4)
|
|
111
|
+
: inOwnPane
|
|
112
|
+
? numberField(program.meta.precision, lookup, 4)
|
|
113
|
+
: undefined;
|
|
114
|
+
const type = format === 'percent' ? 'percent' : 'price';
|
|
115
|
+
return precision === undefined ? { type } : { type, precision };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=plots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plots.js","sourceRoot":"","sources":["../../../src/adapters/charts/plots.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What one calculation produced that no column of numbers can carry.
|
|
3
|
+
*
|
|
4
|
+
* A chart's calculation returns a table of numbers, and five of the things a
|
|
5
|
+
* study emits are not numbers: a marker's text, a cell's text, a drawing's
|
|
6
|
+
* caption, a drawing's geometry and an alert's message. The chart reads each of
|
|
7
|
+
* those from its own hook, and **those hooks are handed the run rather than the
|
|
8
|
+
* study**: the bars, the table the calculation just returned, and the settings
|
|
9
|
+
* it was run with. There is no per-instance store among them, so there is
|
|
10
|
+
* nowhere for the calculation to leave the answer and nowhere for the hook to
|
|
11
|
+
* pick it up.
|
|
12
|
+
*
|
|
13
|
+
* This is that place, and it is deliberately the only one. An alert's message
|
|
14
|
+
* was thought to have no way across for exactly the reason above, and was
|
|
15
|
+
* dropped for the life of this adapter: the entry carried the declared title
|
|
16
|
+
* and every notification a user received was the same sentence, whatever the
|
|
17
|
+
* script had computed from the bar that fired. The alert's own context carries
|
|
18
|
+
* the settings, so it reaches this record like every other hook.
|
|
19
|
+
*
|
|
20
|
+
* **The settings object is the instance.** A chart resolves one settings object
|
|
21
|
+
* per study instance and hands the same object to the calculation and to every
|
|
22
|
+
* hook that follows it, so its identity is what tells three moving averages of
|
|
23
|
+
* one script apart. A map keyed on it therefore holds one record per instance,
|
|
24
|
+
* and holds it only while the chart still holds the settings: the map is weak,
|
|
25
|
+
* so an instance the chart has dropped takes its record with it and nothing
|
|
26
|
+
* here has to be told about removal.
|
|
27
|
+
*
|
|
28
|
+
* **A hook that finds no record draws nothing.** That is the honest answer to a
|
|
29
|
+
* hook called before any calculation has run, and it is a gap rather than
|
|
30
|
+
* somebody else's markers, which is what a single latched record would give on
|
|
31
|
+
* a chart holding two studies.
|
|
32
|
+
*/
|
|
33
|
+
import type { Value } from '../../core/engine/index.js';
|
|
34
|
+
import type { ChartSettings } from './contract.js';
|
|
35
|
+
import type { ChartDrawing, ChartGrid, ChartMarker } from './surfaces.js';
|
|
36
|
+
/**
|
|
37
|
+
* One declared alert's message channel, whole, as the run left it.
|
|
38
|
+
*
|
|
39
|
+
* It is the engine's own column and not a copy of it. A message is a string per
|
|
40
|
+
* bar and the alert that carries it fires on a handful of bars out of a hundred
|
|
41
|
+
* thousand, so building a second column here would cost the length of the
|
|
42
|
+
* history to answer a question about one bar.
|
|
43
|
+
*/
|
|
44
|
+
export type MessageColumn = readonly Value[];
|
|
45
|
+
/** One run's non-numeric output, as the hooks that follow it read it. */
|
|
46
|
+
export interface Produced {
|
|
47
|
+
readonly markers: readonly ChartMarker[];
|
|
48
|
+
readonly table: ChartGrid | null;
|
|
49
|
+
readonly drawings: readonly ChartDrawing[];
|
|
50
|
+
/** One entry per declared alert, in the order `outputs.alerts` declares them. */
|
|
51
|
+
readonly messages: readonly MessageColumn[];
|
|
52
|
+
}
|
|
53
|
+
/** What the calculation just produced, against the settings it was run with. */
|
|
54
|
+
export declare function remember(settings: ChartSettings, produced: Produced): void;
|
|
55
|
+
/** What the last calculation for this instance produced, or nothing. */
|
|
56
|
+
export declare function producedFor(settings: ChartSettings): Produced;
|
|
57
|
+
//# sourceMappingURL=produced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produced.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/produced.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,KAAK,EAAE,CAAC;AAE7C,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAMD,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE1E;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAE7D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const NOTHING = { markers: [], table: null, drawings: [], messages: [] };
|
|
2
|
+
const runs = new WeakMap();
|
|
3
|
+
/** What the calculation just produced, against the settings it was run with. */
|
|
4
|
+
export function remember(settings, produced) {
|
|
5
|
+
runs.set(settings, produced);
|
|
6
|
+
}
|
|
7
|
+
/** What the last calculation for this instance produced, or nothing. */
|
|
8
|
+
export function producedFor(settings) {
|
|
9
|
+
return runs.get(settings) ?? NOTHING;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=produced.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produced.js","sourceRoot":"","sources":["../../../src/adapters/charts/produced.ts"],"names":[],"mappings":"AAuDA,MAAM,OAAO,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAEnF,MAAM,IAAI,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEpD,gFAAgF;AAChF,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE,QAAkB;IAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,QAAuB;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Another instrument's bars: the one thing a study needs that the chart's own
|
|
3
|
+
* bars cannot answer.
|
|
4
|
+
*
|
|
5
|
+
* Everything else this adapter maps is computed from bars the chart already
|
|
6
|
+
* holds, this included where the read is of the chart's own instrument: the
|
|
7
|
+
* engine folds those itself and this is never asked. A read of **another**
|
|
8
|
+
* instrument is different, and the difference is the whole of this file.
|
|
9
|
+
*
|
|
10
|
+
* **The engine asks once and synchronously; the chart answers later.** A
|
|
11
|
+
* request's identity is fixed before bar 0 (`compiled-program.md` 2.16), so the
|
|
12
|
+
* engine settles the whole set at load and asks the host for each one there and
|
|
13
|
+
* then. A chart's transport is a promise. So the two are joined by a station
|
|
14
|
+
* that lives in the study instance's own store: the engine's question is
|
|
15
|
+
* answered from what the station holds now, which on the first pass is nothing,
|
|
16
|
+
* and the answer for a read nobody has fetched yet is `pending`. The read is
|
|
17
|
+
* absent, `req.isReady` is false, the rest of the study keeps drawing, and that
|
|
18
|
+
* is exactly what `stdlib.md` 15.5 describes.
|
|
19
|
+
*
|
|
20
|
+
* **The lifecycle is what has a transport, and it runs after the first
|
|
21
|
+
* calculation.** A chart computes a study once before it attaches its
|
|
22
|
+
* lifecycle, so a station that waited for a transport before answering would
|
|
23
|
+
* refuse the study at load rather than draw it while the bars arrive. Instead
|
|
24
|
+
* the first calculation records what it was asked for, the lifecycle brings the
|
|
25
|
+
* transport and fetches it, and the recompute it then asks for is the one that
|
|
26
|
+
* has the bars. A study is drawn twice and never refused for a fetch that had
|
|
27
|
+
* not happened yet.
|
|
28
|
+
*
|
|
29
|
+
* **A range is a floor, never a promise.** What the host is asked for is the
|
|
30
|
+
* chart's own span, extended back by the read's `warmup` in requested bars and
|
|
31
|
+
* forward to the end of the bucket the newest chart bar is inside, and then
|
|
32
|
+
* quantised to bucket boundaries. Quantising is what stops a fetch per bar: the
|
|
33
|
+
* range a chart asks for is then the same range for every bar inside one
|
|
34
|
+
* requested bar, and it widens once when a bucket closes. A host that serves
|
|
35
|
+
* less gets a read that is absent for longer, never a wrong number.
|
|
36
|
+
*
|
|
37
|
+
* **What was fetched keeps serving while the next fetch is in flight.** The
|
|
38
|
+
* alternative is a line that breaks every time a bucket closes, which looks like
|
|
39
|
+
* a defect in the study rather than a refresh in the transport. The first fetch
|
|
40
|
+
* has nothing to serve and is the only one that reads as pending.
|
|
41
|
+
*
|
|
42
|
+
* **A failure is the host's own words.** A transport that rejects is OS6009
|
|
43
|
+
* carrying the message it rejected with, which is the one the chart writes when
|
|
44
|
+
* a host registered no provider at all: `req.error(read)` then says so in the
|
|
45
|
+
* script, the data status says so to the user, and the study keeps drawing
|
|
46
|
+
* everything that does not depend on the read.
|
|
47
|
+
*/
|
|
48
|
+
import type { RequestProvider } from '../../core/engine/index.js';
|
|
49
|
+
import type { ChartBar, ChartStore } from './contract.js';
|
|
50
|
+
import type { ChartAttachContext } from './surfaces.js';
|
|
51
|
+
export declare class Station {
|
|
52
|
+
private readonly entries;
|
|
53
|
+
/** What the last calculation asked about, keyed the same way. */
|
|
54
|
+
private readonly wanted;
|
|
55
|
+
private transport;
|
|
56
|
+
private closed;
|
|
57
|
+
private unsubscribe;
|
|
58
|
+
/**
|
|
59
|
+
* The provider the engine is loaded with, bound to the bars on screen.
|
|
60
|
+
*
|
|
61
|
+
* Asking for one is the start of a round: the engine is about to ask about
|
|
62
|
+
* every read this program makes, so what was wanted before this moment is
|
|
63
|
+
* what the previous program wanted. A setting that names a different
|
|
64
|
+
* instrument would otherwise leave the old one being fetched for as long as
|
|
65
|
+
* the study lives, and reported on.
|
|
66
|
+
*/
|
|
67
|
+
provider(bars: readonly ChartBar[]): RequestProvider;
|
|
68
|
+
/**
|
|
69
|
+
* The range each read needs, against the bars as they now stand.
|
|
70
|
+
*
|
|
71
|
+
* A calculation that reused the held engine never asked the provider
|
|
72
|
+
* anything, so nothing would notice that the newest chart bar has moved into
|
|
73
|
+
* the next requested bucket. This is what notices: it widens what is wanted,
|
|
74
|
+
* and the fetch that follows asks for the recompute that reads it. An answer
|
|
75
|
+
* is never spliced into a run that is already past the bars it would have
|
|
76
|
+
* changed, which is `host-interface.md` 5.3.
|
|
77
|
+
*/
|
|
78
|
+
extend(bars: readonly ChartBar[]): void;
|
|
79
|
+
/**
|
|
80
|
+
* After a calculation: start what is missing and say where the study stands.
|
|
81
|
+
*
|
|
82
|
+
* It is the end of the calculation rather than the middle of it because a
|
|
83
|
+
* fetch that resolves asks for a recompute, and asking for one from inside the
|
|
84
|
+
* calculation it would replace is a loop waiting to be written.
|
|
85
|
+
*/
|
|
86
|
+
settle(): void;
|
|
87
|
+
/** The lifecycle, with the transport the first calculation did not have. */
|
|
88
|
+
open(ctx: ChartAttachContext): void;
|
|
89
|
+
/**
|
|
90
|
+
* The lifecycle is over: nothing in flight may write anything again.
|
|
91
|
+
*
|
|
92
|
+
* What was fetched is kept. A chart runs the lifecycle again after a settings
|
|
93
|
+
* change, and throwing the bars away there would put a network round trip
|
|
94
|
+
* behind moving a slider. A fetch that was in flight is marked as not in
|
|
95
|
+
* flight, so a station that is opened again starts it rather than waiting for
|
|
96
|
+
* an answer whose callback has been told to do nothing.
|
|
97
|
+
*/
|
|
98
|
+
close(): void;
|
|
99
|
+
/** Every read the host refused, tried again from the beginning. */
|
|
100
|
+
private again;
|
|
101
|
+
private pump;
|
|
102
|
+
private fetch;
|
|
103
|
+
/** An answer, once the transport has one. */
|
|
104
|
+
private landed;
|
|
105
|
+
private refused;
|
|
106
|
+
private failed;
|
|
107
|
+
/** Where the study's own data stands, in the four words the chart has. */
|
|
108
|
+
private status;
|
|
109
|
+
}
|
|
110
|
+
/** The station this instance holds, created by whichever half arrives first. */
|
|
111
|
+
export declare function stationIn(store: ChartStore): Station;
|
|
112
|
+
/** The station this instance holds, when it has one. */
|
|
113
|
+
export declare function stationOf(store: ChartStore): Station | undefined;
|
|
114
|
+
//# sourceMappingURL=requests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/requests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,eAAe,CAAC;AAsCzE,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,iEAAiE;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAA2B;IAE9C;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,GAAG,eAAe;IAepD;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI;IAYvC;;;;;;OAMG;IACH,MAAM,IAAI,IAAI;IAQd,4EAA4E;IAC5E,IAAI,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI;IAyBnC;;;;;;;;OAQG;IACH,KAAK,IAAI,IAAI;IAQb,mEAAmE;IACnE,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,KAAK;IAoBb,6CAA6C;IAC7C,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,MAAM;IAOd,0EAA0E;IAC1E,OAAO,CAAC,MAAM;CAaf;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAMpD;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAGhE"}
|