openalgo-script 0.1.0-alpha.0 → 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 +1249 -0
- package/README.md +288 -255
- 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 +62 -6
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +49 -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/index.d.ts +2 -0
- package/dist/core/version/index.d.ts.map +1 -0
- package/dist/core/version/index.js +2 -0
- package/dist/core/version/index.js.map +1 -0
- package/dist/core/version/version.generated.d.ts +10 -0
- package/dist/core/version/version.generated.d.ts.map +1 -0
- package/dist/core/version/version.generated.js +14 -0
- package/dist/core/version/version.generated.js.map +1 -0
- package/package.json +88 -52
- package/spec/errors.json +3403 -3204
- 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 +129 -6
- package/src/core/parse/expressions.ts +1 -1
- package/src/core/parse/functions.ts +109 -109
- package/src/core/parse/names.ts +29 -2
- package/src/core/parse/switches.ts +105 -105
- 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/index.ts +1 -0
- package/src/core/version/version.generated.ts +15 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The state one compile of one file shares, and the small answers every pass
|
|
3
|
+
* asks of it.
|
|
4
|
+
*
|
|
5
|
+
* The passes that emit code are ordinary functions taking this and a node, on
|
|
6
|
+
* the same arrangement the checker uses, so a reader can follow one expression
|
|
7
|
+
* from its syntax to its instructions without holding a class hierarchy in
|
|
8
|
+
* their head. Everything mutable is here and nowhere else.
|
|
9
|
+
*/
|
|
10
|
+
import type { Argument, Call, Expression, Name, NameReference } from '../ast/index.js';
|
|
11
|
+
import type { Binding, CheckedCall, CheckedInput, CheckedScript, LibraryEntry } from '../check/index.js';
|
|
12
|
+
import type { RequestScope } from './request-scope.js';
|
|
13
|
+
import type { DiagnosticSink } from '../diagnostics/index.js';
|
|
14
|
+
import type { SourceFile } from '../source/index.js';
|
|
15
|
+
import type { Span } from '../span/index.js';
|
|
16
|
+
import { CodeBuilder } from './code.js';
|
|
17
|
+
import { GapLog } from './gaps.js';
|
|
18
|
+
import { FrameLayout, Layout } from './layout.js';
|
|
19
|
+
import { ConstantPool } from './pool.js';
|
|
20
|
+
import type { Alert, Band, CompiledFunction, CompiledInput, Grid, LibraryFunction, Level, Loop, Marker, Paint, Plot, Request } from './program.js';
|
|
21
|
+
import type { Value } from './values.js';
|
|
22
|
+
/**
|
|
23
|
+
* The calls that declare part of the file's fixed shape and compile to no
|
|
24
|
+
* `CALL_LIB` at all.
|
|
25
|
+
*
|
|
26
|
+
* This is the split the format turns on. A `plot` call is an entry in
|
|
27
|
+
* `outputs.plots` plus one `EMIT` per bar; `input` is a row of the settings
|
|
28
|
+
* dialog and an engine writing a slot at step 5; `table` is a declared grid.
|
|
29
|
+
* None of them is a function an engine calls, so none of them belongs in
|
|
30
|
+
* `lib.functions`, whose only purpose is to be named by a `CALL_LIB` (2.5).
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* The calls that declare part of the file rather than computing anything.
|
|
34
|
+
*
|
|
35
|
+
* None of them is a `CALL_LIB`, so none of them is in the engine's library
|
|
36
|
+
* manifest and none of them can be looked for there. The list is exported so a
|
|
37
|
+
* test that asks which names an engine has to implement can subtract these
|
|
38
|
+
* rather than carry a second copy of them.
|
|
39
|
+
*/
|
|
40
|
+
export declare const DECLARATION_CALLS: ReadonlySet<string>;
|
|
41
|
+
export interface EmitOptions {
|
|
42
|
+
/** The library manifest version, tied to `openscript.language` (2.5). */
|
|
43
|
+
readonly manifest?: number;
|
|
44
|
+
/** The engine's declared state region count, for OS5004. */
|
|
45
|
+
readonly maxStates?: number;
|
|
46
|
+
/** The engine's instruction ceiling, for OS5009. */
|
|
47
|
+
readonly maxInstructions?: number;
|
|
48
|
+
/** Give every top-level name a register, which is `debug.retain` (2.10). */
|
|
49
|
+
readonly retain?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** One call site under construction; its bases are filled once totals are known. */
|
|
52
|
+
export interface Site {
|
|
53
|
+
readonly index: number;
|
|
54
|
+
fn: number;
|
|
55
|
+
argc: number;
|
|
56
|
+
cellBase: number;
|
|
57
|
+
stateBase: number;
|
|
58
|
+
series: number[];
|
|
59
|
+
/** The body this site's `fn` entry was built from, for the base walk. */
|
|
60
|
+
frame: FrameLayout | undefined;
|
|
61
|
+
/** Sites reached from inside that body, so bases nest without overlapping. */
|
|
62
|
+
children: number[];
|
|
63
|
+
}
|
|
64
|
+
/** A loop being emitted, and where `break` and `continue` jump to. */
|
|
65
|
+
export interface LoopFrame {
|
|
66
|
+
readonly id: number;
|
|
67
|
+
readonly breaks: number[];
|
|
68
|
+
readonly continues: number[];
|
|
69
|
+
}
|
|
70
|
+
/** The frame a pass is emitting into: the top level, or one function body. */
|
|
71
|
+
export declare class Frame {
|
|
72
|
+
readonly layout: FrameLayout;
|
|
73
|
+
readonly builder: CodeBuilder;
|
|
74
|
+
readonly loops: LoopFrame[];
|
|
75
|
+
/** Sites created while emitting this frame, in the order they were created. */
|
|
76
|
+
readonly sites: number[];
|
|
77
|
+
/** A parameter's position, for `HISTP`, by the binding that declared it. */
|
|
78
|
+
readonly parameters: Map<number, number>;
|
|
79
|
+
readonly topLevel: boolean;
|
|
80
|
+
constructor(topLevel: boolean);
|
|
81
|
+
}
|
|
82
|
+
export declare class Emitter {
|
|
83
|
+
readonly pool: ConstantPool;
|
|
84
|
+
readonly layout: Layout;
|
|
85
|
+
readonly gaps: GapLog;
|
|
86
|
+
readonly libraryFunctions: LibraryFunction[];
|
|
87
|
+
/** The signature behind each entry, which is what `requires` is derived from. */
|
|
88
|
+
readonly calledEntries: LibraryEntry[];
|
|
89
|
+
readonly sites: Site[];
|
|
90
|
+
readonly functions: CompiledFunction[];
|
|
91
|
+
readonly functionPos: (readonly [number, readonly (readonly [number, number, number])[]])[];
|
|
92
|
+
readonly loops: Loop[];
|
|
93
|
+
/** A frame per emitted function entry, for the cell and state base walk. */
|
|
94
|
+
readonly functionFrames: FrameLayout[];
|
|
95
|
+
/**
|
|
96
|
+
* File-scope names given a register although nothing reads their history.
|
|
97
|
+
*
|
|
98
|
+
* A slot belongs to one frame, so a name a function body reads has to live
|
|
99
|
+
* somewhere every frame can address; `registers.ts` is where that is decided.
|
|
100
|
+
*/
|
|
101
|
+
readonly promoted: Set<number>;
|
|
102
|
+
/** Cells and input slots carrying a register beside them, kept in step per bar. */
|
|
103
|
+
readonly shadowed: Set<number>;
|
|
104
|
+
/**
|
|
105
|
+
* Cells a function body reads, whose register is kept in step within the bar.
|
|
106
|
+
*
|
|
107
|
+
* A cell operand is relative to its own frame (2.11, 3.3), so a body has no
|
|
108
|
+
* instruction that reaches a file-scope `var`. A register is addressed the
|
|
109
|
+
* same way from every frame, so the value goes in one beside the cell: read
|
|
110
|
+
* from the cell at the start of the bar, written again at every assignment,
|
|
111
|
+
* so a body called at any point in the bar reads what the cell holds then.
|
|
112
|
+
*/
|
|
113
|
+
readonly carried: Set<number>;
|
|
114
|
+
/** Bodies being emitted, so a call graph with a cycle in it stops (11.4). */
|
|
115
|
+
readonly emitting: Set<number>;
|
|
116
|
+
/**
|
|
117
|
+
* The file's fixed shape, filled in source order as the declarations are met.
|
|
118
|
+
*
|
|
119
|
+
* Source order is declaration order is legend order, so nothing sorts these
|
|
120
|
+
* afterwards: the script already decided, and a second decision here would be
|
|
121
|
+
* a second answer (2.8).
|
|
122
|
+
*/
|
|
123
|
+
readonly plots: Plot[];
|
|
124
|
+
readonly fills: Band[];
|
|
125
|
+
readonly levels: Level[];
|
|
126
|
+
readonly markers: Marker[];
|
|
127
|
+
readonly tables: Grid[];
|
|
128
|
+
readonly alerts: Alert[];
|
|
129
|
+
readonly inputs: CompiledInput[];
|
|
130
|
+
barColor: Paint | null;
|
|
131
|
+
background: Paint | null;
|
|
132
|
+
/** The plot key a declaration handle holds, so `fill` can name two of them. */
|
|
133
|
+
readonly handleKeys: Map<number, string>;
|
|
134
|
+
/** Names holding a declaration handle, which lives where the declaration put it. */
|
|
135
|
+
readonly handles: Set<number>;
|
|
136
|
+
/** The reads of 2.16, and the request a name holding one came from. */
|
|
137
|
+
readonly requests: Request[];
|
|
138
|
+
readonly requestOf: Map<number, number>;
|
|
139
|
+
/** The register one read's value lands in, so one call asks one question. */
|
|
140
|
+
readonly requestSeries: Map<number, number>;
|
|
141
|
+
/**
|
|
142
|
+
* The read whose expression is being emitted, when this emitter is one.
|
|
143
|
+
*
|
|
144
|
+
* An expression inside a read is compiled over other bars, so it gets an
|
|
145
|
+
* emitter of its own rather than a flag on a frame: its registers, its cells
|
|
146
|
+
* and its state regions are counted from zero on the requested bars, and a
|
|
147
|
+
* pass that read the parent's would emit a program that computes this
|
|
148
|
+
* chart's numbers under another chart's name.
|
|
149
|
+
*/
|
|
150
|
+
readonly request: RequestScope | undefined;
|
|
151
|
+
private readonly libraryIndex;
|
|
152
|
+
/** A leaf body, which calls no user function, is shared by every call site. */
|
|
153
|
+
private readonly sharedBodies;
|
|
154
|
+
readonly file: SourceFile;
|
|
155
|
+
readonly checked: CheckedScript;
|
|
156
|
+
readonly sink: DiagnosticSink;
|
|
157
|
+
readonly options: EmitOptions;
|
|
158
|
+
constructor(file: SourceFile, checked: CheckedScript, sink: DiagnosticSink, options: EmitOptions, parent?: Emitter, request?: RequestScope);
|
|
159
|
+
/** An emitter for one read's expression, sharing what does not depend on a bar. */
|
|
160
|
+
forRequest(request: RequestScope): Emitter;
|
|
161
|
+
/** The checker's answer for one call, which the emitter never re-derives. */
|
|
162
|
+
callAt(call: Call): CheckedCall | undefined;
|
|
163
|
+
/** The declaration a name means, from the checker's own resolution. */
|
|
164
|
+
bindingAt(reference: NameReference): Binding | undefined;
|
|
165
|
+
/** The input one `input()` call declares, from the checker's own table. */
|
|
166
|
+
inputAt(call: Call): CheckedInput | undefined;
|
|
167
|
+
/** Whether a call is a declaration rather than something an engine calls. */
|
|
168
|
+
isDeclaration(name: string): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* The index of a library function in `lib.functions`, adding it on first use.
|
|
171
|
+
*
|
|
172
|
+
* `state` and `effect` are recorded beside the name because 2.5 requires them
|
|
173
|
+
* and because they are facts an engine already knows: they are there to be
|
|
174
|
+
* disagreed with at load, which is how a program compiled against a newer
|
|
175
|
+
* library is caught before it computes a wrong number.
|
|
176
|
+
*/
|
|
177
|
+
libraryFunction(entry: LibraryEntry): number;
|
|
178
|
+
newSite(fn: number, argc: number): Site;
|
|
179
|
+
newLoop(kind: Loop['kind'], span: Span): number;
|
|
180
|
+
/** A body that calls no user function is one entry however many sites reach it. */
|
|
181
|
+
shareableBody(checkedFunction: number): number | undefined;
|
|
182
|
+
rememberShareableBody(checkedFunction: number, emitted: number): void;
|
|
183
|
+
gap(what: string, specification: string, span: Span | undefined, blocking: boolean): void;
|
|
184
|
+
/**
|
|
185
|
+
* The value an expression has before bar 0, or nothing when it has none.
|
|
186
|
+
*
|
|
187
|
+
* The environment is built here because folding needs two answers only the
|
|
188
|
+
* checker has: which declaration a name means, and which signature a call
|
|
189
|
+
* resolved to with its arguments already in parameter order.
|
|
190
|
+
*/
|
|
191
|
+
fold(expression: Expression): Value | undefined;
|
|
192
|
+
private foldEnvironment;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The key one input is known by: `inputs[].key`, and what a `{ "input": key }`
|
|
196
|
+
* field names (2.3 and 2.6).
|
|
197
|
+
*
|
|
198
|
+
* Here rather than beside the table it keys, because three places name an
|
|
199
|
+
* input by key and a second spelling of this would be a field that points at
|
|
200
|
+
* no row.
|
|
201
|
+
*
|
|
202
|
+
* **Never the input's position.** `host-interface.md` 8.1 promises a key
|
|
203
|
+
* "survives every edit that does not rename it", and a positional key keeps
|
|
204
|
+
* that promise for no edit at all: inserting one tunable above another moves
|
|
205
|
+
* every key below it, and a value a user stored against the third row lands on
|
|
206
|
+
* the fourth, silently, because both are numbers and 8.3 has nothing to refuse.
|
|
207
|
+
* An input written where a value belongs is assigned to no name, so its key is
|
|
208
|
+
* its title, which is what the user sees and what changing is the rename 8.1
|
|
209
|
+
* allows to lose a value. The two cannot collide: two inputs sharing a title
|
|
210
|
+
* are OS3017, a title spelling another input's name is OS3022, and a title
|
|
211
|
+
* that is not there at all is OS3021, so a key of `""` here is a program the
|
|
212
|
+
* checker has already refused.
|
|
213
|
+
*/
|
|
214
|
+
export declare function inputKey(input: CheckedInput): string;
|
|
215
|
+
/**
|
|
216
|
+
* Which of the five effects a library call carries, `compiled-program.md` 2.5
|
|
217
|
+
* and 5.4.
|
|
218
|
+
*
|
|
219
|
+
* The rule an entry is read by rather than a list of names, because a list in a
|
|
220
|
+
* second place is a list that drifts. A call with an effect does not perform it
|
|
221
|
+
* when it executes: it appends a record and **pushes absent as its result**. So
|
|
222
|
+
* a call whose result a script uses cannot carry one, and that single sentence
|
|
223
|
+
* settles every case in version 1.
|
|
224
|
+
*
|
|
225
|
+
* `order` is every call that spends money: `strategyOnly`, written with
|
|
226
|
+
* brackets, and returning nothing. A `pos.*` reading is not one, because it is
|
|
227
|
+
* read bare; `order.qtyForRisk` is not one, because it returns a number the
|
|
228
|
+
* script goes on to size an order with.
|
|
229
|
+
*
|
|
230
|
+
* `log` is `print`, which reaches a log outside the machine.
|
|
231
|
+
*
|
|
232
|
+
* `draw` and `signal` are not reachable in version 1 and the emitter says so
|
|
233
|
+
* rather than guessing. A drawing object lives in the object heap, which rolls
|
|
234
|
+
* back with everything else (6.1), so a drawing needs no deferral to be
|
|
235
|
+
* idempotent on a moving bar; a table cell is written to a per-bar output
|
|
236
|
+
* buffer that is committed with the columns (2.8); and a marker and an alert
|
|
237
|
+
* reach the host through a channel declared `defer`, not through a call.
|
|
238
|
+
*/
|
|
239
|
+
export declare function effectOf(entry: LibraryEntry): LibraryFunction['effect'];
|
|
240
|
+
/**
|
|
241
|
+
* The arguments a `CALL_LIB` pushes for one entry, which is its `arity` (2.5).
|
|
242
|
+
*
|
|
243
|
+
* The same for every entry but the order functions, which carry one argument
|
|
244
|
+
* more than the language surface shows: the names of the arguments the script
|
|
245
|
+
* wrote. `calls.ts` says why an order call needs it and no other call does.
|
|
246
|
+
*
|
|
247
|
+
* Stated here rather than at the two places that need it, because the count the
|
|
248
|
+
* program records and the count the instruction pushes disagreeing is a program
|
|
249
|
+
* no engine will load.
|
|
250
|
+
*/
|
|
251
|
+
export declare function arityOf(entry: LibraryEntry): number;
|
|
252
|
+
/** The argument written for one parameter of a resolved call, or nothing. */
|
|
253
|
+
export declare function argumentAt(checked: CheckedCall, entry: LibraryEntry, name: string): Argument | undefined;
|
|
254
|
+
/**
|
|
255
|
+
* Every top-level name and the expression it is given, in source order.
|
|
256
|
+
*
|
|
257
|
+
* Two passes need it before any instruction is emitted: one to find the names
|
|
258
|
+
* that hold a declaration handle, and one to find the names that hold a read.
|
|
259
|
+
* Both have to answer about a name written below the line that asks, so both
|
|
260
|
+
* run over the file rather than over what has been emitted so far.
|
|
261
|
+
*/
|
|
262
|
+
export declare function declaredNames(e: Emitter): readonly DeclaredName[];
|
|
263
|
+
/** One of those names, and whether `var` was written in front of it. */
|
|
264
|
+
export interface DeclaredName {
|
|
265
|
+
readonly name: Name;
|
|
266
|
+
readonly value: Expression;
|
|
267
|
+
readonly persistent: boolean;
|
|
268
|
+
}
|
|
269
|
+
/** The dotted name a callee spells, for a call the checker did not resolve. */
|
|
270
|
+
export declare function calleeText(expression: Expression): string;
|
|
271
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/emit/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { withoutGrouping } from '../ast/index.js';
|
|
2
|
+
import { inputHeldBy } from '../check/index.js';
|
|
3
|
+
import { CodeBuilder } from './code.js';
|
|
4
|
+
import { GapLog } from './gaps.js';
|
|
5
|
+
import { FrameLayout, Layout } from './layout.js';
|
|
6
|
+
import { ConstantPool } from './pool.js';
|
|
7
|
+
import { fold } from './values.js';
|
|
8
|
+
/**
|
|
9
|
+
* The calls that declare part of the file's fixed shape and compile to no
|
|
10
|
+
* `CALL_LIB` at all.
|
|
11
|
+
*
|
|
12
|
+
* This is the split the format turns on. A `plot` call is an entry in
|
|
13
|
+
* `outputs.plots` plus one `EMIT` per bar; `input` is a row of the settings
|
|
14
|
+
* dialog and an engine writing a slot at step 5; `table` is a declared grid.
|
|
15
|
+
* None of them is a function an engine calls, so none of them belongs in
|
|
16
|
+
* `lib.functions`, whose only purpose is to be named by a `CALL_LIB` (2.5).
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* The calls that declare part of the file rather than computing anything.
|
|
20
|
+
*
|
|
21
|
+
* None of them is a `CALL_LIB`, so none of them is in the engine's library
|
|
22
|
+
* manifest and none of them can be looked for there. The list is exported so a
|
|
23
|
+
* test that asks which names an engine has to implement can subtract these
|
|
24
|
+
* rather than carry a second copy of them.
|
|
25
|
+
*/
|
|
26
|
+
export const DECLARATION_CALLS = new Set([
|
|
27
|
+
'plot',
|
|
28
|
+
'plotCandles',
|
|
29
|
+
'fill',
|
|
30
|
+
'level',
|
|
31
|
+
'table',
|
|
32
|
+
'input',
|
|
33
|
+
'signal',
|
|
34
|
+
'alert',
|
|
35
|
+
'barColor',
|
|
36
|
+
'background',
|
|
37
|
+
]);
|
|
38
|
+
/** The frame a pass is emitting into: the top level, or one function body. */
|
|
39
|
+
export class Frame {
|
|
40
|
+
layout = new FrameLayout();
|
|
41
|
+
builder = new CodeBuilder();
|
|
42
|
+
loops = [];
|
|
43
|
+
/** Sites created while emitting this frame, in the order they were created. */
|
|
44
|
+
sites = [];
|
|
45
|
+
/** A parameter's position, for `HISTP`, by the binding that declared it. */
|
|
46
|
+
parameters = new Map();
|
|
47
|
+
topLevel;
|
|
48
|
+
constructor(topLevel) {
|
|
49
|
+
this.topLevel = topLevel;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export class Emitter {
|
|
53
|
+
pool;
|
|
54
|
+
layout = new Layout();
|
|
55
|
+
gaps;
|
|
56
|
+
libraryFunctions;
|
|
57
|
+
/** The signature behind each entry, which is what `requires` is derived from. */
|
|
58
|
+
calledEntries;
|
|
59
|
+
sites = [];
|
|
60
|
+
functions = [];
|
|
61
|
+
functionPos = [];
|
|
62
|
+
loops = [];
|
|
63
|
+
/** A frame per emitted function entry, for the cell and state base walk. */
|
|
64
|
+
functionFrames = [];
|
|
65
|
+
/**
|
|
66
|
+
* File-scope names given a register although nothing reads their history.
|
|
67
|
+
*
|
|
68
|
+
* A slot belongs to one frame, so a name a function body reads has to live
|
|
69
|
+
* somewhere every frame can address; `registers.ts` is where that is decided.
|
|
70
|
+
*/
|
|
71
|
+
promoted = new Set();
|
|
72
|
+
/** Cells and input slots carrying a register beside them, kept in step per bar. */
|
|
73
|
+
shadowed = new Set();
|
|
74
|
+
/**
|
|
75
|
+
* Cells a function body reads, whose register is kept in step within the bar.
|
|
76
|
+
*
|
|
77
|
+
* A cell operand is relative to its own frame (2.11, 3.3), so a body has no
|
|
78
|
+
* instruction that reaches a file-scope `var`. A register is addressed the
|
|
79
|
+
* same way from every frame, so the value goes in one beside the cell: read
|
|
80
|
+
* from the cell at the start of the bar, written again at every assignment,
|
|
81
|
+
* so a body called at any point in the bar reads what the cell holds then.
|
|
82
|
+
*/
|
|
83
|
+
carried = new Set();
|
|
84
|
+
/** Bodies being emitted, so a call graph with a cycle in it stops (11.4). */
|
|
85
|
+
emitting = new Set();
|
|
86
|
+
/**
|
|
87
|
+
* The file's fixed shape, filled in source order as the declarations are met.
|
|
88
|
+
*
|
|
89
|
+
* Source order is declaration order is legend order, so nothing sorts these
|
|
90
|
+
* afterwards: the script already decided, and a second decision here would be
|
|
91
|
+
* a second answer (2.8).
|
|
92
|
+
*/
|
|
93
|
+
plots = [];
|
|
94
|
+
fills = [];
|
|
95
|
+
levels = [];
|
|
96
|
+
markers = [];
|
|
97
|
+
tables = [];
|
|
98
|
+
alerts = [];
|
|
99
|
+
inputs = [];
|
|
100
|
+
barColor = null;
|
|
101
|
+
background = null;
|
|
102
|
+
/** The plot key a declaration handle holds, so `fill` can name two of them. */
|
|
103
|
+
handleKeys = new Map();
|
|
104
|
+
/** Names holding a declaration handle, which lives where the declaration put it. */
|
|
105
|
+
handles = new Set();
|
|
106
|
+
/** The reads of 2.16, and the request a name holding one came from. */
|
|
107
|
+
requests = [];
|
|
108
|
+
requestOf = new Map();
|
|
109
|
+
/** The register one read's value lands in, so one call asks one question. */
|
|
110
|
+
requestSeries = new Map();
|
|
111
|
+
/**
|
|
112
|
+
* The read whose expression is being emitted, when this emitter is one.
|
|
113
|
+
*
|
|
114
|
+
* An expression inside a read is compiled over other bars, so it gets an
|
|
115
|
+
* emitter of its own rather than a flag on a frame: its registers, its cells
|
|
116
|
+
* and its state regions are counted from zero on the requested bars, and a
|
|
117
|
+
* pass that read the parent's would emit a program that computes this
|
|
118
|
+
* chart's numbers under another chart's name.
|
|
119
|
+
*/
|
|
120
|
+
request;
|
|
121
|
+
libraryIndex;
|
|
122
|
+
/** A leaf body, which calls no user function, is shared by every call site. */
|
|
123
|
+
sharedBodies = new Map();
|
|
124
|
+
file;
|
|
125
|
+
checked;
|
|
126
|
+
sink;
|
|
127
|
+
options;
|
|
128
|
+
constructor(file, checked, sink, options, parent, request) {
|
|
129
|
+
this.file = file;
|
|
130
|
+
this.checked = checked;
|
|
131
|
+
this.sink = sink;
|
|
132
|
+
this.options = options;
|
|
133
|
+
// A read's body shares the constant pool and the library manifest, because
|
|
134
|
+
// neither holds anything that depends on a bar, and one of each is one
|
|
135
|
+
// table for an engine to verify rather than one per read (2.16).
|
|
136
|
+
this.pool = parent?.pool ?? new ConstantPool();
|
|
137
|
+
this.gaps = parent?.gaps ?? new GapLog();
|
|
138
|
+
this.libraryFunctions = parent?.libraryFunctions ?? [];
|
|
139
|
+
this.calledEntries = parent?.calledEntries ?? [];
|
|
140
|
+
this.libraryIndex = parent?.libraryIndex ?? new Map();
|
|
141
|
+
this.request = request;
|
|
142
|
+
}
|
|
143
|
+
/** An emitter for one read's expression, sharing what does not depend on a bar. */
|
|
144
|
+
forRequest(request) {
|
|
145
|
+
return new Emitter(this.file, this.checked, this.sink, this.options, this, request);
|
|
146
|
+
}
|
|
147
|
+
/** The checker's answer for one call, which the emitter never re-derives. */
|
|
148
|
+
callAt(call) {
|
|
149
|
+
return this.checked.callSites.get(call);
|
|
150
|
+
}
|
|
151
|
+
/** The declaration a name means, from the checker's own resolution. */
|
|
152
|
+
bindingAt(reference) {
|
|
153
|
+
return this.checked.references.get(reference);
|
|
154
|
+
}
|
|
155
|
+
/** The input one `input()` call declares, from the checker's own table. */
|
|
156
|
+
inputAt(call) {
|
|
157
|
+
return this.checked.inputs.find((one) => one.call === call);
|
|
158
|
+
}
|
|
159
|
+
/** Whether a call is a declaration rather than something an engine calls. */
|
|
160
|
+
isDeclaration(name) {
|
|
161
|
+
return DECLARATION_CALLS.has(name);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* The index of a library function in `lib.functions`, adding it on first use.
|
|
165
|
+
*
|
|
166
|
+
* `state` and `effect` are recorded beside the name because 2.5 requires them
|
|
167
|
+
* and because they are facts an engine already knows: they are there to be
|
|
168
|
+
* disagreed with at load, which is how a program compiled against a newer
|
|
169
|
+
* library is caught before it computes a wrong number.
|
|
170
|
+
*/
|
|
171
|
+
libraryFunction(entry) {
|
|
172
|
+
// Keyed by name and arity, because a name may carry two signatures: `clear`
|
|
173
|
+
// empties an array or a grid and the two are separate entries (stdlib 2.2).
|
|
174
|
+
const key = `${entry.name}/${entry.parameters.length}`;
|
|
175
|
+
const found = this.libraryIndex.get(key);
|
|
176
|
+
if (found !== undefined)
|
|
177
|
+
return found;
|
|
178
|
+
const index = this.libraryFunctions.length;
|
|
179
|
+
this.libraryFunctions.push({
|
|
180
|
+
name: entry.name,
|
|
181
|
+
arity: arityOf(entry),
|
|
182
|
+
state: entry.stateful,
|
|
183
|
+
effect: effectOf(entry),
|
|
184
|
+
});
|
|
185
|
+
this.calledEntries.push(entry);
|
|
186
|
+
this.libraryIndex.set(key, index);
|
|
187
|
+
return index;
|
|
188
|
+
}
|
|
189
|
+
newSite(fn, argc) {
|
|
190
|
+
const site = {
|
|
191
|
+
index: this.sites.length,
|
|
192
|
+
fn,
|
|
193
|
+
argc,
|
|
194
|
+
cellBase: 0,
|
|
195
|
+
stateBase: 0,
|
|
196
|
+
series: [],
|
|
197
|
+
frame: undefined,
|
|
198
|
+
children: [],
|
|
199
|
+
};
|
|
200
|
+
this.sites.push(site);
|
|
201
|
+
return site;
|
|
202
|
+
}
|
|
203
|
+
newLoop(kind, span) {
|
|
204
|
+
const id = this.loops.length;
|
|
205
|
+
this.loops.push({ id, kind, line: span.line, col: span.column });
|
|
206
|
+
return id;
|
|
207
|
+
}
|
|
208
|
+
/** A body that calls no user function is one entry however many sites reach it. */
|
|
209
|
+
shareableBody(checkedFunction) {
|
|
210
|
+
return this.sharedBodies.get(checkedFunction);
|
|
211
|
+
}
|
|
212
|
+
rememberShareableBody(checkedFunction, emitted) {
|
|
213
|
+
this.sharedBodies.set(checkedFunction, emitted);
|
|
214
|
+
}
|
|
215
|
+
gap(what, specification, span, blocking) {
|
|
216
|
+
this.gaps.add({ what, specification, span, blocking });
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* The value an expression has before bar 0, or nothing when it has none.
|
|
220
|
+
*
|
|
221
|
+
* The environment is built here because folding needs two answers only the
|
|
222
|
+
* checker has: which declaration a name means, and which signature a call
|
|
223
|
+
* resolved to with its arguments already in parameter order.
|
|
224
|
+
*/
|
|
225
|
+
fold(expression) {
|
|
226
|
+
return fold(expression, this.foldEnvironment());
|
|
227
|
+
}
|
|
228
|
+
foldEnvironment() {
|
|
229
|
+
return {
|
|
230
|
+
name: (reference) => {
|
|
231
|
+
const binding = this.bindingAt(reference);
|
|
232
|
+
if (binding === undefined)
|
|
233
|
+
return undefined;
|
|
234
|
+
const held = inputHeldBy(binding);
|
|
235
|
+
if (held === undefined)
|
|
236
|
+
return undefined;
|
|
237
|
+
const input = this.checked.inputs[held];
|
|
238
|
+
return input === undefined ? undefined : { kind: 'input', key: inputKey(input) };
|
|
239
|
+
},
|
|
240
|
+
call: (call) => {
|
|
241
|
+
const checked = this.callAt(call);
|
|
242
|
+
if (checked === undefined || checked.target !== 'library')
|
|
243
|
+
return undefined;
|
|
244
|
+
return { name: checked.name, args: checked.arguments };
|
|
245
|
+
},
|
|
246
|
+
input: (call) => {
|
|
247
|
+
const input = this.inputAt(call);
|
|
248
|
+
return input === undefined ? undefined : { kind: 'input', key: inputKey(input) };
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* The key one input is known by: `inputs[].key`, and what a `{ "input": key }`
|
|
255
|
+
* field names (2.3 and 2.6).
|
|
256
|
+
*
|
|
257
|
+
* Here rather than beside the table it keys, because three places name an
|
|
258
|
+
* input by key and a second spelling of this would be a field that points at
|
|
259
|
+
* no row.
|
|
260
|
+
*
|
|
261
|
+
* **Never the input's position.** `host-interface.md` 8.1 promises a key
|
|
262
|
+
* "survives every edit that does not rename it", and a positional key keeps
|
|
263
|
+
* that promise for no edit at all: inserting one tunable above another moves
|
|
264
|
+
* every key below it, and a value a user stored against the third row lands on
|
|
265
|
+
* the fourth, silently, because both are numbers and 8.3 has nothing to refuse.
|
|
266
|
+
* An input written where a value belongs is assigned to no name, so its key is
|
|
267
|
+
* its title, which is what the user sees and what changing is the rename 8.1
|
|
268
|
+
* allows to lose a value. The two cannot collide: two inputs sharing a title
|
|
269
|
+
* are OS3017, a title spelling another input's name is OS3022, and a title
|
|
270
|
+
* that is not there at all is OS3021, so a key of `""` here is a program the
|
|
271
|
+
* checker has already refused.
|
|
272
|
+
*/
|
|
273
|
+
export function inputKey(input) {
|
|
274
|
+
return input.name === '' ? input.title : input.name;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Which of the five effects a library call carries, `compiled-program.md` 2.5
|
|
278
|
+
* and 5.4.
|
|
279
|
+
*
|
|
280
|
+
* The rule an entry is read by rather than a list of names, because a list in a
|
|
281
|
+
* second place is a list that drifts. A call with an effect does not perform it
|
|
282
|
+
* when it executes: it appends a record and **pushes absent as its result**. So
|
|
283
|
+
* a call whose result a script uses cannot carry one, and that single sentence
|
|
284
|
+
* settles every case in version 1.
|
|
285
|
+
*
|
|
286
|
+
* `order` is every call that spends money: `strategyOnly`, written with
|
|
287
|
+
* brackets, and returning nothing. A `pos.*` reading is not one, because it is
|
|
288
|
+
* read bare; `order.qtyForRisk` is not one, because it returns a number the
|
|
289
|
+
* script goes on to size an order with.
|
|
290
|
+
*
|
|
291
|
+
* `log` is `print`, which reaches a log outside the machine.
|
|
292
|
+
*
|
|
293
|
+
* `draw` and `signal` are not reachable in version 1 and the emitter says so
|
|
294
|
+
* rather than guessing. A drawing object lives in the object heap, which rolls
|
|
295
|
+
* back with everything else (6.1), so a drawing needs no deferral to be
|
|
296
|
+
* idempotent on a moving bar; a table cell is written to a per-bar output
|
|
297
|
+
* buffer that is committed with the columns (2.8); and a marker and an alert
|
|
298
|
+
* reach the host through a channel declared `defer`, not through a call.
|
|
299
|
+
*/
|
|
300
|
+
export function effectOf(entry) {
|
|
301
|
+
if (entry.name === 'print')
|
|
302
|
+
return 'log';
|
|
303
|
+
if (entry.strategyOnly && entry.callable && entry.returns.kind === 'nothing')
|
|
304
|
+
return 'order';
|
|
305
|
+
return 'none';
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* The arguments a `CALL_LIB` pushes for one entry, which is its `arity` (2.5).
|
|
309
|
+
*
|
|
310
|
+
* The same for every entry but the order functions, which carry one argument
|
|
311
|
+
* more than the language surface shows: the names of the arguments the script
|
|
312
|
+
* wrote. `calls.ts` says why an order call needs it and no other call does.
|
|
313
|
+
*
|
|
314
|
+
* Stated here rather than at the two places that need it, because the count the
|
|
315
|
+
* program records and the count the instruction pushes disagreeing is a program
|
|
316
|
+
* no engine will load.
|
|
317
|
+
*/
|
|
318
|
+
export function arityOf(entry) {
|
|
319
|
+
return entry.parameters.length + (effectOf(entry) === 'order' ? 1 : 0);
|
|
320
|
+
}
|
|
321
|
+
/** The argument written for one parameter of a resolved call, or nothing. */
|
|
322
|
+
export function argumentAt(checked, entry, name) {
|
|
323
|
+
const index = entry.parameters.findIndex((one) => one.name === name);
|
|
324
|
+
return index < 0 ? undefined : checked.arguments[index];
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Every top-level name and the expression it is given, in source order.
|
|
328
|
+
*
|
|
329
|
+
* Two passes need it before any instruction is emitted: one to find the names
|
|
330
|
+
* that hold a declaration handle, and one to find the names that hold a read.
|
|
331
|
+
* Both have to answer about a name written below the line that asks, so both
|
|
332
|
+
* run over the file rather than over what has been emitted so far.
|
|
333
|
+
*/
|
|
334
|
+
export function declaredNames(e) {
|
|
335
|
+
const found = [];
|
|
336
|
+
for (const item of e.checked.script.items) {
|
|
337
|
+
if (item.kind === 'assignment') {
|
|
338
|
+
found.push({ name: item.target, value: item.value, persistent: false });
|
|
339
|
+
}
|
|
340
|
+
else if (item.kind === 'varDeclaration') {
|
|
341
|
+
found.push({ name: item.name, value: item.initialiser, persistent: true });
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return found;
|
|
345
|
+
}
|
|
346
|
+
/** The dotted name a callee spells, for a call the checker did not resolve. */
|
|
347
|
+
export function calleeText(expression) {
|
|
348
|
+
const inner = withoutGrouping(expression);
|
|
349
|
+
if (inner.kind === 'nameReference')
|
|
350
|
+
return inner.name;
|
|
351
|
+
if (inner.kind === 'member') {
|
|
352
|
+
const object = withoutGrouping(inner.object);
|
|
353
|
+
if (object.kind === 'nameReference')
|
|
354
|
+
return `${object.name}.${inner.member.text}`;
|
|
355
|
+
}
|
|
356
|
+
return '';
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/emit/context.ts"],"names":[],"mappings":"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"}
|