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
package/src/core/index.ts
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenScript, the compiler
|
|
2
|
+
* OpenScript, the compiler and the engine.
|
|
3
3
|
*
|
|
4
|
-
* This is the whole of what a host needs to
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* This is the whole of what a host needs to take a script and produce values,
|
|
5
|
+
* and it knows nothing about a chart, an editor or a broker. It imports no
|
|
6
|
+
* package and touches no browser global, so the same file runs in a worker, on
|
|
7
|
+
* a server and inside somebody else's application under a content security
|
|
8
|
+
* policy that forbids turning text into code.
|
|
9
|
+
*
|
|
10
|
+
* Three things a host does, and the names that do them:
|
|
11
|
+
*
|
|
12
|
+
* sourceFile, parse, check, emit source text becomes a compiled program
|
|
13
|
+
* load a program is verified and made runnable
|
|
14
|
+
* Engine.run, Engine.append it runs over bars, and values come out
|
|
15
|
+
*
|
|
16
|
+
* Every name below is a promise to somebody who is not in this repository, so
|
|
17
|
+
* the surface is a decision rather than everything the modules hold: a pass, a
|
|
18
|
+
* table or an instruction stays behind its module's door, and a host never has
|
|
19
|
+
* to reach past this file to compile or run a script.
|
|
9
20
|
*
|
|
10
21
|
* The tiers above it are separate entry points, so a host that wants only this
|
|
11
22
|
* one never loads the editor intelligence or an adapter.
|
|
@@ -144,3 +155,115 @@ export {
|
|
|
144
155
|
export { lex } from './lex/index.js';
|
|
145
156
|
|
|
146
157
|
export { parse, parseTokens } from './parse/index.js';
|
|
158
|
+
|
|
159
|
+
export type {
|
|
160
|
+
Binding,
|
|
161
|
+
BindingKind,
|
|
162
|
+
CheckedCall,
|
|
163
|
+
CheckedDeclaration,
|
|
164
|
+
CheckedFunction,
|
|
165
|
+
CheckedInput,
|
|
166
|
+
CheckedOutput,
|
|
167
|
+
CheckedRequest,
|
|
168
|
+
CheckedScript,
|
|
169
|
+
HandleKind,
|
|
170
|
+
InputKind,
|
|
171
|
+
LibraryEntry,
|
|
172
|
+
LibraryParameter,
|
|
173
|
+
ObjectKind,
|
|
174
|
+
RequestMode,
|
|
175
|
+
Storage,
|
|
176
|
+
Type,
|
|
177
|
+
ValueKind,
|
|
178
|
+
WarmupRule,
|
|
179
|
+
Warmup,
|
|
180
|
+
} from './check/index.js';
|
|
181
|
+
export {
|
|
182
|
+
BAR_ZERO,
|
|
183
|
+
HANDLE_KINDS,
|
|
184
|
+
NAMESPACES,
|
|
185
|
+
OBJECT_KINDS,
|
|
186
|
+
STRATEGY_NAMESPACES,
|
|
187
|
+
VALUE_KINDS,
|
|
188
|
+
accepts,
|
|
189
|
+
allOf,
|
|
190
|
+
arrayOf,
|
|
191
|
+
atBar,
|
|
192
|
+
atLeastBar,
|
|
193
|
+
check,
|
|
194
|
+
delayed,
|
|
195
|
+
earlier,
|
|
196
|
+
elementOf,
|
|
197
|
+
isLibraryName,
|
|
198
|
+
isNamespace,
|
|
199
|
+
isNever,
|
|
200
|
+
isSeries,
|
|
201
|
+
join,
|
|
202
|
+
later,
|
|
203
|
+
libraryEntries,
|
|
204
|
+
libraryNames,
|
|
205
|
+
membersOf,
|
|
206
|
+
sameType,
|
|
207
|
+
seriesOf,
|
|
208
|
+
typeText,
|
|
209
|
+
} from './check/index.js';
|
|
210
|
+
export { REQUEST_NAMES } from './check/index.js';
|
|
211
|
+
export { COMPILED_FORMAT_VERSION, VERSION } from './version/index.js';
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* The emitter: a checked script becomes the compiled program.
|
|
215
|
+
*
|
|
216
|
+
* The program is plain data, so a host may store it, send it, and run it here
|
|
217
|
+
* or on an engine somebody else wrote from the specification.
|
|
218
|
+
*
|
|
219
|
+
* `canonicalise` is the encoding the two hashes are taken over and the bytes
|
|
220
|
+
* that travel. A host that records the source hash and the program hash beside
|
|
221
|
+
* a result can later prove an engine upgrade did not change it, which is what
|
|
222
|
+
* `compiled-program.md` 9.5 promises.
|
|
223
|
+
*/
|
|
224
|
+
export { emit } from './emit/index.js';
|
|
225
|
+
export type { EmitOptions, EmitResult } from './emit/index.js';
|
|
226
|
+
export type { CompiledProgram } from './emit/index.js';
|
|
227
|
+
export { canonicalise, programHash, sourceHash } from './emit/index.js';
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* The engine: a program in, one bar at a time, values out.
|
|
231
|
+
*
|
|
232
|
+
* `load` verifies the program in full before a bar executes and answers with a
|
|
233
|
+
* diagnostic rather than an exception, because a host runs many scripts in one
|
|
234
|
+
* process and one failing script must take nothing else down. `verify` is that
|
|
235
|
+
* same check on its own, for a host that keeps compiled programs and wants to
|
|
236
|
+
* refuse a bad one when it arrives rather than when it is first drawn.
|
|
237
|
+
*
|
|
238
|
+
* `capabilitiesFor` and `LANGUAGE_VERSIONS` are this engine's half of the
|
|
239
|
+
* compatibility statement in 9.1, beside `COMPILED_FORMAT_VERSION` above.
|
|
240
|
+
*/
|
|
241
|
+
export { load } from './engine/index.js';
|
|
242
|
+
export type { BarResult, Engine, LoadOptions, LoadResult, RunResult } from './engine/index.js';
|
|
243
|
+
export type {
|
|
244
|
+
BarState,
|
|
245
|
+
EffectRoute,
|
|
246
|
+
EngineHost,
|
|
247
|
+
HostBar,
|
|
248
|
+
Instrument,
|
|
249
|
+
PendingEffect,
|
|
250
|
+
RoutedEffect,
|
|
251
|
+
} from './engine/index.js';
|
|
252
|
+
/**
|
|
253
|
+
* The order boundary: what a strategy sends, what a host reports back, and the
|
|
254
|
+
* ledger the two fold into (`host-interface.md` 7, `stdlib.md` 17.7).
|
|
255
|
+
*/
|
|
256
|
+
export type {
|
|
257
|
+
FrameOutcome,
|
|
258
|
+
Identity,
|
|
259
|
+
LedgerRow,
|
|
260
|
+
OrderFrame,
|
|
261
|
+
OrderIntent,
|
|
262
|
+
OrderStatus,
|
|
263
|
+
} from './engine/index.js';
|
|
264
|
+
export { DEFAULT_LIMITS } from './engine/index.js';
|
|
265
|
+
export type { EngineLimits } from './engine/index.js';
|
|
266
|
+
export { isAbsent } from './engine/index.js';
|
|
267
|
+
export type { Value } from './engine/index.js';
|
|
268
|
+
export { LANGUAGE_VERSIONS, capabilitiesFor, verify } from './engine/index.js';
|
|
269
|
+
export type { VerifyOptions, VerifyResult } from './engine/index.js';
|
|
@@ -303,7 +303,7 @@ function parsePrimary(cursor: Cursor): Expression {
|
|
|
303
303
|
// not read, and the next thing the reader is told is that a bracket they
|
|
304
304
|
// plainly closed was never closed.
|
|
305
305
|
if (isMeantAsAName(token.kind)) {
|
|
306
|
-
const name = takeName(cursor);
|
|
306
|
+
const name = takeName(cursor, true);
|
|
307
307
|
return makeNode('nameReference', name.span, { name: name.text });
|
|
308
308
|
}
|
|
309
309
|
return expressionExpected(cursor);
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
import type { Block, Expression, FunctionDeclaration, Name, Parameter } from '../ast/index.js';
|
|
2
|
-
import { makeNode } from '../ast/index.js';
|
|
3
|
-
import { spanning } from '../span/index.js';
|
|
4
|
-
import type { Token } from '../tokens/index.js';
|
|
5
|
-
import { parseTypeAnnotation } from './annotations.js';
|
|
6
|
-
import { parseBlock } from './blocks.js';
|
|
7
|
-
import type { Cursor } from './cursor.js';
|
|
8
|
-
import { parseBracketedList, parseExpression } from './expressions.js';
|
|
9
|
-
import { takeName } from './names.js';
|
|
10
|
-
import { finishStatement } from './statements.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* `fn name(parameters) => body`, language.md 11.1.
|
|
14
|
-
*
|
|
15
|
-
* The body is an expression when it is written after the `=>` on one line, and
|
|
16
|
-
* a block when the `=>` ends the line. Both forms exist because the one line
|
|
17
|
-
* form needs the implicit return and an early exit needs the explicit one.
|
|
18
|
-
*
|
|
19
|
-
* The `=>` is two tokens. Section 3.12 does not list it among the punctuation,
|
|
20
|
-
* so it arrives as an `=` and a `>` that touch, and touching is what tells it
|
|
21
|
-
* from a comparison: the lexer suppresses its continuation rule for that exact
|
|
22
|
-
* pair, and the same adjacency test is what matches it here.
|
|
23
|
-
*/
|
|
24
|
-
export function parseFunctionDeclaration(cursor: Cursor): FunctionDeclaration {
|
|
25
|
-
const keyword = cursor.advance();
|
|
26
|
-
const name = takeName(cursor);
|
|
27
|
-
|
|
28
|
-
const open = cursor.take('(');
|
|
29
|
-
if (open === undefined) cursor.unexpected(cursor.token);
|
|
30
|
-
const parameters =
|
|
31
|
-
open === undefined ? [] : parseBracketedList(cursor, open, parseParameter).items;
|
|
32
|
-
|
|
33
|
-
const arrow = takeArrow(cursor);
|
|
34
|
-
if (arrow === undefined) {
|
|
35
|
-
return declaration(keyword, name, parameters, headerWithNoArrow(cursor, keyword));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (!cursor.atStatementEnd()) {
|
|
39
|
-
const body = parseExpression(cursor);
|
|
40
|
-
finishStatement(cursor);
|
|
41
|
-
return declaration(keyword, name, parameters, body);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
finishStatement(cursor);
|
|
45
|
-
return declaration(keyword, name, parameters, parseBlock(cursor, 'fn', keyword.span));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* A parameter, which is an ordinary identifier and not a label.
|
|
50
|
-
*
|
|
51
|
-
* `fn f(color = red)` is OS1019, and `plot(v, "V", color = aqua)` is not: the
|
|
52
|
-
* body of a function refers to its parameters, and nothing ever refers to a
|
|
53
|
-
* label (language.md 3.4). `takeName` is the whole of that difference.
|
|
54
|
-
*/
|
|
55
|
-
function parseParameter(cursor: Cursor): Parameter {
|
|
56
|
-
const name = takeName(cursor);
|
|
57
|
-
|
|
58
|
-
const annotation = cursor.take(':') !== undefined ? parseTypeAnnotation(cursor) : undefined;
|
|
59
|
-
const defaultValue = cursor.take('=') !== undefined ? parseExpression(cursor) : undefined;
|
|
60
|
-
|
|
61
|
-
const end = defaultValue?.span ?? annotation?.span ?? name.span;
|
|
62
|
-
return makeNode('parameter', spanning(name.span, end), { name, annotation, defaultValue });
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** The `=>` of 11.1: an `=` and a `>` written against each other. */
|
|
66
|
-
function takeArrow(cursor: Cursor): Token | undefined {
|
|
67
|
-
const equals = cursor.token;
|
|
68
|
-
const greater = cursor.peek();
|
|
69
|
-
if (equals.kind !== '=' || greater.kind !== '>') return undefined;
|
|
70
|
-
if (equals.span.offset + equals.span.length !== greater.span.offset) return undefined;
|
|
71
|
-
|
|
72
|
-
cursor.advance();
|
|
73
|
-
return cursor.advance();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* A header with no `=>`, which the catalogue has no code of its own for.
|
|
78
|
-
*
|
|
79
|
-
* What is reported is what is true. A token sitting where the arrow belongs is
|
|
80
|
-
* OS1018, whose fix names the operator that was meant to join the two halves. A
|
|
81
|
-
* header that simply ends is OS1010, because that is what it now is: a header
|
|
82
|
-
* with no body, since without the arrow the lexer opened no block under it.
|
|
83
|
-
*/
|
|
84
|
-
function headerWithNoArrow(cursor: Cursor, keyword: Token): Block | Expression {
|
|
85
|
-
if (!cursor.atStatementEnd()) {
|
|
86
|
-
cursor.unexpected(cursor.token);
|
|
87
|
-
const body = parseExpression(cursor);
|
|
88
|
-
finishStatement(cursor);
|
|
89
|
-
return body;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
cursor.report('OS1010', keyword.span, { header: 'fn' });
|
|
93
|
-
finishStatement(cursor);
|
|
94
|
-
if (cursor.at('indent')) return parseBlock(cursor, 'fn', keyword.span);
|
|
95
|
-
return makeNode('block', cursor.holeSpan(), { statements: [] });
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function declaration(
|
|
99
|
-
keyword: Token,
|
|
100
|
-
name: Name,
|
|
101
|
-
parameters: readonly Parameter[],
|
|
102
|
-
body: Block | Expression,
|
|
103
|
-
): FunctionDeclaration {
|
|
104
|
-
return makeNode('functionDeclaration', spanning(keyword.span, body.span), {
|
|
105
|
-
name,
|
|
106
|
-
parameters,
|
|
107
|
-
body,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
1
|
+
import type { Block, Expression, FunctionDeclaration, Name, Parameter } from '../ast/index.js';
|
|
2
|
+
import { makeNode } from '../ast/index.js';
|
|
3
|
+
import { spanning } from '../span/index.js';
|
|
4
|
+
import type { Token } from '../tokens/index.js';
|
|
5
|
+
import { parseTypeAnnotation } from './annotations.js';
|
|
6
|
+
import { parseBlock } from './blocks.js';
|
|
7
|
+
import type { Cursor } from './cursor.js';
|
|
8
|
+
import { parseBracketedList, parseExpression } from './expressions.js';
|
|
9
|
+
import { takeName } from './names.js';
|
|
10
|
+
import { finishStatement } from './statements.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* `fn name(parameters) => body`, language.md 11.1.
|
|
14
|
+
*
|
|
15
|
+
* The body is an expression when it is written after the `=>` on one line, and
|
|
16
|
+
* a block when the `=>` ends the line. Both forms exist because the one line
|
|
17
|
+
* form needs the implicit return and an early exit needs the explicit one.
|
|
18
|
+
*
|
|
19
|
+
* The `=>` is two tokens. Section 3.12 does not list it among the punctuation,
|
|
20
|
+
* so it arrives as an `=` and a `>` that touch, and touching is what tells it
|
|
21
|
+
* from a comparison: the lexer suppresses its continuation rule for that exact
|
|
22
|
+
* pair, and the same adjacency test is what matches it here.
|
|
23
|
+
*/
|
|
24
|
+
export function parseFunctionDeclaration(cursor: Cursor): FunctionDeclaration {
|
|
25
|
+
const keyword = cursor.advance();
|
|
26
|
+
const name = takeName(cursor);
|
|
27
|
+
|
|
28
|
+
const open = cursor.take('(');
|
|
29
|
+
if (open === undefined) cursor.unexpected(cursor.token);
|
|
30
|
+
const parameters =
|
|
31
|
+
open === undefined ? [] : parseBracketedList(cursor, open, parseParameter).items;
|
|
32
|
+
|
|
33
|
+
const arrow = takeArrow(cursor);
|
|
34
|
+
if (arrow === undefined) {
|
|
35
|
+
return declaration(keyword, name, parameters, headerWithNoArrow(cursor, keyword));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (!cursor.atStatementEnd()) {
|
|
39
|
+
const body = parseExpression(cursor);
|
|
40
|
+
finishStatement(cursor);
|
|
41
|
+
return declaration(keyword, name, parameters, body);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
finishStatement(cursor);
|
|
45
|
+
return declaration(keyword, name, parameters, parseBlock(cursor, 'fn', keyword.span));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* A parameter, which is an ordinary identifier and not a label.
|
|
50
|
+
*
|
|
51
|
+
* `fn f(color = red)` is OS1019, and `plot(v, "V", color = aqua)` is not: the
|
|
52
|
+
* body of a function refers to its parameters, and nothing ever refers to a
|
|
53
|
+
* label (language.md 3.4). `takeName` is the whole of that difference.
|
|
54
|
+
*/
|
|
55
|
+
function parseParameter(cursor: Cursor): Parameter {
|
|
56
|
+
const name = takeName(cursor);
|
|
57
|
+
|
|
58
|
+
const annotation = cursor.take(':') !== undefined ? parseTypeAnnotation(cursor) : undefined;
|
|
59
|
+
const defaultValue = cursor.take('=') !== undefined ? parseExpression(cursor) : undefined;
|
|
60
|
+
|
|
61
|
+
const end = defaultValue?.span ?? annotation?.span ?? name.span;
|
|
62
|
+
return makeNode('parameter', spanning(name.span, end), { name, annotation, defaultValue });
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** The `=>` of 11.1: an `=` and a `>` written against each other. */
|
|
66
|
+
function takeArrow(cursor: Cursor): Token | undefined {
|
|
67
|
+
const equals = cursor.token;
|
|
68
|
+
const greater = cursor.peek();
|
|
69
|
+
if (equals.kind !== '=' || greater.kind !== '>') return undefined;
|
|
70
|
+
if (equals.span.offset + equals.span.length !== greater.span.offset) return undefined;
|
|
71
|
+
|
|
72
|
+
cursor.advance();
|
|
73
|
+
return cursor.advance();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* A header with no `=>`, which the catalogue has no code of its own for.
|
|
78
|
+
*
|
|
79
|
+
* What is reported is what is true. A token sitting where the arrow belongs is
|
|
80
|
+
* OS1018, whose fix names the operator that was meant to join the two halves. A
|
|
81
|
+
* header that simply ends is OS1010, because that is what it now is: a header
|
|
82
|
+
* with no body, since without the arrow the lexer opened no block under it.
|
|
83
|
+
*/
|
|
84
|
+
function headerWithNoArrow(cursor: Cursor, keyword: Token): Block | Expression {
|
|
85
|
+
if (!cursor.atStatementEnd()) {
|
|
86
|
+
cursor.unexpected(cursor.token);
|
|
87
|
+
const body = parseExpression(cursor);
|
|
88
|
+
finishStatement(cursor);
|
|
89
|
+
return body;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
cursor.report('OS1010', keyword.span, { header: 'fn' });
|
|
93
|
+
finishStatement(cursor);
|
|
94
|
+
if (cursor.at('indent')) return parseBlock(cursor, 'fn', keyword.span);
|
|
95
|
+
return makeNode('block', cursor.holeSpan(), { statements: [] });
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function declaration(
|
|
99
|
+
keyword: Token,
|
|
100
|
+
name: Name,
|
|
101
|
+
parameters: readonly Parameter[],
|
|
102
|
+
body: Block | Expression,
|
|
103
|
+
): FunctionDeclaration {
|
|
104
|
+
return makeNode('functionDeclaration', spanning(keyword.span, body.span), {
|
|
105
|
+
name,
|
|
106
|
+
parameters,
|
|
107
|
+
body,
|
|
108
|
+
});
|
|
109
|
+
}
|
package/src/core/parse/names.ts
CHANGED
|
@@ -76,6 +76,26 @@ function unreservedNear(word: string): string {
|
|
|
76
76
|
return `${word}Value`;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* The library spelling of a reserved word somebody wrote as a call.
|
|
81
|
+
*
|
|
82
|
+
* `bool` and `number` name types, and the two conversions to those types have to
|
|
83
|
+
* be called by a name, which a reserved word is not. For one release the library
|
|
84
|
+
* published them under the type names anyway: the checker called them functions,
|
|
85
|
+
* the lexer called the same words reserved, and every spelling a reader could
|
|
86
|
+
* write was refused with advice to rename a variable they had not declared. The
|
|
87
|
+
* conversions are `toBool` and `toNumber`, and this is the table that says so to
|
|
88
|
+
* whoever wrote the natural thing.
|
|
89
|
+
*
|
|
90
|
+
* It is two entries because two names collided, not because a rule needs a list:
|
|
91
|
+
* a library name is never a reserved word, and `tests/unit/library-names.test.ts`
|
|
92
|
+
* fails the build if one ever is again.
|
|
93
|
+
*/
|
|
94
|
+
const CALLED_INSTEAD: ReadonlyMap<string, string> = new Map([
|
|
95
|
+
['bool', 'toBool'],
|
|
96
|
+
['number', 'toNumber'],
|
|
97
|
+
]);
|
|
98
|
+
|
|
79
99
|
/** No word where one was required, which leaves the statement without its subject. */
|
|
80
100
|
function missingWord(cursor: Cursor): Name {
|
|
81
101
|
const hole = cursor.holeSpan();
|
|
@@ -91,16 +111,23 @@ function missingWord(cursor: Cursor): Name {
|
|
|
91
111
|
* The word is taken either way. A script that named something `type` still
|
|
92
112
|
* meant to declare it, and every later diagnostic about that name is more use
|
|
93
113
|
* to the reader than a hole where the declaration should have been.
|
|
114
|
+
*
|
|
115
|
+
* `asValue` is set by the one reader that takes a word from where a value
|
|
116
|
+
* belongs, and it is what lets the fix be true of the program in front of it. A
|
|
117
|
+
* word with an argument list after it is a call, and a reader who wrote one
|
|
118
|
+
* wants the name the library really publishes; the same word being declared or
|
|
119
|
+
* assigned to wants a name of their own, and the library's would collide.
|
|
94
120
|
*/
|
|
95
|
-
export function takeName(cursor: Cursor): Name {
|
|
121
|
+
export function takeName(cursor: Cursor, asValue = false): Name {
|
|
96
122
|
const token = cursor.token;
|
|
97
123
|
if (!isWordKind(token.kind)) return missingWord(cursor);
|
|
98
124
|
|
|
99
125
|
cursor.advance();
|
|
100
126
|
if (token.kind !== 'identifier') {
|
|
127
|
+
const called = asValue && cursor.kind === '(' ? CALLED_INSTEAD.get(token.text) : undefined;
|
|
101
128
|
cursor.report('OS1019', token.span, {
|
|
102
129
|
word: token.text,
|
|
103
|
-
suggestion: unreservedNear(token.text),
|
|
130
|
+
suggestion: called ?? unreservedNear(token.text),
|
|
104
131
|
});
|
|
105
132
|
}
|
|
106
133
|
return makeNode('name', token.span, { text: token.text });
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
import type { Expression, SwitchCase, SwitchDefault, SwitchStatement } from '../ast/index.js';
|
|
2
|
-
import { makeNode } from '../ast/index.js';
|
|
3
|
-
import type { Span } from '../span/index.js';
|
|
4
|
-
import { spanning } from '../span/index.js';
|
|
5
|
-
import { parseBlock } from './blocks.js';
|
|
6
|
-
import type { Cursor } from './cursor.js';
|
|
7
|
-
import { parseCondition } from './expressions.js';
|
|
8
|
-
import { finishStatement } from './statements.js';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* `switch`, in both forms of language.md 10.6.
|
|
12
|
-
*
|
|
13
|
-
* With a subject each case value is compared against it, and without one each
|
|
14
|
-
* case value is a condition. The difference is the absent subject and needs no
|
|
15
|
-
* flag beside it.
|
|
16
|
-
*
|
|
17
|
-
* The arms are the whole of a switch body. A `default` that is not last would
|
|
18
|
-
* leave the arms after it unreachable, so the arm that follows one is OS1017,
|
|
19
|
-
* and the arm is kept in the tree all the same: a reader who moves the default
|
|
20
|
-
* should not then be told about the arms one at a time.
|
|
21
|
-
*/
|
|
22
|
-
export function parseSwitchStatement(cursor: Cursor): SwitchStatement {
|
|
23
|
-
const keyword = cursor.advance();
|
|
24
|
-
const subject = cursor.atStatementEnd() ? undefined : parseCondition(cursor);
|
|
25
|
-
finishStatement(cursor);
|
|
26
|
-
|
|
27
|
-
const cases: SwitchCase[] = [];
|
|
28
|
-
let defaultCase: SwitchDefault | undefined;
|
|
29
|
-
let end: Span = keyword.span;
|
|
30
|
-
|
|
31
|
-
if (!cursor.at('indent')) {
|
|
32
|
-
if (!cursor.reportedHere) cursor.report('OS1010', keyword.span, { header: 'switch' });
|
|
33
|
-
return makeNode('switchStatement', spanning(keyword.span, end), {
|
|
34
|
-
subject,
|
|
35
|
-
cases,
|
|
36
|
-
defaultCase,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (!cursor.openBlock(cursor.token.span)) {
|
|
41
|
-
cursor.skipBlockBody();
|
|
42
|
-
return makeNode('switchStatement', spanning(keyword.span, end), {
|
|
43
|
-
subject,
|
|
44
|
-
cases,
|
|
45
|
-
defaultCase,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
cursor.advance();
|
|
49
|
-
|
|
50
|
-
while (!cursor.at('dedent') && !cursor.at('endOfFile')) {
|
|
51
|
-
const before = cursor.position;
|
|
52
|
-
const word = cursor.token;
|
|
53
|
-
|
|
54
|
-
if (cursor.at('case')) {
|
|
55
|
-
if (defaultCase !== undefined) cursor.report('OS1017', word.span, { word: word.text });
|
|
56
|
-
const arm = parseCase(cursor);
|
|
57
|
-
cases.push(arm);
|
|
58
|
-
end = arm.span;
|
|
59
|
-
} else if (cursor.at('default')) {
|
|
60
|
-
const arm = parseDefault(cursor);
|
|
61
|
-
if (defaultCase === undefined) defaultCase = arm;
|
|
62
|
-
else cursor.report('OS1017', word.span, { word: word.text });
|
|
63
|
-
end = arm.span;
|
|
64
|
-
} else {
|
|
65
|
-
// A line in a switch body that is not an arm. The catalogue has no code
|
|
66
|
-
// for it, and OS1017 carries the rule it breaks: the arms are the whole
|
|
67
|
-
// of the body, so this line belongs inside one of them or above the
|
|
68
|
-
// switch.
|
|
69
|
-
cursor.report('OS1017', word.span, { word: 'case' });
|
|
70
|
-
cursor.skipStatement();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (cursor.position === before) cursor.skipStatement();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
cursor.closeBlock();
|
|
77
|
-
cursor.take('dedent');
|
|
78
|
-
|
|
79
|
-
return makeNode('switchStatement', spanning(keyword.span, end), { subject, cases, defaultCase });
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/** One arm. Several values separated by commas are one arm, not several. */
|
|
83
|
-
function parseCase(cursor: Cursor): SwitchCase {
|
|
84
|
-
cursor.beginStatement();
|
|
85
|
-
const keyword = cursor.advance();
|
|
86
|
-
|
|
87
|
-
const values: Expression[] = [parseCondition(cursor)];
|
|
88
|
-
while (cursor.take(',') !== undefined) {
|
|
89
|
-
const before = cursor.position;
|
|
90
|
-
values.push(parseCondition(cursor));
|
|
91
|
-
if (cursor.position === before) break;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
finishStatement(cursor);
|
|
95
|
-
const body = parseBlock(cursor, 'case', keyword.span);
|
|
96
|
-
return makeNode('switchCase', spanning(keyword.span, body.span), { values, body });
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
function parseDefault(cursor: Cursor): SwitchDefault {
|
|
100
|
-
cursor.beginStatement();
|
|
101
|
-
const keyword = cursor.advance();
|
|
102
|
-
finishStatement(cursor);
|
|
103
|
-
const body = parseBlock(cursor, 'default', keyword.span);
|
|
104
|
-
return makeNode('switchDefault', spanning(keyword.span, body.span), { body });
|
|
105
|
-
}
|
|
1
|
+
import type { Expression, SwitchCase, SwitchDefault, SwitchStatement } from '../ast/index.js';
|
|
2
|
+
import { makeNode } from '../ast/index.js';
|
|
3
|
+
import type { Span } from '../span/index.js';
|
|
4
|
+
import { spanning } from '../span/index.js';
|
|
5
|
+
import { parseBlock } from './blocks.js';
|
|
6
|
+
import type { Cursor } from './cursor.js';
|
|
7
|
+
import { parseCondition } from './expressions.js';
|
|
8
|
+
import { finishStatement } from './statements.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* `switch`, in both forms of language.md 10.6.
|
|
12
|
+
*
|
|
13
|
+
* With a subject each case value is compared against it, and without one each
|
|
14
|
+
* case value is a condition. The difference is the absent subject and needs no
|
|
15
|
+
* flag beside it.
|
|
16
|
+
*
|
|
17
|
+
* The arms are the whole of a switch body. A `default` that is not last would
|
|
18
|
+
* leave the arms after it unreachable, so the arm that follows one is OS1017,
|
|
19
|
+
* and the arm is kept in the tree all the same: a reader who moves the default
|
|
20
|
+
* should not then be told about the arms one at a time.
|
|
21
|
+
*/
|
|
22
|
+
export function parseSwitchStatement(cursor: Cursor): SwitchStatement {
|
|
23
|
+
const keyword = cursor.advance();
|
|
24
|
+
const subject = cursor.atStatementEnd() ? undefined : parseCondition(cursor);
|
|
25
|
+
finishStatement(cursor);
|
|
26
|
+
|
|
27
|
+
const cases: SwitchCase[] = [];
|
|
28
|
+
let defaultCase: SwitchDefault | undefined;
|
|
29
|
+
let end: Span = keyword.span;
|
|
30
|
+
|
|
31
|
+
if (!cursor.at('indent')) {
|
|
32
|
+
if (!cursor.reportedHere) cursor.report('OS1010', keyword.span, { header: 'switch' });
|
|
33
|
+
return makeNode('switchStatement', spanning(keyword.span, end), {
|
|
34
|
+
subject,
|
|
35
|
+
cases,
|
|
36
|
+
defaultCase,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!cursor.openBlock(cursor.token.span)) {
|
|
41
|
+
cursor.skipBlockBody();
|
|
42
|
+
return makeNode('switchStatement', spanning(keyword.span, end), {
|
|
43
|
+
subject,
|
|
44
|
+
cases,
|
|
45
|
+
defaultCase,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
cursor.advance();
|
|
49
|
+
|
|
50
|
+
while (!cursor.at('dedent') && !cursor.at('endOfFile')) {
|
|
51
|
+
const before = cursor.position;
|
|
52
|
+
const word = cursor.token;
|
|
53
|
+
|
|
54
|
+
if (cursor.at('case')) {
|
|
55
|
+
if (defaultCase !== undefined) cursor.report('OS1017', word.span, { word: word.text });
|
|
56
|
+
const arm = parseCase(cursor);
|
|
57
|
+
cases.push(arm);
|
|
58
|
+
end = arm.span;
|
|
59
|
+
} else if (cursor.at('default')) {
|
|
60
|
+
const arm = parseDefault(cursor);
|
|
61
|
+
if (defaultCase === undefined) defaultCase = arm;
|
|
62
|
+
else cursor.report('OS1017', word.span, { word: word.text });
|
|
63
|
+
end = arm.span;
|
|
64
|
+
} else {
|
|
65
|
+
// A line in a switch body that is not an arm. The catalogue has no code
|
|
66
|
+
// for it, and OS1017 carries the rule it breaks: the arms are the whole
|
|
67
|
+
// of the body, so this line belongs inside one of them or above the
|
|
68
|
+
// switch.
|
|
69
|
+
cursor.report('OS1017', word.span, { word: 'case' });
|
|
70
|
+
cursor.skipStatement();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (cursor.position === before) cursor.skipStatement();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
cursor.closeBlock();
|
|
77
|
+
cursor.take('dedent');
|
|
78
|
+
|
|
79
|
+
return makeNode('switchStatement', spanning(keyword.span, end), { subject, cases, defaultCase });
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** One arm. Several values separated by commas are one arm, not several. */
|
|
83
|
+
function parseCase(cursor: Cursor): SwitchCase {
|
|
84
|
+
cursor.beginStatement();
|
|
85
|
+
const keyword = cursor.advance();
|
|
86
|
+
|
|
87
|
+
const values: Expression[] = [parseCondition(cursor)];
|
|
88
|
+
while (cursor.take(',') !== undefined) {
|
|
89
|
+
const before = cursor.position;
|
|
90
|
+
values.push(parseCondition(cursor));
|
|
91
|
+
if (cursor.position === before) break;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
finishStatement(cursor);
|
|
95
|
+
const body = parseBlock(cursor, 'case', keyword.span);
|
|
96
|
+
return makeNode('switchCase', spanning(keyword.span, body.span), { values, body });
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function parseDefault(cursor: Cursor): SwitchDefault {
|
|
100
|
+
cursor.beginStatement();
|
|
101
|
+
const keyword = cursor.advance();
|
|
102
|
+
finishStatement(cursor);
|
|
103
|
+
const body = parseBlock(cursor, 'default', keyword.span);
|
|
104
|
+
return makeNode('switchDefault', spanning(keyword.span, body.span), { body });
|
|
105
|
+
}
|