openalgo-script 0.7.1 → 0.8.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +22 -9
  3. package/dist/adapters/charts/capabilities.d.ts +48 -0
  4. package/dist/adapters/charts/capabilities.d.ts.map +1 -0
  5. package/dist/adapters/charts/capabilities.js +82 -0
  6. package/dist/adapters/charts/capabilities.js.map +1 -0
  7. package/dist/adapters/charts/columns.d.ts +2 -0
  8. package/dist/adapters/charts/columns.d.ts.map +1 -1
  9. package/dist/adapters/charts/columns.js +4 -0
  10. package/dist/adapters/charts/columns.js.map +1 -1
  11. package/dist/adapters/charts/contract.d.ts +35 -3
  12. package/dist/adapters/charts/contract.d.ts.map +1 -1
  13. package/dist/adapters/charts/descriptor.d.ts +1 -1
  14. package/dist/adapters/charts/descriptor.d.ts.map +1 -1
  15. package/dist/adapters/charts/descriptor.js +17 -5
  16. package/dist/adapters/charts/descriptor.js.map +1 -1
  17. package/dist/adapters/charts/fills.d.ts +26 -5
  18. package/dist/adapters/charts/fills.d.ts.map +1 -1
  19. package/dist/adapters/charts/fills.js +55 -7
  20. package/dist/adapters/charts/fills.js.map +1 -1
  21. package/dist/adapters/charts/index.d.ts +9 -3
  22. package/dist/adapters/charts/index.d.ts.map +1 -1
  23. package/dist/adapters/charts/index.js +7 -1
  24. package/dist/adapters/charts/index.js.map +1 -1
  25. package/dist/adapters/charts/produced.d.ts +3 -2
  26. package/dist/adapters/charts/produced.d.ts.map +1 -1
  27. package/dist/adapters/charts/produced.js +1 -1
  28. package/dist/adapters/charts/produced.js.map +1 -1
  29. package/dist/adapters/charts/run.d.ts +23 -0
  30. package/dist/adapters/charts/run.d.ts.map +1 -1
  31. package/dist/adapters/charts/run.js +2 -1
  32. package/dist/adapters/charts/run.js.map +1 -1
  33. package/dist/adapters/charts/surfaces.d.ts +11 -0
  34. package/dist/adapters/charts/surfaces.d.ts.map +1 -1
  35. package/dist/adapters/charts/tables.d.ts +21 -11
  36. package/dist/adapters/charts/tables.d.ts.map +1 -1
  37. package/dist/adapters/charts/tables.js +17 -6
  38. package/dist/adapters/charts/tables.js.map +1 -1
  39. package/dist/adapters/charts/undrawable.d.ts +2 -1
  40. package/dist/adapters/charts/undrawable.d.ts.map +1 -1
  41. package/dist/adapters/charts/undrawable.js +24 -14
  42. package/dist/adapters/charts/undrawable.js.map +1 -1
  43. package/dist/core/stdlib/volume/accumulation.d.ts +14 -0
  44. package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -1
  45. package/dist/core/stdlib/volume/accumulation.js +32 -2
  46. package/dist/core/stdlib/volume/accumulation.js.map +1 -1
  47. package/dist/core/stdlib/volume/flow.d.ts.map +1 -1
  48. package/dist/core/stdlib/volume/flow.js +3 -1
  49. package/dist/core/stdlib/volume/flow.js.map +1 -1
  50. package/dist/core/stdlib/volume/weighted.d.ts +7 -0
  51. package/dist/core/stdlib/volume/weighted.d.ts.map +1 -1
  52. package/dist/core/stdlib/volume/weighted.js +15 -3
  53. package/dist/core/stdlib/volume/weighted.js.map +1 -1
  54. package/dist/core/version/version.generated.d.ts +1 -1
  55. package/dist/core/version/version.generated.js +1 -1
  56. package/package.json +1 -1
  57. package/src/adapters/charts/capabilities.ts +103 -0
  58. package/src/adapters/charts/columns.ts +5 -0
  59. package/src/adapters/charts/contract.ts +36 -2
  60. package/src/adapters/charts/descriptor.ts +21 -6
  61. package/src/adapters/charts/fills.ts +95 -11
  62. package/src/adapters/charts/index.ts +9 -1
  63. package/src/adapters/charts/produced.ts +4 -3
  64. package/src/adapters/charts/run.ts +25 -1
  65. package/src/adapters/charts/surfaces.ts +12 -0
  66. package/src/adapters/charts/tables.ts +31 -14
  67. package/src/adapters/charts/undrawable.ts +24 -14
  68. package/src/core/stdlib/volume/accumulation.ts +37 -2
  69. package/src/core/stdlib/volume/flow.ts +3 -1
  70. package/src/core/stdlib/volume/weighted.ts +14 -3
  71. package/src/core/version/version.generated.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/fills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAQ,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU/C,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,SAAS,EAAE,CAI9F"}
1
+ {"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/fills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAQ,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa/C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,iBAAiB,GACvB,UAAU,CASZ"}
@@ -1,4 +1,5 @@
1
1
  import { cssColour } from './colours.js';
2
+ import { bandColourKey, colourAt, colourColumns } from './columns.js';
2
3
  import { boolField, colourField, isReference, numberField } from './fields.js';
3
4
  /**
4
5
  * The fade a band with no declared colour is drawn at, `stdlib.md` 14.2.
@@ -7,17 +8,46 @@ import { boolField, colourField, isReference, numberField } from './fields.js';
7
8
  * opacity, and a chart applies its own default only where the field is absent.
8
9
  */
9
10
  const UNCOLOURED_FADE = 0.12;
10
- export function buildFills(program, lookup) {
11
- const out = [];
12
- for (const band of program.outputs.fills)
13
- out.push(oneBand(program, band, lookup));
14
- return out;
11
+ /** What a bar whose computed colour is absent is painted in: nothing. */
12
+ const UNPAINTED = 'rgba(0, 0, 0, 0)';
13
+ export function buildFills(program, lookup, chart) {
14
+ const fills = [];
15
+ const columns = [];
16
+ program.outputs.fills.forEach((band, index) => {
17
+ const perBar = chart.bandColours ? perBarColours(band, index) : undefined;
18
+ if (perBar !== undefined)
19
+ columns.push(...perBar.columns);
20
+ fills.push(oneBand(program, band, lookup, perBar));
21
+ });
22
+ return { fills, columns };
15
23
  }
16
- function oneBand(program, band, lookup) {
24
+ /**
25
+ * The columns a band's computed colours need, or nothing for a band with none.
26
+ *
27
+ * `color = ...` computed per bar writes one channel into both sides, and that
28
+ * channel travels once rather than twice.
29
+ */
30
+ function perBarColours(band, index) {
31
+ const upChannel = band.colorUpChannel;
32
+ const downChannel = band.colorDownChannel;
33
+ if (upChannel === null && downChannel === null)
34
+ return undefined;
35
+ const up = upChannel === null ? undefined : bandColourKey(index, 'up');
36
+ const shared = downChannel !== null && downChannel === upChannel;
37
+ const down = downChannel === null ? undefined : shared ? up : bandColourKey(index, 'down');
38
+ const columns = [];
39
+ if (up !== undefined && upChannel !== null)
40
+ columns.push(...colourColumns(up, upChannel));
41
+ if (down !== undefined && downChannel !== null && !shared)
42
+ columns.push(...colourColumns(down, downChannel));
43
+ return { up, down, columns };
44
+ }
45
+ function oneBand(program, band, lookup, perBar) {
17
46
  const up = colourField(band.colorUp, lookup);
18
47
  const down = colourField(band.colorDown, lookup);
19
48
  const overlay = boolField(band.overlay, lookup);
20
- const declared = up !== undefined || down !== undefined;
49
+ const computed = band.colorUpChannel !== null || band.colorDownChannel !== null;
50
+ const declared = up !== undefined || down !== undefined || computed;
21
51
  const opacity = numberField(band.opacity, lookup, 1) * (declared ? 1 : UNCOLOURED_FADE);
22
52
  const follow = declared ? undefined : plotColourKey(program, band.between[0]);
23
53
  return {
@@ -29,6 +59,24 @@ function oneBand(program, band, lookup) {
29
59
  ...(follow === undefined ? {} : { colorUpKey: follow, colorDownKey: follow }),
30
60
  opacity,
31
61
  ...(overlay === undefined ? {} : { overlay }),
62
+ ...(perBar === undefined ? {} : { colorBy: colourBy(perBar) }),
63
+ };
64
+ }
65
+ /**
66
+ * The band's colour on one bar: the computed colour for the side it is on.
67
+ *
68
+ * Nothing where either column is absent, which is a bar the chart does not
69
+ * draw, and nothing where that side's colour is not computed, which leaves the
70
+ * chart the band's own colour for the side.
71
+ */
72
+ function colourBy(perBar) {
73
+ return (ctx) => {
74
+ if (typeof ctx.a !== 'number' || typeof ctx.b !== 'number')
75
+ return undefined;
76
+ const key = ctx.a >= ctx.b ? perBar.up : perBar.down;
77
+ if (key === undefined)
78
+ return undefined;
79
+ return colourAt(ctx.values, ctx.index, key) ?? UNPAINTED;
32
80
  };
33
81
  }
34
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/adapters/charts/fills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/adapters/charts/fills.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,16 @@
16
16
  * What is mapped is the whole output surface: the declared inputs and the
17
17
  * settings dialog a chart generates from them, the plots with their styles and
18
18
  * scales, the bands between them, the horizontal levels, the pane's fixed range,
19
- * the markers, the candle and pane painting, the summary grid, the drawing
19
+ * the markers, the candle and pane painting, the summary grids, the drawing
20
20
  * objects a script mutates over time, the watched conditions, and the lifecycle
21
21
  * a read of another instrument fetches through.
22
22
  *
23
+ * **Two of those depend on the chart the host states.** A band coloured per bar
24
+ * and a study with more than one grid need hooks only a newer chart has, so a
25
+ * host passes the chart library's own `VERSION` as
26
+ * `ChartAdapterOptions.chartVersion`, and without it such a study is refused
27
+ * with OS6024 rather than drawn in part. `capabilities.ts` has the versions.
28
+ *
23
29
  * What a study can express and this descriptor has no field for is recorded,
24
30
  * with its reason, in `spec/chart-narrowings.json`, and each one is also named
25
31
  * in the file that would have written it. `scripts/check-chart-surface.mjs`
@@ -32,6 +38,6 @@ export type { Painter } from './paint.js';
32
38
  export { ChartAdapterError } from './errors.js';
33
39
  export { release } from './run.js';
34
40
  export type { ChartAdapterOptions } from './run.js';
35
- export type { ChartBar, ChartCalcContext, ChartDescriptor, ChartFill, ChartInput, ChartLevel, ChartLevelContext, ChartLineStyle, ChartPlot, ChartPriceFormat, ChartPriceScaleId, ChartSeriesStyle, ChartSeriesType, ChartSettings, ChartSource, ChartStore, ChartValues, } from './contract.js';
36
- export type { ChartAlertContext, ChartAlertSpec, ChartAnchor, ChartAttachContext, ChartBarsRequest, ChartCell, ChartCellAlign, ChartDataChange, ChartDataStatus, ChartDrawing, ChartGrid, ChartMarker, ChartMarkerPosition, ChartMarkerShape, ChartMarkerSize, ChartSurfaceContext, ChartTableOptions, ChartTablePosition, } from './surfaces.js';
41
+ export type { ChartBar, ChartCalcContext, ChartDescriptor, ChartFill, ChartFillContext, ChartInput, ChartLevel, ChartLevelContext, ChartLineStyle, ChartPlot, ChartPriceFormat, ChartPriceScaleId, ChartSeriesStyle, ChartSeriesType, ChartSettings, ChartSource, ChartStore, ChartValues, } from './contract.js';
42
+ export type { ChartAlertContext, ChartAlertSpec, ChartAnchor, ChartAttachContext, ChartBarsRequest, ChartCell, ChartCellAlign, ChartDataChange, ChartDataStatus, ChartDrawing, ChartGrid, ChartMarker, ChartMarkerPosition, ChartMarkerShape, ChartMarkerSize, ChartSurfaceContext, ChartTableOptions, ChartTablePosition, ChartTableSpec, } from './surfaces.js';
37
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,eAAe,CAAC"}
@@ -16,10 +16,16 @@
16
16
  * What is mapped is the whole output surface: the declared inputs and the
17
17
  * settings dialog a chart generates from them, the plots with their styles and
18
18
  * scales, the bands between them, the horizontal levels, the pane's fixed range,
19
- * the markers, the candle and pane painting, the summary grid, the drawing
19
+ * the markers, the candle and pane painting, the summary grids, the drawing
20
20
  * objects a script mutates over time, the watched conditions, and the lifecycle
21
21
  * a read of another instrument fetches through.
22
22
  *
23
+ * **Two of those depend on the chart the host states.** A band coloured per bar
24
+ * and a study with more than one grid need hooks only a newer chart has, so a
25
+ * host passes the chart library's own `VERSION` as
26
+ * `ChartAdapterOptions.chartVersion`, and without it such a study is refused
27
+ * with OS6024 rather than drawn in part. `capabilities.ts` has the versions.
28
+ *
23
29
  * What a study can express and this descriptor has no field for is recorded,
24
30
  * with its reason, in `spec/chart-narrowings.json`, and each one is also named
25
31
  * in the file that would have written it. `scripts/check-chart-surface.mjs`
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/charts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
@@ -32,7 +32,7 @@
32
32
  */
33
33
  import type { Value } from '../../core/engine/index.js';
34
34
  import type { ChartSettings } from './contract.js';
35
- import type { ChartDrawing, ChartGrid, ChartMarker } from './surfaces.js';
35
+ import type { ChartDrawing, ChartMarker, ChartTableSpec } from './surfaces.js';
36
36
  /**
37
37
  * One declared alert's message channel, whole, as the run left it.
38
38
  *
@@ -45,7 +45,8 @@ export type MessageColumn = readonly Value[];
45
45
  /** One run's non-numeric output, as the hooks that follow it read it. */
46
46
  export interface Produced {
47
47
  readonly markers: readonly ChartMarker[];
48
- readonly table: ChartGrid | null;
48
+ /** Every declared grid, in declaration order; the single hook reads the first. */
49
+ readonly tables: readonly ChartTableSpec[];
49
50
  readonly drawings: readonly ChartDrawing[];
50
51
  /** One entry per declared alert, in the order `outputs.alerts` declares them. */
51
52
  readonly messages: readonly MessageColumn[];
@@ -1 +1 @@
1
- {"version":3,"file":"produced.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/produced.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,KAAK,EAAE,CAAC;AAE7C,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAMD,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE1E;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAE7D"}
1
+ {"version":3,"file":"produced.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/produced.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,KAAK,EAAE,CAAC;AAE7C,yEAAyE;AACzE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAMD,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE1E;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAE7D"}
@@ -1,4 +1,4 @@
1
- const NOTHING = { markers: [], table: null, drawings: [], messages: [] };
1
+ const NOTHING = { markers: [], tables: [], drawings: [], messages: [] };
2
2
  const runs = new WeakMap();
3
3
  /** What the calculation just produced, against the settings it was run with. */
4
4
  export function remember(settings, produced) {
@@ -1 +1 @@
1
- {"version":3,"file":"produced.js","sourceRoot":"","sources":["../../../src/adapters/charts/produced.ts"],"names":[],"mappings":"AAuDA,MAAM,OAAO,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAEnF,MAAM,IAAI,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEpD,gFAAgF;AAChF,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE,QAAkB;IAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,QAAuB;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"produced.js","sourceRoot":"","sources":["../../../src/adapters/charts/produced.ts"],"names":[],"mappings":"AAwDA,MAAM,OAAO,GAAa,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAElF,MAAM,IAAI,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEpD,gFAAgF;AAChF,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE,QAAkB;IAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,QAAuB;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AACvC,CAAC"}
@@ -36,6 +36,29 @@ export interface ChartAdapterOptions {
36
36
  readonly id?: string;
37
37
  /** The category a picker groups the study under, when `meta.group` is empty. */
38
38
  readonly category?: string;
39
+ /**
40
+ * The chart library's own version: the `VERSION` string it exports, which a
41
+ * host that imports the chart already holds, passed on as
42
+ * `descriptorFor(program, { chartVersion: VERSION })`.
43
+ *
44
+ * It says which of the descriptor's hooks the chart this descriptor is
45
+ * registered with will read. Two arrived after the oldest chart the peer
46
+ * range accepts: a band's per-bar colour and the list of grids. From 2.5.4
47
+ * on, a band whose colour the script computes is drawn bar by bar and every
48
+ * declared grid is drawn. Before it, or when nothing is stated, the adapter
49
+ * cannot tell whether the chart will read either hook, and a chart that
50
+ * ignores one draws a band in its own default colours or the first grid
51
+ * alone, with nothing said. So such a program is refused before any bar runs
52
+ * with OS6024, which is what a host that states nothing got before this
53
+ * option existed.
54
+ *
55
+ * The version rather than a switch per hook, because it is one fact the
56
+ * host already holds, it moves with the chart the host actually installed,
57
+ * and a hook the adapter learns to read later needs nothing new from any
58
+ * host. `capabilities.ts` has the rule, prereleases and unreadable strings
59
+ * included.
60
+ */
61
+ readonly chartVersion?: string;
39
62
  /**
40
63
  * What the host has stored for this study's inputs, for the declared shape.
41
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EAGX,YAAY,EACZ,IAAI,EAEJ,UAAU,EACV,OAAO,EAEP,KAAK,EACN,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAW3F,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACnE;AAMD,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACvC;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,OAAO,EAAE,mBAAmB,GAC3B,SAAS,CAmBX;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EAGjC,QAAQ,EAAE,mBAAmB,GAC5B,SAAS,GAAG,IAAI,CA6ClB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAG/C"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EAGX,YAAY,EACZ,IAAI,EAEJ,UAAU,EACV,OAAO,EAEP,KAAK,EACN,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAY3F,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACnE;AAMD,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;CACvC;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EACjC,OAAO,EAAE,mBAAmB,GAC3B,SAAS,CAmBX;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,gBAAgB,GAAG,SAAS,EAGjC,QAAQ,EAAE,mBAAmB,GAC5B,SAAS,GAAG,IAAI,CA6ClB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAG/C"}
@@ -1,5 +1,6 @@
1
1
  import { load, utcTime } from '../../core/engine/index.js';
2
2
  import { hostBar, hostNow, stateFor } from './bars.js';
3
+ import { capabilitiesOf } from './capabilities.js';
3
4
  import { refused, stopped } from './errors.js';
4
5
  import { undrawable } from './undrawable.js';
5
6
  import { stationIn, stationOf } from './requests.js';
@@ -140,7 +141,7 @@ function start(program, settings, ctx, options, requests, bars) {
140
141
  : options;
141
142
  // What this chart has no room for is refused before the engine is asked,
142
143
  // because a study drawn without it is a study that looks broken.
143
- const narrower = undrawable(program);
144
+ const narrower = undrawable(program, capabilitiesOf(options.chartVersion));
144
145
  if (narrower !== undefined)
145
146
  throw refused(narrower);
146
147
  const loaded = load(program, {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/adapters/charts/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/adapters/charts/run.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,17 @@ export interface ChartGrid {
98
98
  readonly rows: readonly (readonly ChartCell[])[];
99
99
  readonly options?: ChartTableOptions;
100
100
  }
101
+ /**
102
+ * One grid of several, under an identity the chart keeps it by.
103
+ *
104
+ * The chart reuses the grid a recompute names again and removes one it no
105
+ * longer names, so the id is the declaration's key: stable across recomputes,
106
+ * never empty, and unique within a program because the compiler writes one per
107
+ * declaration.
108
+ */
109
+ export interface ChartTableSpec extends ChartGrid {
110
+ readonly id: string;
111
+ }
101
112
  /** One end of a drawing: a time on the shared axis, a price on the pane's scale. */
102
113
  export interface ChartAnchor {
103
114
  readonly time: number;
@@ -1 +1 @@
1
- {"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/surfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/surfaces.ts"],"names":[],"mappings":"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"}
@@ -27,26 +27,36 @@
27
27
  * placed into it, which is what `language.md` 6.7 asks for from the other
28
28
  * direction: a cell nothing was written into is blank, never a zero.
29
29
  *
30
- * **A chart pane holds one grid and the language declares as many as it likes.**
31
- * The descriptor has one `table` hook, and merging two grids into it would put
32
- * cells somewhere the script never asked for. So a program declaring a second
33
- * grid never reaches this file: `undrawable.ts` refuses it before any bar runs,
34
- * with OS6024, and this reads the one grid a program that runs can have.
35
- * `spec/chart-narrowings.json` records the refusal and
36
- * `scripts/check-chart-surface.mjs` proves it with a study that declares two.
30
+ * **The language declares as many grids as it likes, and a chart with the list
31
+ * of grids draws them all** (`capabilities.ts` says which chart has it). The
32
+ * list holds each grid under an id the chart keeps it by, and every declared
33
+ * grid is built for it here under its declaration's key. The single `table`
34
+ * hook stays beside the list with the first grid in it, because a chart
35
+ * without the list reads that one. Merging two grids into the single hook
36
+ * would put cells somewhere the script never asked for, so on a chart without
37
+ * the list a program declaring a second grid never reaches this file:
38
+ * `undrawable.ts` refuses it before any bar runs, with OS6024.
39
+ * `spec/chart-narrowings.json` records both halves and
40
+ * `scripts/check-chart-surface.mjs` proves both with a study that declares two.
37
41
  */
38
42
  import type { CompiledProgram } from '../../core/emit/index.js';
39
43
  import type { Grid } from '../../core/engine/index.js';
40
44
  import type { InputLookup } from './fields.js';
41
- import type { ChartGrid } from './surfaces.js';
45
+ import type { ChartGrid, ChartTableSpec } from './surfaces.js';
42
46
  /**
43
- * The grid a chart draws, from the declaration and the engine's buffer.
47
+ * Every grid a chart draws, from the declarations and the engine's buffers.
44
48
  *
45
- * The buffer is paired with the declaration by the key both of them carry
49
+ * Each buffer is paired with its declaration by the key both of them carry
46
50
  * rather than by position. The engine reads its grids in declaration order, so
47
51
  * the two agree today, and a pairing by position is one reordering away from
48
52
  * drawing one grid's cells into another grid's shape, which would be a wrong
49
53
  * table that looks like a right one.
54
+ *
55
+ * The key is the id as well. The compiler writes one per declaration and never
56
+ * an empty one, and it does not move between recomputes, which is what lets the
57
+ * chart keep a grid rather than build it again on every tick.
50
58
  */
51
- export declare function buildTable(program: CompiledProgram, lookup: InputLookup, written: readonly Grid[]): ChartGrid | null;
59
+ export declare function buildTables(program: CompiledProgram, lookup: InputLookup, written: readonly Grid[]): readonly ChartTableSpec[];
60
+ /** The first grid alone, for the single hook a chart without the list reads. */
61
+ export declare function firstGrid(tables: readonly ChartTableSpec[]): ChartGrid | null;
52
62
  //# sourceMappingURL=tables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAGV,SAAS,EAEV,MAAM,eAAe,CAAC;AAYvB;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,IAAI,EAAE,GACvB,SAAS,GAAG,IAAI,CAIlB"}
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAE,IAAI,EAAY,MAAM,4BAA4B,CAAC;AAGjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAGV,SAAS,EAET,cAAc,EACf,MAAM,eAAe,CAAC;AAYvB;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,IAAI,EAAE,GACvB,SAAS,cAAc,EAAE,CAK3B;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,GAAG,IAAI,CAI7E"}
@@ -9,19 +9,30 @@ const CORNERS = {
9
9
  };
10
10
  const ALIGNMENTS = ['left', 'center', 'right'];
11
11
  /**
12
- * The grid a chart draws, from the declaration and the engine's buffer.
12
+ * Every grid a chart draws, from the declarations and the engine's buffers.
13
13
  *
14
- * The buffer is paired with the declaration by the key both of them carry
14
+ * Each buffer is paired with its declaration by the key both of them carry
15
15
  * rather than by position. The engine reads its grids in declaration order, so
16
16
  * the two agree today, and a pairing by position is one reordering away from
17
17
  * drawing one grid's cells into another grid's shape, which would be a wrong
18
18
  * table that looks like a right one.
19
+ *
20
+ * The key is the id as well. The compiler writes one per declaration and never
21
+ * an empty one, and it does not move between recomputes, which is what lets the
22
+ * chart keep a grid rather than build it again on every tick.
19
23
  */
20
- export function buildTable(program, lookup, written) {
21
- const declared = program.outputs.tables[0];
22
- if (declared === undefined)
24
+ export function buildTables(program, lookup, written) {
25
+ return program.outputs.tables.map((declared) => ({
26
+ id: declared.key,
27
+ ...oneTable(declared, lookup, written.find((one) => one.key === declared.key)),
28
+ }));
29
+ }
30
+ /** The first grid alone, for the single hook a chart without the list reads. */
31
+ export function firstGrid(tables) {
32
+ const first = tables[0];
33
+ if (first === undefined)
23
34
  return null;
24
- return oneTable(declared, lookup, written.find((one) => one.key === declared.key));
35
+ return { rows: first.rows, ...(first.options === undefined ? {} : { options: first.options }) };
25
36
  }
26
37
  function oneTable(declared, lookup, written) {
27
38
  const position = stringField(declared.position, lookup, 'topRight');
@@ -1 +1 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/adapters/charts/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/adapters/charts/tables.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAUpE,6DAA6D;AAC7D,MAAM,OAAO,GAAiD;IAC5D,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;CAC5B,CAAC;AAEF,MAAM,UAAU,GAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,OAAwB,EACxB,MAAmB,EACnB,OAAwB;IAExB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/C,EAAE,EAAE,QAAQ,CAAC,GAAG;QAChB,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;KAC/E,CAAC,CAAC,CAAC;AACN,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,SAAS,CAAC,MAAiC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,QAAQ,CACf,QAAsB,EACtB,MAAmB,EACnB,OAAyB;IAEzB,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAY,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;YAAE,SAAS;QAC5E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,WAAW;YAC1C,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,yEAAyE;YACzE,2DAA2D;YAC3D,QAAQ,EAAE,MAAM;SACjB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,YAAY,CAAC,IAAuC,EAAE,IAAY;IACzE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC;IAC/E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB,4DAA4D;AAC5D,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,SAAS,OAAO,CAAC,IAAc,EAAE,QAA4B;IAC3D,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7E,CAAC,CAAE,IAAI,CAAC,KAAwB;QAChC,CAAC,CAAC,MAAM,CAAC;IACX,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QACxD,KAAK;KACN,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Diagnostic } from '../../core/index.js';
2
2
  import type { CompiledProgram } from '../../core/emit/index.js';
3
- export declare function undrawable(program: CompiledProgram): Diagnostic | undefined;
3
+ import type { ChartCapabilities } from './capabilities.js';
4
+ export declare function undrawable(program: CompiledProgram, chart: ChartCapabilities): Diagnostic | undefined;
4
5
  //# sourceMappingURL=undrawable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"undrawable.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/undrawable.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAS,MAAM,0BAA0B,CAAC;AAKvE,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,GAAG,SAAS,CAiB3E"}
1
+ {"version":3,"file":"undrawable.d.ts","sourceRoot":"","sources":["../../../src/adapters/charts/undrawable.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAS,MAAM,0BAA0B,CAAC;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAK3D,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAkBrG"}
@@ -3,38 +3,48 @@
3
3
  *
4
4
  * `compiled-program.md` section 11: a host draws what its surface has room for,
5
5
  * and refuses what it does not with OS6024 rather than drawing part of a study
6
- * and saying nothing. Two things a version 1 program can declare have no place
7
- * on this chart's surface, and both used to be dropped in silence.
6
+ * and saying nothing. Two things a version 1 program can declare have a place
7
+ * on a newer chart and none on an older one (`capabilities.ts` says which is
8
+ * which), and on an older one both used to be dropped in silence.
8
9
  *
9
- * - **A second grid.** The descriptor has one `table` hook, so one grid reaches
10
- * a pane. Merging two into it would put cells somewhere the script never
11
- * asked for, and drawing the first alone is a study whose second panel never
12
- * appears and whose cells look broken.
13
- * - **A band colour computed per bar.** The chart's band takes one colour for
14
- * the whole run and has no channel to point at, so a band whose colour the
15
- * script computes was drawn in the first plot's colour faded, which is a
16
- * colour the script did not choose.
10
+ * - **A second grid.** An older descriptor has one `table` hook, so one grid
11
+ * reaches a pane. Merging two into it would put cells somewhere the script
12
+ * never asked for, and drawing the first alone is a study whose second panel
13
+ * never appears and whose cells look broken. A newer chart's list of grids
14
+ * carries every one (`tables.ts`).
15
+ * - **A band colour computed per bar.** An older chart's band takes one colour
16
+ * for each side for the whole run, and a band whose colour the script
17
+ * computes would be drawn in a colour the script did not choose. A newer
18
+ * chart's band has a per-bar colour callback (`fills.ts`).
19
+ *
20
+ * Which chart the descriptor is registered with is what the host states, and
21
+ * `capabilities.ts` reads it. A host that states nothing is refused both, as
22
+ * before, because a chart that ignores a hook it does not know draws the
23
+ * silent version of each.
17
24
  *
18
25
  * The compiled program carries no source position for a declaration, so the
19
26
  * refusal names the declaration by its title, which is what a reader sees in
20
27
  * the legend and the settings dialog, and its span is the load's own.
21
28
  */
22
29
  import { diagnosticFor, makeSpan } from '../../core/index.js';
30
+ import { lacking } from './capabilities.js';
23
31
  /** A load refusal has no line of its own: the program is what was refused. */
24
32
  const AT_LOAD = makeSpan(0, 0, 0, 0);
25
- export function undrawable(program) {
33
+ export function undrawable(program, chart) {
26
34
  const second = program.outputs.tables[1];
27
- if (second !== undefined) {
35
+ if (second !== undefined && !chart.grids) {
28
36
  return diagnosticFor('OS6024', AT_LOAD, {
29
37
  what: `the table ${titled(second.title, 'after the first')}, the second grid this study declares`,
30
- limit: 'a chart pane draws one grid',
38
+ limit: lacking(chart, 'grids', 'a chart pane draws one grid'),
31
39
  });
32
40
  }
41
+ if (chart.bandColours)
42
+ return undefined;
33
43
  for (const band of program.outputs.fills) {
34
44
  if (band.colorUpChannel !== null || band.colorDownChannel !== null) {
35
45
  return diagnosticFor('OS6024', AT_LOAD, {
36
46
  what: "a band's colour that is computed per bar",
37
- limit: "a chart's band takes one colour for the whole run",
47
+ limit: lacking(chart, 'bandColours', "a chart's band takes one colour for the whole run"),
38
48
  });
39
49
  }
40
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"undrawable.js","sourceRoot":"","sources":["../../../src/adapters/charts/undrawable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI9D,8EAA8E;AAC9E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,OAAwB;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE;YACtC,IAAI,EAAE,aAAa,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,uCAAuC;YACjG,KAAK,EAAE,6BAA6B;SACrC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACnE,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE;gBACtC,IAAI,EAAE,0CAA0C;gBAChD,KAAK,EAAE,mDAAmD;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6EAA6E;AAC7E,SAAS,MAAM,CAAC,KAAY,EAAE,SAAiB;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"undrawable.js","sourceRoot":"","sources":["../../../src/adapters/charts/undrawable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,8EAA8E;AAC9E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,OAAwB,EAAE,KAAwB;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE;YACtC,IAAI,EAAE,aAAa,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,uCAAuC;YACjG,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,6BAA6B,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACnE,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE;gBACtC,IAAI,EAAE,0CAA0C;gBAChD,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,mDAAmD,CAAC;aAC1F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6EAA6E;AAC7E,SAAS,MAAM,CAAC,KAAY,EAAE,SAAiB;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC"}
@@ -10,6 +10,14 @@
10
10
  * A running total is the one thing a lookback cannot stand in for, so each of
11
11
  * these carries its total in the state region rather than in a closure: that is
12
12
  * what lets an engine roll one back with the rest of a moving bar's state.
13
+ *
14
+ * A bar's term is checked after every operation that forms it
15
+ * (`compiled-program.md` section 3.1), and a term that is not finite is an absent
16
+ * term: the bar is absent and the total is left where it was, so one overflowing
17
+ * bar costs its own reading and nothing after it. A total that overflows although
18
+ * its term was finite is kept as the arithmetic produced it, and every later
19
+ * reading is absent, which is what `stdlib.md` section 20.6 says of every running
20
+ * total there.
13
21
  */
14
22
  import type { Bar, StateRecord, Tail, Value } from '../values/index.js';
15
23
  /**
@@ -19,6 +27,12 @@ import type { Bar, StateRecord, Tail, Value } from '../values/index.js';
19
27
  * A bar whose high and low are equal has no position inside it to report, and
20
28
  * the settled treatment is that such a bar contributes nothing rather than
21
29
  * ending the running total.
30
+ *
31
+ * A span that overflows is not that bar. It is absent (`compiled-program.md`
32
+ * section 3.1), and so is the term, because the one later step that could hide
33
+ * it is this division: a finite numerator over an infinite span is an exact
34
+ * zero, a term for a bar whose position was never computed. Every other step
35
+ * that overflows stays non-finite to the end and the last check catches it.
22
36
  */
23
37
  export declare function moneyFlow(bar: Bar): Value;
24
38
  /** `obv()`: the running total of volume signed by the close's direction, from bar 0, seeded 0. */
@@ -1 +1 @@
1
- {"version":3,"file":"accumulation.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/accumulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIxE;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAMzC;AAED,kGAAkG;AAClG,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAsBxE;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE1C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEjD;AAED,uFAAuF;AACvF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAMvE;AAED,wBAAwB;AACxB,wBAAgB,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEzC;AAED,iCAAiC;AACjC,wBAAgB,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,KAAK,CAMP;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE/D;AAED,8CAA8C;AAC9C,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,KAAK,EAAE,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAexE;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE1C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEjD"}
1
+ {"version":3,"file":"accumulation.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/accumulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIxE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAOzC;AAED,kGAAkG;AAClG,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAsBxE;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE1C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEjD;AAED,uFAAuF;AACvF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAMvE;AAED,wBAAwB;AACxB,wBAAgB,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEzC;AAED,iCAAiC;AACjC,wBAAgB,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,KAAK,CAMP;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE/D;AAED,8CAA8C;AAC9C,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,KAAK,EAAE,CAExE;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAiBxE;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE1C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEjD"}