oakscriptjs 0.9.4 → 0.9.6

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 (177) hide show
  1. package/dist/cjs/array/index.d.ts +88 -27
  2. package/dist/cjs/array/index.d.ts.map +1 -1
  3. package/dist/cjs/array/index.js +257 -117
  4. package/dist/cjs/array/index.js.map +3 -3
  5. package/dist/cjs/callsite/index.d.ts +122 -4
  6. package/dist/cjs/callsite/index.d.ts.map +1 -1
  7. package/dist/cjs/callsite/index.js +102 -3
  8. package/dist/cjs/callsite/index.js.map +2 -2
  9. package/dist/cjs/color/index.d.ts +7 -3
  10. package/dist/cjs/color/index.d.ts.map +1 -1
  11. package/dist/cjs/color/index.js +6 -1
  12. package/dist/cjs/color/index.js.map +2 -2
  13. package/dist/cjs/index.d.ts +1 -1
  14. package/dist/cjs/index.js +1 -1
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/label/index.d.ts.map +1 -1
  17. package/dist/cjs/label/index.js +2 -1
  18. package/dist/cjs/label/index.js.map +2 -2
  19. package/dist/cjs/linefill/index.d.ts.map +1 -1
  20. package/dist/cjs/linefill/index.js +1 -0
  21. package/dist/cjs/linefill/index.js.map +2 -2
  22. package/dist/cjs/math/index.d.ts +79 -22
  23. package/dist/cjs/math/index.d.ts.map +1 -1
  24. package/dist/cjs/math/index.js +157 -43
  25. package/dist/cjs/math/index.js.map +3 -3
  26. package/dist/cjs/matrix/index.d.ts.map +1 -1
  27. package/dist/cjs/matrix/index.js +42 -36
  28. package/dist/cjs/matrix/index.js.map +2 -2
  29. package/dist/cjs/runtime/series.d.ts +9 -0
  30. package/dist/cjs/runtime/series.d.ts.map +1 -1
  31. package/dist/cjs/runtime/series.js +16 -2
  32. package/dist/cjs/runtime/series.js.map +2 -2
  33. package/dist/cjs/script/index.d.ts +15 -31
  34. package/dist/cjs/script/index.d.ts.map +1 -1
  35. package/dist/cjs/script/index.js +32 -0
  36. package/dist/cjs/script/index.js.map +2 -2
  37. package/dist/cjs/session/calendar.d.ts.map +1 -1
  38. package/dist/cjs/session/calendar.js +15 -2
  39. package/dist/cjs/session/calendar.js.map +2 -2
  40. package/dist/cjs/str/index.d.ts +50 -38
  41. package/dist/cjs/str/index.d.ts.map +1 -1
  42. package/dist/cjs/str/index.js +43 -15
  43. package/dist/cjs/str/index.js.map +2 -2
  44. package/dist/cjs/str/messageformat.d.ts +2 -1
  45. package/dist/cjs/str/messageformat.d.ts.map +1 -1
  46. package/dist/cjs/str/messageformat.js +4 -1
  47. package/dist/cjs/str/messageformat.js.map +2 -2
  48. package/dist/cjs/str/numberformat.d.ts +4 -0
  49. package/dist/cjs/str/numberformat.d.ts.map +1 -1
  50. package/dist/cjs/str/numberformat.js +26 -4
  51. package/dist/cjs/str/numberformat.js.map +3 -3
  52. package/dist/cjs/ta/index.d.ts +95 -46
  53. package/dist/cjs/ta/index.d.ts.map +1 -1
  54. package/dist/cjs/ta/index.js +193 -318
  55. package/dist/cjs/ta/index.js.map +3 -3
  56. package/dist/cjs/ta/running-sum.d.ts +54 -1
  57. package/dist/cjs/ta/running-sum.d.ts.map +1 -1
  58. package/dist/cjs/ta/running-sum.js +132 -47
  59. package/dist/cjs/ta/running-sum.js.map +2 -2
  60. package/dist/cjs/ta-series.d.ts +4 -4
  61. package/dist/cjs/ta-series.d.ts.map +1 -1
  62. package/dist/cjs/ta-series.js +4 -3
  63. package/dist/cjs/ta-series.js.map +2 -2
  64. package/dist/cjs/time/datestring.d.ts +1 -0
  65. package/dist/cjs/time/datestring.d.ts.map +1 -1
  66. package/dist/cjs/time/datestring.js +7 -0
  67. package/dist/cjs/time/datestring.js.map +2 -2
  68. package/dist/cjs/time/index.d.ts.map +1 -1
  69. package/dist/cjs/time/index.js +2 -1
  70. package/dist/cjs/time/index.js.map +2 -2
  71. package/dist/cjs/time/session.d.ts +28 -9
  72. package/dist/cjs/time/session.d.ts.map +1 -1
  73. package/dist/cjs/time/session.js +74 -28
  74. package/dist/cjs/time/session.js.map +2 -2
  75. package/dist/cjs/time/timezone.d.ts +5 -0
  76. package/dist/cjs/time/timezone.d.ts.map +1 -1
  77. package/dist/cjs/time/timezone.js +15 -1
  78. package/dist/cjs/time/timezone.js.map +2 -2
  79. package/dist/esm/array/index.d.ts +88 -27
  80. package/dist/esm/array/index.d.ts.map +1 -1
  81. package/dist/esm/array/index.js +408 -157
  82. package/dist/esm/array/index.js.map +1 -1
  83. package/dist/esm/callsite/index.d.ts +122 -4
  84. package/dist/esm/callsite/index.d.ts.map +1 -1
  85. package/dist/esm/callsite/index.js +228 -8
  86. package/dist/esm/callsite/index.js.map +1 -1
  87. package/dist/esm/color/index.d.ts +7 -3
  88. package/dist/esm/color/index.d.ts.map +1 -1
  89. package/dist/esm/color/index.js +15 -3
  90. package/dist/esm/color/index.js.map +1 -1
  91. package/dist/esm/index.d.ts +1 -1
  92. package/dist/esm/index.js +1 -1
  93. package/dist/esm/label/index.d.ts.map +1 -1
  94. package/dist/esm/label/index.js +2 -1
  95. package/dist/esm/label/index.js.map +1 -1
  96. package/dist/esm/linefill/index.d.ts.map +1 -1
  97. package/dist/esm/linefill/index.js +3 -0
  98. package/dist/esm/linefill/index.js.map +1 -1
  99. package/dist/esm/math/index.d.ts +79 -22
  100. package/dist/esm/math/index.d.ts.map +1 -1
  101. package/dist/esm/math/index.js +229 -63
  102. package/dist/esm/math/index.js.map +1 -1
  103. package/dist/esm/matrix/index.d.ts.map +1 -1
  104. package/dist/esm/matrix/index.js +57 -43
  105. package/dist/esm/matrix/index.js.map +1 -1
  106. package/dist/esm/runtime/series.d.ts +9 -0
  107. package/dist/esm/runtime/series.d.ts.map +1 -1
  108. package/dist/esm/runtime/series.js +18 -1
  109. package/dist/esm/runtime/series.js.map +1 -1
  110. package/dist/esm/script/index.d.ts +15 -31
  111. package/dist/esm/script/index.d.ts.map +1 -1
  112. package/dist/esm/script/index.js +44 -1
  113. package/dist/esm/script/index.js.map +1 -1
  114. package/dist/esm/session/calendar.d.ts.map +1 -1
  115. package/dist/esm/session/calendar.js +22 -2
  116. package/dist/esm/session/calendar.js.map +1 -1
  117. package/dist/esm/str/index.d.ts +50 -38
  118. package/dist/esm/str/index.d.ts.map +1 -1
  119. package/dist/esm/str/index.js +103 -52
  120. package/dist/esm/str/index.js.map +1 -1
  121. package/dist/esm/str/messageformat.d.ts +2 -1
  122. package/dist/esm/str/messageformat.d.ts.map +1 -1
  123. package/dist/esm/str/messageformat.js +7 -2
  124. package/dist/esm/str/messageformat.js.map +1 -1
  125. package/dist/esm/str/numberformat.d.ts +4 -0
  126. package/dist/esm/str/numberformat.d.ts.map +1 -1
  127. package/dist/esm/str/numberformat.js +38 -4
  128. package/dist/esm/str/numberformat.js.map +1 -1
  129. package/dist/esm/ta/index.d.ts +95 -46
  130. package/dist/esm/ta/index.d.ts.map +1 -1
  131. package/dist/esm/ta/index.js +341 -414
  132. package/dist/esm/ta/index.js.map +1 -1
  133. package/dist/esm/ta/running-sum.d.ts +54 -1
  134. package/dist/esm/ta/running-sum.d.ts.map +1 -1
  135. package/dist/esm/ta/running-sum.js +166 -60
  136. package/dist/esm/ta/running-sum.js.map +1 -1
  137. package/dist/esm/ta-series.d.ts +4 -4
  138. package/dist/esm/ta-series.d.ts.map +1 -1
  139. package/dist/esm/ta-series.js +5 -4
  140. package/dist/esm/ta-series.js.map +1 -1
  141. package/dist/esm/time/datestring.d.ts +1 -0
  142. package/dist/esm/time/datestring.d.ts.map +1 -1
  143. package/dist/esm/time/datestring.js +12 -0
  144. package/dist/esm/time/datestring.js.map +1 -1
  145. package/dist/esm/time/index.d.ts.map +1 -1
  146. package/dist/esm/time/index.js +3 -1
  147. package/dist/esm/time/index.js.map +1 -1
  148. package/dist/esm/time/session.d.ts +28 -9
  149. package/dist/esm/time/session.d.ts.map +1 -1
  150. package/dist/esm/time/session.js +113 -42
  151. package/dist/esm/time/session.js.map +1 -1
  152. package/dist/esm/time/timezone.d.ts +5 -0
  153. package/dist/esm/time/timezone.d.ts.map +1 -1
  154. package/dist/esm/time/timezone.js +21 -1
  155. package/dist/esm/time/timezone.js.map +1 -1
  156. package/package.json +2 -2
  157. package/src/array/index.ts +382 -174
  158. package/src/callsite/index.ts +232 -8
  159. package/src/color/index.ts +15 -5
  160. package/src/index.ts +1 -1
  161. package/src/label/index.ts +2 -1
  162. package/src/linefill/index.ts +2 -0
  163. package/src/math/index.ts +261 -77
  164. package/src/matrix/index.ts +52 -52
  165. package/src/runtime/series.ts +22 -1
  166. package/src/script/index.ts +53 -1
  167. package/src/session/calendar.ts +22 -2
  168. package/src/str/index.ts +95 -51
  169. package/src/str/messageformat.ts +7 -2
  170. package/src/str/numberformat.ts +39 -4
  171. package/src/ta/index.ts +356 -458
  172. package/src/ta/running-sum.ts +187 -62
  173. package/src/ta-series.ts +8 -7
  174. package/src/time/datestring.ts +10 -0
  175. package/src/time/index.ts +3 -1
  176. package/src/time/session.ts +97 -47
  177. package/src/time/timezone.ts +21 -1
@@ -29,7 +29,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  var series_exports = {};
30
30
  __export(series_exports, {
31
31
  BarData: () => BarData,
32
- Series: () => Series
32
+ MAX_BARS_BACK: () => MAX_BARS_BACK,
33
+ Series: () => Series,
34
+ historyError: () => historyError
33
35
  });
34
36
  module.exports = __toCommonJS(series_exports);
35
37
  var compare = __toESM(require("../compare/index.js"), 1);
@@ -136,6 +138,10 @@ class BarData {
136
138
  return new BarData(bars);
137
139
  }
138
140
  }
141
+ const MAX_BARS_BACK = 5e3;
142
+ function historyError(bar, barsBack) {
143
+ return `Error on bar ${bar}: The script attempts to reference historical data that is too far from the current bar (${barsBack} bars back). The history-referencing length for the expression must be a value between 0 and ${MAX_BARS_BACK}.`;
144
+ }
139
145
  class Series {
140
146
  extractor;
141
147
  dataSource;
@@ -147,6 +153,11 @@ class Series {
147
153
  * @param data - Bar data (Bar[] or BarData)
148
154
  * @param extractor - Function to extract/compute value for each bar
149
155
  */
156
+ /**
157
+ * True for PineScript's built-in price variables (open, high, low, close, volume, hl2...): their history covers
158
+ * every bar, so references further than 5000 bars back are allowed (measured: close[bar_index] runs).
159
+ */
160
+ fullHistory = false;
150
161
  constructor(data, extractor) {
151
162
  this.dataSource = data instanceof BarData ? data : new BarData(data);
152
163
  this.extractor = extractor;
@@ -175,7 +186,9 @@ class Series {
175
186
  * @returns Series with extracted field values
176
187
  */
177
188
  static fromBars(bars, field) {
178
- return new Series(bars, (bar) => bar[field] ?? NaN);
189
+ const series = new Series(bars, (bar) => bar[field] ?? NaN);
190
+ series.fullHistory = true;
191
+ return series;
179
192
  }
180
193
  /**
181
194
  * Create a constant series (same value for all bars)
@@ -444,6 +457,7 @@ class Series {
444
457
  */
445
458
  offset(offset) {
446
459
  if (offset < 0) throw new RangeError(`Series.offset(${offset}): the offset cannot be negative (it would read a future bar).`);
460
+ if (offset > MAX_BARS_BACK && !this.fullHistory) throw new Error(historyError(0, Math.floor(offset)));
447
461
  return new Series(this.dataSource, (_bar, i, data) => {
448
462
  const targetIndex = i - offset;
449
463
  if (targetIndex < 0 || targetIndex >= data.length) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/runtime/series.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Simplified Series class for lazy time-series computation\n * Represents a time-series of values with lazy evaluation\n * @module runtime/series\n */\n\nimport * as compare from '../compare/index.js';\nimport type { Bar } from '../types/index.js';\n\n/**\n * Function that computes a value for each bar\n */\nexport type SeriesExtractor = (bar: Bar, index: number, data: Bar[]) => number;\n\n/**\n * BarData - Versioned wrapper around Bar[] array for cache invalidation\n * \n * This class wraps a Bar[] array and tracks a version number that increments\n * whenever the data is mutated. Series objects reference this to detect when\n * their cached values need to be recomputed.\n * \n * @example\n * ```typescript\n * const barData = new BarData(bars);\n * const close = Series.fromBars(barData, 'close');\n * const values1 = close.toArray(); // Computes and caches\n * \n * barData.push(newBar); // Increments version\n * const values2 = close.toArray(); // Detects stale cache, recomputes\n * ```\n */\nexport class BarData {\n private _bars: Bar[];\n private _version: number = 0;\n\n /**\n * Create a new BarData wrapper\n * @param bars - Initial bar data (defaults to empty array)\n */\n constructor(bars: Bar[] = []) {\n this._bars = bars;\n }\n\n /**\n * Get the current version number\n * Version increments whenever data is mutated\n */\n get version(): number {\n return this._version;\n }\n\n /**\n * Get the underlying bar array\n * Note: Direct mutations to this array will NOT increment version\n * Use the provided mutation methods instead\n */\n get bars(): Bar[] {\n return this._bars;\n }\n\n /**\n * Get the number of bars\n */\n get length(): number {\n return this._bars.length;\n }\n\n /**\n * Add a new bar to the end\n * @param bar - Bar to add\n */\n push(bar: Bar): void {\n this._bars.push(bar);\n this._version++;\n }\n\n /**\n * Remove and return the last bar\n * @returns The removed bar, or undefined if empty\n */\n pop(): Bar | undefined {\n const bar = this._bars.pop();\n if (bar !== undefined) {\n this._version++;\n }\n return bar;\n }\n\n /**\n * Replace a bar at a specific index\n * @param index - Index to update\n * @param bar - New bar data\n */\n set(index: number, bar: Bar): void {\n if (index >= 0 && index < this._bars.length) {\n this._bars[index] = bar;\n this._version++;\n }\n }\n\n /**\n * Update the last bar (useful for real-time/streaming updates)\n * @param bar - New bar data\n */\n updateLast(bar: Bar): void {\n if (this._bars.length > 0) {\n this._bars[this._bars.length - 1] = bar;\n this._version++;\n }\n }\n\n /**\n * Replace all bars with new data\n * @param bars - New bar array\n */\n setAll(bars: Bar[]): void {\n this._bars = bars;\n this._version++;\n }\n\n /**\n * Manually increment version (for advanced use cases)\n * Call this after direct mutations to the bars array\n */\n invalidate(): void {\n this._version++;\n }\n\n /**\n * Get a bar at a specific index\n * @param index - Bar index\n * @returns Bar at that index, or undefined\n */\n at(index: number): Bar | undefined {\n return this._bars[index];\n }\n\n /**\n * Create a BarData from an existing Bar array\n * @param bars - Bar array\n * @returns New BarData instance\n */\n static from(bars: Bar[]): BarData {\n return new BarData(bars);\n }\n}\n\n/**\n * Series - represents a time-series of values with lazy evaluation\n *\n * Series are lazy - they don't compute values until needed.\n * Operations on Series return new Series with composed extractors.\n *\n * Now supports automatic cache invalidation via BarData versioning\n * and memory-efficient closure chain breaking via materialize().\n *\n * @example\n * ```typescript\n * // Basic usage (backward compatible)\n * const close = Series.fromBars(bars, 'close');\n * const open = Series.fromBars(bars, 'open');\n * const range = close.sub(open); // Creates new Series, doesn't compute yet\n * const values = range.toArray(); // Now computes for all bars\n * \n * // With automatic cache invalidation\n * const barData = new BarData(bars);\n * const close = Series.fromBars(barData, 'close');\n * const values1 = close.toArray(); // Computes and caches\n * barData.push(newBar); // Version increments\n * const values2 = close.toArray(); // Detects stale cache, recomputes\n * \n * // Breaking closure chains for memory efficiency\n * const complex = a.add(b).mul(c).div(d).sub(e);\n * const materialized = complex.materialize(); // Breaks closure chain\n * ```\n */\nexport class Series {\n private extractor: SeriesExtractor;\n private dataSource: BarData;\n private cached: number[] | null = null;\n private cachedVersion: number = -1;\n\n /**\n * Create a new Series\n *\n * @param data - Bar data (Bar[] or BarData)\n * @param extractor - Function to extract/compute value for each bar\n */\n constructor(data: Bar[] | BarData, extractor: SeriesExtractor) {\n // Support both Bar[] and BarData for backward compatibility\n this.dataSource = data instanceof BarData ? data : new BarData(data);\n this.extractor = extractor;\n }\n\n /**\n * Get the underlying bar data\n * @returns Bar array\n */\n get bars(): Bar[] {\n return this.dataSource.bars;\n }\n\n /**\n * Get the underlying BarData source\n * @returns BarData instance\n */\n get barData(): BarData {\n return this.dataSource;\n }\n\n // ============================================\n // Static Factory Methods\n // ============================================\n\n /**\n * Create Series from bar data by extracting a specific field\n * @param bars - Bar data (Bar[] or BarData)\n * @param field - Field to extract ('open', 'high', 'low', 'close', 'volume')\n * @returns Series with extracted field values\n */\n static fromBars(bars: Bar[] | BarData, field: 'open' | 'high' | 'low' | 'close' | 'volume'): Series {\n return new Series(bars, (bar) => bar[field] ?? NaN);\n }\n\n /**\n * Create a constant series (same value for all bars)\n * @param bars - Bar data (Bar[] or BarData)\n * @param value - Constant value\n * @returns Series with constant value\n */\n static constant(bars: Bar[] | BarData, value: number): Series {\n return new Series(bars, () => value);\n }\n\n /**\n * Create series from array of values\n * @param bars - Bar data (Bar[] or BarData) for time alignment\n * @param values - Array of values\n * @returns Series\n * @throws When read on other bars with a different length than `values` (e.g. a series computed on the\n * chart bars and read inside a `request.security` expression, which runs on the higher-timeframe bars)\n */\n static fromArray(bars: Bar[] | BarData, values: number[]): Series {\n const origin = bars instanceof BarData ? bars.bars : bars;\n return new Series(bars, (_bar, i, data) => {\n if (data !== origin && data.length !== values.length) {\n throw new Error(\n `Series values were computed on other bars (${values.length} values, ${data.length} bars). ` +\n 'Inside request.security(), compute the series inside the expression, e.g. () => ta.ema(close, 10).'\n );\n }\n return values[i] ?? NaN;\n });\n }\n\n // ============================================\n // Arithmetic Operations\n // ============================================\n\n /**\n * Add two series or a series and a number\n * @param other - Series or number to add\n * @returns New Series representing the sum\n */\n add(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a + b;\n });\n }\n\n /**\n * Subtract two series or subtract a number from a series\n * @param other - Series or number to subtract\n * @returns New Series representing the difference\n */\n sub(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a - b;\n });\n }\n\n /**\n * Multiply two series or a series by a number\n * @param other - Series or number to multiply\n * @returns New Series representing the product\n */\n mul(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a * b;\n });\n }\n\n /**\n * Raise the series to a power (PineScript math.pow on a series)\n * @param exponent - Series or number exponent\n * @returns New Series representing base ** exponent\n */\n pow(exponent: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof exponent === 'number' ? exponent : exponent.extractor(bar, i, data);\n return Math.pow(a, b);\n });\n }\n\n /**\n * Divide two series or a series by a number\n * @param other - Series or number to divide by\n * @returns New Series representing the quotient\n */\n div(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a / b; // PineScript: x / 0 is +/-Infinity (na() is true for it), 0 / 0 is na\n });\n }\n\n /**\n * Modulo operation\n * @param other - Series or number for modulo\n * @returns New Series representing the remainder\n */\n mod(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return b !== 0 ? a % b : NaN;\n });\n }\n\n /**\n * Negation\n * @returns New Series with negated values\n */\n neg(): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n return -this.extractor(bar, i, data);\n });\n }\n\n // ============================================\n // Comparison Operations (PineScript operators: tolerance 1e-10, false with na; see src/compare)\n // ============================================\n\n /**\n * Greater than comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n gt(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.gt(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Greater than or equal comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n gte(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.ge(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Less than comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n lt(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.lt(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Less than or equal comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n lte(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.le(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Equality comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n eq(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.eq(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Not equal comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n neq(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.ne(a, b) ? 1 : 0;\n });\n }\n\n // ============================================\n // Logical Operations (for boolean series)\n // ============================================\n\n /**\n * Logical AND\n * @param other - Series or number (truthy/falsy)\n * @returns New Series with 1 where both true, 0 otherwise\n */\n and(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a && b ? 1 : 0;\n });\n }\n\n /**\n * Logical OR\n * @param other - Series or number (truthy/falsy)\n * @returns New Series with 1 where either true, 0 otherwise\n */\n or(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a || b ? 1 : 0;\n });\n }\n\n /**\n * Logical NOT\n * @returns New Series with inverted boolean values\n */\n not(): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n return !a ? 1 : 0;\n });\n }\n\n // ============================================\n // Conditional Selection\n // ============================================\n\n /**\n * Bar-by-bar conditional selection (ternary operator for Series)\n * Uses this Series as the condition (truthy = nonzero, falsy = zero/NaN)\n *\n * @param trueValue - Value or Series to use when condition is truthy\n * @param falseValue - Value or Series to use when condition is falsy\n * @returns New Series with bar-by-bar selected values\n *\n * @example\n * ```typescript\n * // PineScript: result = condition ? trueVal : falseVal\n * const result = condition.iff(trueVal, falseVal);\n *\n * // Example: RSI formula uses ternary for edge cases\n * // rsi = down == 0 ? 100 : up == 0 ? 0 : formula\n * const rsi = down.eq(0).iff(100, up.eq(0).iff(0, formula));\n * ```\n */\n iff(trueValue: Series | number, falseValue: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const condition = this.extractor(bar, i, data);\n // Truthy: nonzero and not NaN\n const isTruthy = condition !== 0 && !Number.isNaN(condition);\n\n if (isTruthy) {\n return typeof trueValue === 'number' ? trueValue : trueValue.extractor(bar, i, data);\n } else {\n return typeof falseValue === 'number' ? falseValue : falseValue.extractor(bar, i, data);\n }\n });\n }\n\n // ============================================\n // Offset/History\n // ============================================\n\n /**\n * Access previous bars (like close[1] in PineScript)\n * @param offset - Number of bars back (0 or more)\n * @returns New Series with offset values\n * @throws RangeError when `offset` is negative\n */\n offset(offset: number): Series {\n if (offset < 0) throw new RangeError(`Series.offset(${offset}): the offset cannot be negative (it would read a future bar).`);\n return new Series(this.dataSource, (_bar, i, data) => {\n const targetIndex = i - offset;\n if (targetIndex < 0 || targetIndex >= data.length) {\n return NaN;\n }\n return this.extractor(data[targetIndex]!, targetIndex, data);\n });\n }\n\n // ============================================\n // Computation & Access\n // ============================================\n\n /**\n * Compute all values for the series\n * \n * Now includes automatic cache invalidation:\n * - Checks if dataSource version has changed since cache was computed\n * - Recomputes if version mismatch detected\n * - Stores version when cache is created\n * \n * @returns Array of computed values\n */\n toArray(): number[] {\n // Check if cache is valid by comparing versions\n if (this.cached !== null && this.cachedVersion === this.dataSource.version) {\n return this.cached;\n }\n\n // Recompute and update cache\n const bars = this.dataSource.bars;\n this.cached = bars.map((bar, i) => this.extractor(bar, i, bars));\n this.cachedVersion = this.dataSource.version;\n return this.cached;\n }\n\n /**\n * Materialize this Series by eagerly computing values and breaking closure chain\n * \n * This method addresses the closure chain memory leak issue:\n * - Computes all values immediately\n * - Creates a new Series that stores values directly\n * - Breaks references to parent Series objects\n * - Useful for complex expressions to free intermediate Series memory\n * \n * @example\n * ```typescript\n * // Without materialize: keeps a, b, c, d in memory via closures\n * const result = a.add(b).mul(c).div(d).sub(e);\n * \n * // With materialize: breaks chain, frees a, b, c memory\n * const result = a.add(b).mul(c).materialize().div(d).sub(e);\n * ```\n * \n * @returns New Series with computed values and no closure dependencies\n */\n materialize(): Series {\n const values = this.toArray();\n // Create a copy of values to ensure no shared references\n const valuesCopy = [...values];\n return Series.fromArray(this.dataSource, valuesCopy);\n }\n\n /**\n * Invalidate cache (when data changes)\n * \n * Note: With BarData versioning, manual invalidation is rarely needed.\n * The cache is automatically invalidated when the underlying BarData changes.\n * This method is kept for backward compatibility and advanced use cases.\n * \n * @internal\n */\n _invalidate(): void {\n this.cached = null;\n this.cachedVersion = -1;\n }\n\n /**\n * Compute all values (alias for toArray)\n * @returns Array of computed values\n * @internal\n */\n _compute(): number[] {\n return this.toArray();\n }\n\n /**\n * Get value at specific index\n * @param index - Bar index\n * @returns Value at that index\n */\n get(index: number): number {\n const values = this.toArray();\n return values[index] ?? NaN;\n }\n\n /**\n * Get the last value (most recent bar)\n * @returns Most recent value\n */\n last(): number {\n const values = this.toArray();\n return values[values.length - 1] ?? NaN;\n }\n\n /**\n * Get number of values\n * @returns Length of series\n */\n length(): number {\n return this.dataSource.length;\n }\n\n /**\n * Convert series to time-value pairs for charting\n * @returns Array of { time, value } objects\n */\n toTimeValuePairs(): Array<{ time: any; value: number }> {\n const values = this.toArray();\n const bars = this.dataSource.bars;\n return bars.map((bar, i) => ({\n time: bar.time,\n value: values[i]!\n })).filter(point => !Number.isNaN(point.value));\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * @fileoverview Simplified Series class for lazy time-series computation\n * Represents a time-series of values with lazy evaluation\n * @module runtime/series\n */\n\nimport * as compare from '../compare/index.js';\nimport type { Bar } from '../types/index.js';\n\n/**\n * Function that computes a value for each bar\n */\nexport type SeriesExtractor = (bar: Bar, index: number, data: Bar[]) => number;\n\n/**\n * BarData - Versioned wrapper around Bar[] array for cache invalidation\n * \n * This class wraps a Bar[] array and tracks a version number that increments\n * whenever the data is mutated. Series objects reference this to detect when\n * their cached values need to be recomputed.\n * \n * @example\n * ```typescript\n * const barData = new BarData(bars);\n * const close = Series.fromBars(barData, 'close');\n * const values1 = close.toArray(); // Computes and caches\n * \n * barData.push(newBar); // Increments version\n * const values2 = close.toArray(); // Detects stale cache, recomputes\n * ```\n */\nexport class BarData {\n private _bars: Bar[];\n private _version: number = 0;\n\n /**\n * Create a new BarData wrapper\n * @param bars - Initial bar data (defaults to empty array)\n */\n constructor(bars: Bar[] = []) {\n this._bars = bars;\n }\n\n /**\n * Get the current version number\n * Version increments whenever data is mutated\n */\n get version(): number {\n return this._version;\n }\n\n /**\n * Get the underlying bar array\n * Note: Direct mutations to this array will NOT increment version\n * Use the provided mutation methods instead\n */\n get bars(): Bar[] {\n return this._bars;\n }\n\n /**\n * Get the number of bars\n */\n get length(): number {\n return this._bars.length;\n }\n\n /**\n * Add a new bar to the end\n * @param bar - Bar to add\n */\n push(bar: Bar): void {\n this._bars.push(bar);\n this._version++;\n }\n\n /**\n * Remove and return the last bar\n * @returns The removed bar, or undefined if empty\n */\n pop(): Bar | undefined {\n const bar = this._bars.pop();\n if (bar !== undefined) {\n this._version++;\n }\n return bar;\n }\n\n /**\n * Replace a bar at a specific index\n * @param index - Index to update\n * @param bar - New bar data\n */\n set(index: number, bar: Bar): void {\n if (index >= 0 && index < this._bars.length) {\n this._bars[index] = bar;\n this._version++;\n }\n }\n\n /**\n * Update the last bar (useful for real-time/streaming updates)\n * @param bar - New bar data\n */\n updateLast(bar: Bar): void {\n if (this._bars.length > 0) {\n this._bars[this._bars.length - 1] = bar;\n this._version++;\n }\n }\n\n /**\n * Replace all bars with new data\n * @param bars - New bar array\n */\n setAll(bars: Bar[]): void {\n this._bars = bars;\n this._version++;\n }\n\n /**\n * Manually increment version (for advanced use cases)\n * Call this after direct mutations to the bars array\n */\n invalidate(): void {\n this._version++;\n }\n\n /**\n * Get a bar at a specific index\n * @param index - Bar index\n * @returns Bar at that index, or undefined\n */\n at(index: number): Bar | undefined {\n return this._bars[index];\n }\n\n /**\n * Create a BarData from an existing Bar array\n * @param bars - Bar array\n * @returns New BarData instance\n */\n static from(bars: Bar[]): BarData {\n return new BarData(bars);\n }\n}\n\n/**\n * Series - represents a time-series of values with lazy evaluation\n *\n * Series are lazy - they don't compute values until needed.\n * Operations on Series return new Series with composed extractors.\n *\n * Now supports automatic cache invalidation via BarData versioning\n * and memory-efficient closure chain breaking via materialize().\n *\n * @example\n * ```typescript\n * // Basic usage (backward compatible)\n * const close = Series.fromBars(bars, 'close');\n * const open = Series.fromBars(bars, 'open');\n * const range = close.sub(open); // Creates new Series, doesn't compute yet\n * const values = range.toArray(); // Now computes for all bars\n * \n * // With automatic cache invalidation\n * const barData = new BarData(bars);\n * const close = Series.fromBars(barData, 'close');\n * const values1 = close.toArray(); // Computes and caches\n * barData.push(newBar); // Version increments\n * const values2 = close.toArray(); // Detects stale cache, recomputes\n * \n * // Breaking closure chains for memory efficiency\n * const complex = a.add(b).mul(c).div(d).sub(e);\n * const materialized = complex.materialize(); // Breaks closure chain\n * ```\n */\n/** Largest history reference of a script series (PineScript max_bars_back limit). */\nexport const MAX_BARS_BACK = 5000;\n\n/** PineScript's runtime error RE10008 text. */\nexport function historyError(bar: number, barsBack: number): string {\n return (\n `Error on bar ${bar}: The script attempts to reference historical data that is too far from the current bar ` +\n `(${barsBack} bars back). The history-referencing length for the expression must be a value between 0 and ${MAX_BARS_BACK}.`\n );\n}\n\nexport class Series {\n private extractor: SeriesExtractor;\n private dataSource: BarData;\n private cached: number[] | null = null;\n private cachedVersion: number = -1;\n\n /**\n * Create a new Series\n *\n * @param data - Bar data (Bar[] or BarData)\n * @param extractor - Function to extract/compute value for each bar\n */\n /**\n * True for PineScript's built-in price variables (open, high, low, close, volume, hl2...): their history covers\n * every bar, so references further than 5000 bars back are allowed (measured: close[bar_index] runs).\n */\n fullHistory = false;\n\n constructor(data: Bar[] | BarData, extractor: SeriesExtractor) {\n // Support both Bar[] and BarData for backward compatibility\n this.dataSource = data instanceof BarData ? data : new BarData(data);\n this.extractor = extractor;\n }\n\n /**\n * Get the underlying bar data\n * @returns Bar array\n */\n get bars(): Bar[] {\n return this.dataSource.bars;\n }\n\n /**\n * Get the underlying BarData source\n * @returns BarData instance\n */\n get barData(): BarData {\n return this.dataSource;\n }\n\n // ============================================\n // Static Factory Methods\n // ============================================\n\n /**\n * Create Series from bar data by extracting a specific field\n * @param bars - Bar data (Bar[] or BarData)\n * @param field - Field to extract ('open', 'high', 'low', 'close', 'volume')\n * @returns Series with extracted field values\n */\n static fromBars(bars: Bar[] | BarData, field: 'open' | 'high' | 'low' | 'close' | 'volume'): Series {\n const series = new Series(bars, (bar) => bar[field] ?? NaN);\n series.fullHistory = true;\n return series;\n }\n\n /**\n * Create a constant series (same value for all bars)\n * @param bars - Bar data (Bar[] or BarData)\n * @param value - Constant value\n * @returns Series with constant value\n */\n static constant(bars: Bar[] | BarData, value: number): Series {\n return new Series(bars, () => value);\n }\n\n /**\n * Create series from array of values\n * @param bars - Bar data (Bar[] or BarData) for time alignment\n * @param values - Array of values\n * @returns Series\n * @throws When read on other bars with a different length than `values` (e.g. a series computed on the\n * chart bars and read inside a `request.security` expression, which runs on the higher-timeframe bars)\n */\n static fromArray(bars: Bar[] | BarData, values: number[]): Series {\n const origin = bars instanceof BarData ? bars.bars : bars;\n return new Series(bars, (_bar, i, data) => {\n if (data !== origin && data.length !== values.length) {\n throw new Error(\n `Series values were computed on other bars (${values.length} values, ${data.length} bars). ` +\n 'Inside request.security(), compute the series inside the expression, e.g. () => ta.ema(close, 10).'\n );\n }\n return values[i] ?? NaN;\n });\n }\n\n // ============================================\n // Arithmetic Operations\n // ============================================\n\n /**\n * Add two series or a series and a number\n * @param other - Series or number to add\n * @returns New Series representing the sum\n */\n add(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a + b;\n });\n }\n\n /**\n * Subtract two series or subtract a number from a series\n * @param other - Series or number to subtract\n * @returns New Series representing the difference\n */\n sub(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a - b;\n });\n }\n\n /**\n * Multiply two series or a series by a number\n * @param other - Series or number to multiply\n * @returns New Series representing the product\n */\n mul(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a * b;\n });\n }\n\n /**\n * Raise the series to a power (PineScript math.pow on a series)\n * @param exponent - Series or number exponent\n * @returns New Series representing base ** exponent\n */\n pow(exponent: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof exponent === 'number' ? exponent : exponent.extractor(bar, i, data);\n return Math.pow(a, b);\n });\n }\n\n /**\n * Divide two series or a series by a number\n * @param other - Series or number to divide by\n * @returns New Series representing the quotient\n */\n div(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a / b; // PineScript: x / 0 is +/-Infinity (na() is true for it), 0 / 0 is na\n });\n }\n\n /**\n * Modulo operation\n * @param other - Series or number for modulo\n * @returns New Series representing the remainder\n */\n mod(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return b !== 0 ? a % b : NaN;\n });\n }\n\n /**\n * Negation\n * @returns New Series with negated values\n */\n neg(): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n return -this.extractor(bar, i, data);\n });\n }\n\n // ============================================\n // Comparison Operations (PineScript operators: tolerance 1e-10, false with na; see src/compare)\n // ============================================\n\n /**\n * Greater than comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n gt(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.gt(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Greater than or equal comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n gte(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.ge(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Less than comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n lt(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.lt(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Less than or equal comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n lte(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.le(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Equality comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n eq(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.eq(a, b) ? 1 : 0;\n });\n }\n\n /**\n * Not equal comparison\n * @param other - Series or number to compare\n * @returns New Series with 1 where true, 0 where false\n */\n neq(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return compare.ne(a, b) ? 1 : 0;\n });\n }\n\n // ============================================\n // Logical Operations (for boolean series)\n // ============================================\n\n /**\n * Logical AND\n * @param other - Series or number (truthy/falsy)\n * @returns New Series with 1 where both true, 0 otherwise\n */\n and(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a && b ? 1 : 0;\n });\n }\n\n /**\n * Logical OR\n * @param other - Series or number (truthy/falsy)\n * @returns New Series with 1 where either true, 0 otherwise\n */\n or(other: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n const b = typeof other === 'number' ? other : other.extractor(bar, i, data);\n return a || b ? 1 : 0;\n });\n }\n\n /**\n * Logical NOT\n * @returns New Series with inverted boolean values\n */\n not(): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const a = this.extractor(bar, i, data);\n return !a ? 1 : 0;\n });\n }\n\n // ============================================\n // Conditional Selection\n // ============================================\n\n /**\n * Bar-by-bar conditional selection (ternary operator for Series)\n * Uses this Series as the condition (truthy = nonzero, falsy = zero/NaN)\n *\n * @param trueValue - Value or Series to use when condition is truthy\n * @param falseValue - Value or Series to use when condition is falsy\n * @returns New Series with bar-by-bar selected values\n *\n * @example\n * ```typescript\n * // PineScript: result = condition ? trueVal : falseVal\n * const result = condition.iff(trueVal, falseVal);\n *\n * // Example: RSI formula uses ternary for edge cases\n * // rsi = down == 0 ? 100 : up == 0 ? 0 : formula\n * const rsi = down.eq(0).iff(100, up.eq(0).iff(0, formula));\n * ```\n */\n iff(trueValue: Series | number, falseValue: Series | number): Series {\n return new Series(this.dataSource, (bar, i, data) => {\n const condition = this.extractor(bar, i, data);\n // Truthy: nonzero and not NaN\n const isTruthy = condition !== 0 && !Number.isNaN(condition);\n\n if (isTruthy) {\n return typeof trueValue === 'number' ? trueValue : trueValue.extractor(bar, i, data);\n } else {\n return typeof falseValue === 'number' ? falseValue : falseValue.extractor(bar, i, data);\n }\n });\n }\n\n // ============================================\n // Offset/History\n // ============================================\n\n /**\n * Access previous bars (like close[1] in PineScript)\n * @param offset - Number of bars back (0 or more)\n * @returns New Series with offset values\n * @throws RangeError when `offset` is negative\n */\n offset(offset: number): Series {\n if (offset < 0) throw new RangeError(`Series.offset(${offset}): the offset cannot be negative (it would read a future bar).`);\n // PineScript runtime error RE10008: a script series keeps at most 5000 bars of history\n if (offset > MAX_BARS_BACK && !this.fullHistory) throw new Error(historyError(0, Math.floor(offset)));\n return new Series(this.dataSource, (_bar, i, data) => {\n const targetIndex = i - offset;\n if (targetIndex < 0 || targetIndex >= data.length) {\n return NaN;\n }\n return this.extractor(data[targetIndex]!, targetIndex, data);\n });\n }\n\n // ============================================\n // Computation & Access\n // ============================================\n\n /**\n * Compute all values for the series\n * \n * Now includes automatic cache invalidation:\n * - Checks if dataSource version has changed since cache was computed\n * - Recomputes if version mismatch detected\n * - Stores version when cache is created\n * \n * @returns Array of computed values\n */\n toArray(): number[] {\n // Check if cache is valid by comparing versions\n if (this.cached !== null && this.cachedVersion === this.dataSource.version) {\n return this.cached;\n }\n\n // Recompute and update cache\n const bars = this.dataSource.bars;\n this.cached = bars.map((bar, i) => this.extractor(bar, i, bars));\n this.cachedVersion = this.dataSource.version;\n return this.cached;\n }\n\n /**\n * Materialize this Series by eagerly computing values and breaking closure chain\n * \n * This method addresses the closure chain memory leak issue:\n * - Computes all values immediately\n * - Creates a new Series that stores values directly\n * - Breaks references to parent Series objects\n * - Useful for complex expressions to free intermediate Series memory\n * \n * @example\n * ```typescript\n * // Without materialize: keeps a, b, c, d in memory via closures\n * const result = a.add(b).mul(c).div(d).sub(e);\n * \n * // With materialize: breaks chain, frees a, b, c memory\n * const result = a.add(b).mul(c).materialize().div(d).sub(e);\n * ```\n * \n * @returns New Series with computed values and no closure dependencies\n */\n materialize(): Series {\n const values = this.toArray();\n // Create a copy of values to ensure no shared references\n const valuesCopy = [...values];\n return Series.fromArray(this.dataSource, valuesCopy);\n }\n\n /**\n * Invalidate cache (when data changes)\n * \n * Note: With BarData versioning, manual invalidation is rarely needed.\n * The cache is automatically invalidated when the underlying BarData changes.\n * This method is kept for backward compatibility and advanced use cases.\n * \n * @internal\n */\n _invalidate(): void {\n this.cached = null;\n this.cachedVersion = -1;\n }\n\n /**\n * Compute all values (alias for toArray)\n * @returns Array of computed values\n * @internal\n */\n _compute(): number[] {\n return this.toArray();\n }\n\n /**\n * Get value at specific index\n * @param index - Bar index\n * @returns Value at that index\n */\n get(index: number): number {\n const values = this.toArray();\n return values[index] ?? NaN;\n }\n\n /**\n * Get the last value (most recent bar)\n * @returns Most recent value\n */\n last(): number {\n const values = this.toArray();\n return values[values.length - 1] ?? NaN;\n }\n\n /**\n * Get number of values\n * @returns Length of series\n */\n length(): number {\n return this.dataSource.length;\n }\n\n /**\n * Convert series to time-value pairs for charting\n * @returns Array of { time, value } objects\n */\n toTimeValuePairs(): Array<{ time: any; value: number }> {\n const values = this.toArray();\n const bars = this.dataSource.bars;\n return bars.map((bar, i) => ({\n time: bar.time,\n value: values[i]!\n })).filter(point => !Number.isNaN(point.value));\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -47,6 +47,7 @@ import * as polylineCore from '../polyline/index.js';
47
47
  import * as chartPointCore from '../chartpoint/index.js';
48
48
  import * as mathCore from '../math/index.js';
49
49
  import * as timeframeCore from '../timeframe/index.js';
50
+ import * as strCore from '../str/index.js';
50
51
  import { type SessionSpec } from '../session/calendar.js';
51
52
  import type { ChartPoint } from '../types/index.js';
52
53
  import { STRATEGY_CONSTANTS, type StrategyCloseAllOptions, type StrategyCloseOptions, type StrategyDirection, type StrategyEngine, type StrategyEntryOptions, type StrategyExitOptions, type StrategyNumberVariable, type StrategyOptions, type StrategyProperties, type StrategyRiskDirection, type StrategyRiskValueType, type StrategyTextVariable, type StrategyTrade } from '../strategy/index.js';
@@ -212,14 +213,14 @@ export declare const ta: {
212
213
  iii: Series;
213
214
  wad: Series;
214
215
  wvad: Series;
215
- sma(source: Series, length: number): Series;
216
+ sma(source: Series, length: number | Series): Series;
216
217
  ema(source: Series, length: number): Series;
217
218
  wma(source: Series, length: number): Series;
218
219
  rma(source: Series, length: number): Series;
219
220
  rsi(source: Series, length: number): Series;
220
221
  macd(source: Series, fastLength: number, slowLength: number, signalLength: number): [Series, Series, Series];
221
222
  bb(source: Series, length: number, mult: number): [Series, Series, Series];
222
- stdev(source: Series, length: number, biased?: boolean): Series;
223
+ stdev(source: Series, length: number | Series, biased?: boolean): Series;
223
224
  stoch(source: Series, high: Series, low: Series, length: number): Series;
224
225
  crossover(source1: Series, source2: Series | number): Series;
225
226
  crossunder(source1: Series, source2: Series | number): Series;
@@ -237,7 +238,7 @@ export declare const ta: {
237
238
  zigzag(bars: Bar[], deviation?: number, depth?: number, backstep?: number): [Series, Series, Series];
238
239
  cci(source: Series, length: number): Series;
239
240
  dev(source: Series, length: number): Series;
240
- variance(source: Series, length: number, biased?: boolean): Series;
241
+ variance(source: Series, length: number | Series, biased?: boolean): Series;
241
242
  median(source: Series, length: number): Series;
242
243
  swma(source: Series): Series;
243
244
  correlation(source1: Series, source2: Series, length: number): Series;
@@ -343,11 +344,11 @@ export declare const color: {
343
344
  when: typeof colorWhen;
344
345
  rgb(red: import("../index.js").simple_int, green: import("../index.js").simple_int, blue: import("../index.js").simple_int, transp?: import("../index.js").simple_float): string;
345
346
  from_hex(hex: string, transp?: import("../index.js").simple_float): string;
346
- new_color(baseColor: import("../types/index.js").color, transp: import("../index.js").simple_float): string;
347
+ new_color(baseColor: import("../types/index.js").color | null | undefined, transp: import("../index.js").simple_float): string;
347
348
  r(clr: import("../types/index.js").color): import("../index.js").int;
348
349
  g(clr: import("../types/index.js").color): import("../index.js").int;
349
350
  b(clr: import("../types/index.js").color): import("../index.js").int;
350
- t(clr: import("../types/index.js").color): import("../index.js").float;
351
+ t(clr: import("../types/index.js").color | null | undefined): import("../index.js").float;
351
352
  from_gradient(value: import("../index.js").float, bottom_value: import("../index.js").float, top_value: import("../index.js").float, bottom_color: import("../types/index.js").color, top_color: import("../types/index.js").color): string;
352
353
  aqua: "#00BCD4";
353
354
  black: "#363A45";
@@ -512,26 +513,6 @@ export interface BarContext {
512
513
  /** This block's own previous output (PineScript self-reference, offset >= 1). */
513
514
  prev(offset?: number): number;
514
515
  }
515
- /**
516
- * Runs the callback once per bar, in order, and collects the returned values
517
- * into a Series. This is the escape hatch for PineScript logic the vectorized
518
- * model cannot express:
519
- *
520
- * - `var x = 0` / `x := ...` → a plain `let` variable captured by the closure
521
- * - per-bar `if` / `for` / `while` → native JS statements
522
- * - `src[k]` → `c.get(src, k)`; self-reference → `c.prev()`
523
- *
524
- * Returning a boolean collects 1/0; returning nothing collects na (NaN).
525
- *
526
- * ```typescript
527
- * let dir = 0; // var dir = 0
528
- * const trend = eachBar((c) => {
529
- * if (c.close > c.get(close, 1)) dir = 1; // dir := 1
530
- * else if (c.close < c.get(close, 1)) dir = -1;
531
- * return dir;
532
- * });
533
- * ```
534
- */
535
516
  export declare function eachBar(fn: (c: BarContext) => number | boolean | void): Series;
536
517
  /**
537
518
  * Runs the strategy logic once per bar, in order, like {@link eachBar}. On each bar the engine first
@@ -695,10 +676,10 @@ export declare function timestamp(year: number, month: number, day: number, hour
695
676
  export declare function inSession(time: number, session: string, timezone?: string): boolean;
696
677
  /** PineScript `str.*`; `format_time` and the dates of `format` use the exchange time zone by default. */
697
678
  export declare const str: {
679
+ tostring: typeof strCore.tostring;
698
680
  format_time(time: number, format?: string, timezone?: string): string;
699
681
  format(pattern: string, ...args: unknown[]): string;
700
682
  length(str: import("../index.js").simple_string): import("../index.js").int;
701
- tostring(value: any, format?: import("../index.js").simple_string): string;
702
683
  tonumber(str: import("../index.js").simple_string): import("../index.js").float | null;
703
684
  substring(str: import("../index.js").simple_string, begin: import("../index.js").simple_int, end?: import("../index.js").simple_int): string;
704
685
  upper(str: import("../index.js").simple_string): string;
@@ -715,7 +696,7 @@ export declare const str: {
715
696
  trim(str: import("../index.js").simple_string): string;
716
697
  trimLeft(str: import("../index.js").simple_string): string;
717
698
  trimRight(str: import("../index.js").simple_string): string;
718
- match(source: import("../index.js").simple_string, regex: import("../index.js").simple_string): import("../index.js").bool;
699
+ match(source: import("../index.js").simple_string, regex: import("../index.js").simple_string): import("../index.js").simple_string | null;
719
700
  repeat(source: import("../index.js").simple_string, count: import("../index.js").simple_int, separator?: import("../index.js").simple_string): string | null;
720
701
  };
721
702
  declare function timeFunction(tf?: string, session?: string, timezone?: string): Series;
@@ -945,11 +926,12 @@ export declare const math: {
945
926
  floor(value: import("../index.js").float): import("../index.js").int;
946
927
  round(value: Series, precision?: import("../index.js").int): Series;
947
928
  round(value: import("../index.js").float, precision?: import("../index.js").int): import("../index.js").float;
929
+ constant(value: import("../index.js").float): import("../index.js").float;
948
930
  max(...values: (import("../index.js").float | Series)[]): import("../index.js").float | Series;
949
931
  min(...values: (import("../index.js").float | Series)[]): import("../index.js").float | Series;
950
932
  avg(...values: (import("../index.js").float | Series)[]): import("../index.js").float | Series;
951
- sum(source: Series, length: import("../index.js").simple_int): Series;
952
- sum(source: import("../index.js").series_float, length: import("../index.js").simple_int): import("../index.js").series_float;
933
+ sum(source: Series, length: import("../index.js").simple_int | ArrayLike<number> | Series): Series;
934
+ sum(source: import("../index.js").series_float, length: import("../index.js").simple_int | ArrayLike<number> | Series): import("../index.js").series_float;
953
935
  sqrt(value: Series): Series;
954
936
  sqrt(value: import("../index.js").float): import("../index.js").float;
955
937
  pow(base: Series, exponent: import("../index.js").float): Series;
@@ -978,13 +960,15 @@ export declare const math: {
978
960
  toradians(degrees: import("../index.js").float): import("../index.js").float;
979
961
  todegrees(radians: Series): Series;
980
962
  todegrees(radians: import("../index.js").float): import("../index.js").float;
981
- random(min?: import("../index.js").float, max?: import("../index.js").float, _seed?: import("../index.js").int): import("../index.js").float;
963
+ seededRandom(seed: import("../index.js").int): (min?: import("../index.js").float, max?: import("../index.js").float) => import("../index.js").float;
964
+ resetRandom(): void;
965
+ random(min?: import("../index.js").float, max?: import("../index.js").float, seed?: import("../index.js").int): import("../index.js").float;
982
966
  sign(value: Series): Series;
983
967
  sign(value: import("../index.js").float): import("../index.js").int;
984
968
  pi: number;
985
969
  e: number;
986
970
  phi: 1.618033988749895;
987
- rphi: 0.618033988749895;
971
+ rphi: 0.6180339887498948;
988
972
  };
989
973
  export * as compare from '../compare/index.js';
990
974
  export type { Bar, IndicatorResult, TimeValue, InputConfig, PlotConfig, HLineConfig, FillConfig, ShapeConfig, ArrowConfig, BarColorConfig, MarkerData, ArrowData, BarColorData, MarkerLocation, MarkerSize, ShapeStyle, };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/script/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/script/index.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,7 @@ var import_calendar = require("../session/calendar.js");
114
114
  var import_bars = require("../session/bars.js");
115
115
  var import_resample = require("../security/resample.js");
116
116
  var import_strategy = require("../strategy/index.js");
117
+ var import_session = require("../time/session.js");
117
118
  var import_strategy2 = require("../strategy/index.js");
118
119
  var compare = __toESM(require("../compare/index.js"), 1);
119
120
  const ctxBars = new import_series.BarData([]);
@@ -164,6 +165,7 @@ function executeScript(body, barsInput, inputs = {}, chart2 = {}, options = {})
164
165
  scriptOptions = options;
165
166
  ctx = freshCollector(inputs);
166
167
  (0, import_registry.resetDrawings)();
168
+ mathCore.resetRandom();
167
169
  try {
168
170
  body();
169
171
  const c = ctx;
@@ -299,6 +301,7 @@ const hl2 = new import_series.Series(ctxBars, (b) => (b.high + b.low) / 2);
299
301
  const hlc3 = new import_series.Series(ctxBars, (b) => (b.high + b.low + b.close) / 3);
300
302
  const ohlc4 = new import_series.Series(ctxBars, (b) => (b.open + b.high + b.low + b.close) / 4);
301
303
  const hlcc4 = new import_series.Series(ctxBars, (b) => (b.high + b.low + b.close + b.close) / 4);
304
+ for (const s of [hl2, hlc3, ohlc4, hlcc4]) s.fullHistory = true;
302
305
  const SOURCES = { open, high, low, close, volume, hl2, hlc3, ohlc4, hlcc4 };
303
306
  function sourceSeries(name) {
304
307
  return SOURCES[name] ?? close;
@@ -583,11 +586,15 @@ function bgcolor(colors, options = {}) {
583
586
  function barcolor(colors, options = {}) {
584
587
  emitBarColors("barcolor", colors, options);
585
588
  }
589
+ const HISTORY_START = 242;
590
+ const HISTORY_GROWTH = 1.618034;
586
591
  function eachBar(fn) {
587
592
  collector();
588
593
  const b = bars();
589
594
  const out = new Array(b.length).fill(NaN);
590
595
  const cache = /* @__PURE__ */ new Map();
596
+ const buffers = /* @__PURE__ */ new Map();
597
+ let pendingError = null;
591
598
  let idx = 0;
592
599
  const ctx2 = {
593
600
  get i() {
@@ -614,6 +621,13 @@ function eachBar(fn) {
614
621
  },
615
622
  get(src, offset = 0) {
616
623
  if (offset < 0) throw new RangeError(`c.get(): the offset cannot be negative (${offset} would read a future bar).`);
624
+ if (!src.fullHistory && offset > 0) {
625
+ const k = Math.floor(offset);
626
+ if (k > import_series.MAX_BARS_BACK) throw new Error((0, import_series.historyError)(idx, k));
627
+ let buffer = buffers.get(src);
628
+ if (!buffer) buffers.set(src, buffer = { size: HISTORY_START, previous: 0, barMax: 0 });
629
+ if (k > buffer.barMax) buffer.barMax = k;
630
+ }
617
631
  let vals = cache.get(src);
618
632
  if (!vals) {
619
633
  vals = src.toArray();
@@ -629,9 +643,20 @@ function eachBar(fn) {
629
643
  };
630
644
  try {
631
645
  for (idx = 0; idx < b.length; idx++) {
646
+ if (pendingError && pendingError.bar === idx) throw new Error((0, import_series.historyError)(idx, pendingError.barsBack));
632
647
  currentBar = idx;
633
648
  const r = fn(ctx2);
634
649
  out[idx] = typeof r === "number" ? r : typeof r === "boolean" ? r ? 1 : 0 : NaN;
650
+ for (const buffer of buffers.values()) {
651
+ const k = buffer.barMax;
652
+ if (k > buffer.size) {
653
+ const next = k - buffer.previous > 1 ? k : Math.round(buffer.size * HISTORY_GROWTH);
654
+ if (next > import_series.MAX_BARS_BACK && !pendingError) pendingError = { bar: idx + 1, barsBack: next };
655
+ buffer.size = next;
656
+ }
657
+ buffer.previous = k;
658
+ buffer.barMax = 0;
659
+ }
635
660
  }
636
661
  } finally {
637
662
  currentBar = -1;
@@ -900,6 +925,8 @@ function inSession(time2, session2, timezone) {
900
925
  }
901
926
  const str = {
902
927
  ...strCore,
928
+ // format.mintick rounds to the chart symbol's tick (syminfo.mintick)
929
+ tostring: ((value, format, mintick) => strCore.tostring(value, format, format === "mintick" ? mintick ?? syminfo.mintick : mintick)),
903
930
  format_time(time2, format = "yyyy-MM-dd'T'HH:mm:ssZ", timezone) {
904
931
  return strCore.format_time(time2, format, timezone ?? exchangeTimezone());
905
932
  },
@@ -933,6 +960,11 @@ function calendarFor(session2, timezone) {
933
960
  const { bars: bars2 } = sessionBars();
934
961
  if (!session2 && !timezone) return { bars: bars2, test: false };
935
962
  const tz = timezone ?? exchangeTimezone();
963
+ if (session2 !== void 0 && (0, import_session.parsePineSession)(session2) === null) {
964
+ const name = session2.trim();
965
+ const symbol = name === "regular" && chartCtx.regularSession ? chartCtx.regularSession : chartCtx.session;
966
+ return { bars: new import_bars.SessionBars(new import_calendar.TradingCalendar(tz, { session: toSpec(symbol).session }, "symbol"), bars2.chart.period), test: true };
967
+ }
936
968
  const spec = session2 ? { session: session2 } : { session: toSpec(chartCtx.session).session };
937
969
  return { bars: new import_bars.SessionBars(new import_calendar.TradingCalendar(tz, spec, session2 ? "pine" : "symbol"), bars2.chart.period), test: true };
938
970
  }