oakscriptjs 0.11.4 → 0.11.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 (104) hide show
  1. package/dist/cjs/index.d.ts +2 -2
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +2 -1
  4. package/dist/cjs/index.js.map +2 -2
  5. package/dist/cjs/input.d.ts +19 -3
  6. package/dist/cjs/input.d.ts.map +1 -1
  7. package/dist/cjs/input.js +24 -1
  8. package/dist/cjs/input.js.map +2 -2
  9. package/dist/cjs/lib/zigzag/zigzag.d.ts +8 -3
  10. package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -1
  11. package/dist/cjs/lib/zigzag/zigzag.js +16 -3
  12. package/dist/cjs/lib/zigzag/zigzag.js.map +2 -2
  13. package/dist/cjs/runtime/index.d.ts +1 -1
  14. package/dist/cjs/runtime/index.d.ts.map +1 -1
  15. package/dist/cjs/runtime/index.js +1 -0
  16. package/dist/cjs/runtime/index.js.map +2 -2
  17. package/dist/cjs/runtime/inputs.d.ts +9 -0
  18. package/dist/cjs/runtime/inputs.d.ts.map +1 -1
  19. package/dist/cjs/runtime/inputs.js +8 -0
  20. package/dist/cjs/runtime/inputs.js.map +2 -2
  21. package/dist/cjs/runtime/types.d.ts +4 -3
  22. package/dist/cjs/runtime/types.d.ts.map +1 -1
  23. package/dist/cjs/runtime/types.js.map +1 -1
  24. package/dist/cjs/script/index.d.ts +50 -4
  25. package/dist/cjs/script/index.d.ts.map +1 -1
  26. package/dist/cjs/script/index.js +60 -4
  27. package/dist/cjs/script/index.js.map +3 -3
  28. package/dist/cjs/security/other.d.ts +2 -1
  29. package/dist/cjs/security/other.d.ts.map +1 -1
  30. package/dist/cjs/security/other.js +1 -1
  31. package/dist/cjs/security/other.js.map +2 -2
  32. package/dist/cjs/ta/index.d.ts +1 -0
  33. package/dist/cjs/ta/index.d.ts.map +1 -1
  34. package/dist/cjs/ta/index.js +1 -1
  35. package/dist/cjs/ta/index.js.map +2 -2
  36. package/dist/cjs/time/index.d.ts +2 -0
  37. package/dist/cjs/time/index.d.ts.map +1 -1
  38. package/dist/cjs/time/index.js +1 -1
  39. package/dist/cjs/time/index.js.map +2 -2
  40. package/dist/cjs/types/index.d.ts +1 -0
  41. package/dist/cjs/types/index.d.ts.map +1 -1
  42. package/dist/cjs/types/index.js.map +2 -2
  43. package/dist/cjs/utils/index.d.ts +5 -3
  44. package/dist/cjs/utils/index.d.ts.map +1 -1
  45. package/dist/cjs/utils/index.js +6 -0
  46. package/dist/cjs/utils/index.js.map +2 -2
  47. package/dist/esm/index.d.ts +2 -2
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js +2 -2
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/input.d.ts +19 -3
  52. package/dist/esm/input.d.ts.map +1 -1
  53. package/dist/esm/input.js +24 -1
  54. package/dist/esm/input.js.map +1 -1
  55. package/dist/esm/lib/zigzag/zigzag.d.ts +8 -3
  56. package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -1
  57. package/dist/esm/lib/zigzag/zigzag.js +19 -4
  58. package/dist/esm/lib/zigzag/zigzag.js.map +1 -1
  59. package/dist/esm/runtime/index.d.ts +1 -1
  60. package/dist/esm/runtime/index.d.ts.map +1 -1
  61. package/dist/esm/runtime/index.js +1 -1
  62. package/dist/esm/runtime/index.js.map +1 -1
  63. package/dist/esm/runtime/inputs.d.ts +9 -0
  64. package/dist/esm/runtime/inputs.d.ts.map +1 -1
  65. package/dist/esm/runtime/inputs.js +15 -0
  66. package/dist/esm/runtime/inputs.js.map +1 -1
  67. package/dist/esm/runtime/types.d.ts +4 -3
  68. package/dist/esm/runtime/types.d.ts.map +1 -1
  69. package/dist/esm/script/index.d.ts +50 -4
  70. package/dist/esm/script/index.d.ts.map +1 -1
  71. package/dist/esm/script/index.js +73 -2
  72. package/dist/esm/script/index.js.map +1 -1
  73. package/dist/esm/security/other.d.ts +2 -1
  74. package/dist/esm/security/other.d.ts.map +1 -1
  75. package/dist/esm/security/other.js +4 -2
  76. package/dist/esm/security/other.js.map +1 -1
  77. package/dist/esm/ta/index.d.ts +1 -0
  78. package/dist/esm/ta/index.d.ts.map +1 -1
  79. package/dist/esm/ta/index.js +3 -1
  80. package/dist/esm/ta/index.js.map +1 -1
  81. package/dist/esm/time/index.d.ts +2 -0
  82. package/dist/esm/time/index.d.ts.map +1 -1
  83. package/dist/esm/time/index.js +4 -1
  84. package/dist/esm/time/index.js.map +1 -1
  85. package/dist/esm/types/index.d.ts +1 -0
  86. package/dist/esm/types/index.d.ts.map +1 -1
  87. package/dist/esm/types/index.js.map +1 -1
  88. package/dist/esm/utils/index.d.ts +5 -3
  89. package/dist/esm/utils/index.d.ts.map +1 -1
  90. package/dist/esm/utils/index.js +5 -1
  91. package/dist/esm/utils/index.js.map +1 -1
  92. package/package.json +1 -1
  93. package/src/index.ts +2 -1
  94. package/src/input.ts +28 -4
  95. package/src/lib/zigzag/zigzag.ts +20 -6
  96. package/src/runtime/index.ts +1 -0
  97. package/src/runtime/inputs.ts +16 -0
  98. package/src/runtime/types.ts +4 -3
  99. package/src/script/index.ts +111 -5
  100. package/src/security/other.ts +5 -2
  101. package/src/ta/index.ts +3 -1
  102. package/src/time/index.ts +4 -1
  103. package/src/types/index.ts +1 -0
  104. package/src/utils/index.ts +8 -3
@@ -5,6 +5,8 @@
5
5
  * Every function takes an explicit time zone: UTC/GMT offset notation ("UTC-5",
6
6
  * "GMT+0530", "UTC+05:30") or an IANA name ("America/New_York"). The PineScript
7
7
  * default time zone (the exchange time zone, `syminfo.timezone`) is not known here.
8
+ * As in PineScript, the calendar fields (`year` ... `second`) of an na time are those
9
+ * of time 0 in the time zone.
8
10
  */
9
11
  import type { int, simple_int } from '../types/index.js';
10
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/time/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,GAAG,IAAI,GAAG,CAEzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC;AACnD,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,UAAU,GAClB,GAAG,CAAC;AACP,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,UAAU,GAClB,GAAG,CAAC;AAmBP;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAErD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAEtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAQ3D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAErD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAEvD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAEvD;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/time/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,GAAG,IAAI,GAAG,CAEzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC;AACnD,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,UAAU,GAClB,GAAG,CAAC;AACP,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,EACf,IAAI,CAAC,EAAE,UAAU,EACjB,MAAM,CAAC,EAAE,UAAU,EACnB,MAAM,CAAC,EAAE,UAAU,GAClB,GAAG,CAAC;AAoBP;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAErD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAEtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAE3D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAQ3D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAErD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAEvD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAEvD;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/F"}
@@ -48,7 +48,7 @@ function timestamp(first, ...rest) {
48
48
  return new Date(first, month2 - 1, day, hour2 || 0, minute2 || 0, second2 || 0).getTime();
49
49
  }
50
50
  function field(time, timezone, pick) {
51
- return Number.isNaN(time) ? NaN : pick((0, import_timezone.zonedFields)(time, timezone));
51
+ return pick((0, import_timezone.zonedFields)(Number.isNaN(time) ? 0 : time, timezone));
52
52
  }
53
53
  function year(time, timezone) {
54
54
  return field(time, timezone, (f) => f.year);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/time/index.ts"],
4
- "sourcesContent": ["/**\n * Time namespace\n * Mirrors PineScript's time and calendar functions.\n *\n * Every function takes an explicit time zone: UTC/GMT offset notation (\"UTC-5\",\n * \"GMT+0530\", \"UTC+05:30\") or an IANA name (\"America/New_York\"). The PineScript\n * default time zone (the exchange time zone, `syminfo.timezone`) is not known here.\n */\n\nimport type { int, simple_int } from '../types/index.js';\nimport { zonedFields, zonedToUnix } from './timezone.js';\nimport { parseDateString } from './datestring.js';\nimport { inSession as sessionContains } from './session.js';\n\n/**\n * Returns the current time in milliseconds\n */\nexport function now(): int {\n return Date.now();\n}\n\n/**\n * Returns the UNIX time (ms) of a date and time.\n *\n * - `timestamp(dateString)`: RFC 2822 or ISO 8601 date string (\"20 Feb 2020\",\n * \"2020-02-20T14:48:00\", \"2024-01-01 09:30 +0000\", \"04 Dec 1995 00:12:00 GMT+5\").\n * Without a time the time is 00:00; without a time zone the time zone is GMT+0.\n * - `timestamp(timezone, year, month, day, hour?, minute?, second?)`: calendar fields in `timezone`.\n * A wall-clock time that occurs twice resolves to the later instant; a missing one is\n * shifted forward by the gap (as in PineScript).\n * - `timestamp(year, month, day, hour?, minute?, second?)`: calendar fields in the time zone\n * of the host. PineScript reads them in the exchange time zone, which is not known here:\n * use the `timezone` form for PineScript values.\n *\n * Out-of-range fields roll over (month 13 is January of the next year).\n *\n * @example\n * ```typescript\n * time.timestamp('2024-01-02'); // 1704153600000\n * time.timestamp('America/New_York', 2024, 1, 2, 9, 30); // 1704205800000\n * ```\n */\nexport function timestamp(dateString: string): int;\nexport function timestamp(\n timezone: string,\n year: simple_int,\n month: simple_int,\n day: simple_int,\n hour?: simple_int,\n minute?: simple_int,\n second?: simple_int\n): int;\nexport function timestamp(\n year: simple_int,\n month: simple_int,\n day: simple_int,\n hour?: simple_int,\n minute?: simple_int,\n second?: simple_int\n): int;\nexport function timestamp(first: string | simple_int, ...rest: Array<simple_int | undefined>): int {\n if (typeof first === 'string') {\n if (rest.length === 0) return parseDateString(first);\n // PineScript: an na field counts as 0 (day na of January 2020 is 2019-12-31)\n const f = (v: number | undefined) => (v === undefined || v === null || Number.isNaN(v) ? 0 : v);\n const [year, month, day, hour, minute, second] = rest as [number, number, number, number?, number?, number?];\n return zonedToUnix(first, f(year), f(month), f(day), f(hour), f(minute), f(second));\n }\n const [month, day, hour, minute, second] = rest as [number, number, number?, number?, number?];\n return new Date(first, month - 1, day, hour || 0, minute || 0, second || 0).getTime();\n}\n\n// \u2500\u2500 Calendar fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction field(time: number, timezone: string, pick: (f: ReturnType<typeof zonedFields>) => number): int {\n return Number.isNaN(time) ? NaN : pick(zonedFields(time, timezone));\n}\n\n/**\n * Year of a UNIX time (ms) in `timezone`.\n */\nexport function year(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.year);\n}\n\n/**\n * Month (1-12) of a UNIX time (ms) in `timezone`.\n */\nexport function month(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.month);\n}\n\n/**\n * Day of the month (1-31) of a UNIX time (ms) in `timezone`.\n */\nexport function dayofmonth(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.day);\n}\n\n/**\n * Day of the week of a UNIX time (ms) in `timezone`: 1 = Sunday, 2 = Monday ... 7 = Saturday\n * (PineScript `dayofweek.sunday` ... `dayofweek.saturday`).\n */\nexport function dayofweek(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.dayOfWeek);\n}\n\n/**\n * Week number of the year of a UNIX time (ms) in `timezone`.\n *\n * Weeks start on Monday and follow ISO 8601: week 1 is the week that contains the\n * first Thursday of the year, so the first days of January can be in week 52 or 53\n * of the previous year. The PineScript reference does not define the rule.\n */\nexport function weekofyear(time: int, timezone: string): int {\n return field(time, timezone, (f) => {\n const date = Date.UTC(f.year, f.month - 1, f.day);\n const mondayBased = (f.dayOfWeek + 5) % 7; // Monday = 0 ... Sunday = 6\n const thursday = new Date(date + (3 - mondayBased) * 86_400_000);\n const yearStart = Date.UTC(thursday.getUTCFullYear(), 0, 1);\n return 1 + Math.floor((thursday.getTime() - yearStart) / (7 * 86_400_000));\n });\n}\n\n/**\n * Hour (0-23) of a UNIX time (ms) in `timezone`.\n */\nexport function hour(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.hour);\n}\n\n/**\n * Minute (0-59) of a UNIX time (ms) in `timezone`.\n */\nexport function minute(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.minute);\n}\n\n/**\n * Second (0-59) of a UNIX time (ms) in `timezone`.\n */\nexport function second(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.second);\n}\n\n// \u2500\u2500 Sessions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * True when a bar opening at `time` is inside `session`, with the session hours read in `timezone`.\n *\n * This is the session test of PineScript `time(timeframe, session, timezone)`, which returns\n * `na` for bars outside the session: `na(time(\"1\", \"0930-1600\", \"America/New_York\"))` is\n * `!time.inSession(barTime, \"0930-1600\", \"America/New_York\")`.\n *\n * Session format: \"HHmm-HHmm\", several periods separated by commas, optional days after\n * \":\" (1 = Sunday ... 7 = Saturday), e.g. \"0930-1600:23456\" or \"1000-1100,1400-1500\".\n * Without days, one period covers every day and several periods cover Monday to Friday.\n * A period includes its start and excludes its end. An overnight period (\"1800-0930\")\n * belongs to the day it ends. \"0000-0000\" and \"24x7\" cover the whole day. A period that ends at 0000 ends at 24:00 of\n * the day it starts. On the days around a clock change the periods are placed as PineScript places them (see\n * time/session.ts); `barMs`, the duration of the bars in ms, is needed for one of these rules (the day before the\n * clocks go back).\n */\nexport function inSession(time: int, session: string, timezone: string, barMs?: number): boolean {\n return sessionContains(time, session, timezone, barMs);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,sBAAyC;AACzC,wBAAgC;AAChC,qBAA6C;AAKtC,SAAS,MAAW;AACzB,SAAO,KAAK,IAAI;AAClB;AAyCO,SAAS,UAAU,UAA+B,MAA0C;AACjG,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,KAAK,WAAW,EAAG,YAAO,mCAAgB,KAAK;AAEnD,UAAM,IAAI,CAAC,MAA2B,MAAM,UAAa,MAAM,QAAQ,OAAO,MAAM,CAAC,IAAI,IAAI;AAC7F,UAAM,CAACA,OAAMC,QAAOC,MAAKC,OAAMC,SAAQC,OAAM,IAAI;AACjD,eAAO,6BAAY,OAAO,EAAEL,KAAI,GAAG,EAAEC,MAAK,GAAG,EAAEC,IAAG,GAAG,EAAEC,KAAI,GAAG,EAAEC,OAAM,GAAG,EAAEC,OAAM,CAAC;AAAA,EACpF;AACA,QAAM,CAACJ,QAAO,KAAKE,OAAMC,SAAQC,OAAM,IAAI;AAC3C,SAAO,IAAI,KAAK,OAAOJ,SAAQ,GAAG,KAAKE,SAAQ,GAAGC,WAAU,GAAGC,WAAU,CAAC,EAAE,QAAQ;AACtF;AAIA,SAAS,MAAM,MAAc,UAAkB,MAA0D;AACvG,SAAO,OAAO,MAAM,IAAI,IAAI,MAAM,SAAK,6BAAY,MAAM,QAAQ,CAAC;AACpE;AAKO,SAAS,KAAK,MAAW,UAAuB;AACrD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI;AAC5C;AAKO,SAAS,MAAM,MAAW,UAAuB;AACtD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK;AAC7C;AAKO,SAAS,WAAW,MAAW,UAAuB;AAC3D,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG;AAC3C;AAMO,SAAS,UAAU,MAAW,UAAuB;AAC1D,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,SAAS;AACjD;AASO,SAAS,WAAW,MAAW,UAAuB;AAC3D,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM;AAClC,UAAM,OAAO,KAAK,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,GAAG;AAChD,UAAM,eAAe,EAAE,YAAY,KAAK;AACxC,UAAM,WAAW,IAAI,KAAK,QAAQ,IAAI,eAAe,KAAU;AAC/D,UAAM,YAAY,KAAK,IAAI,SAAS,eAAe,GAAG,GAAG,CAAC;AAC1D,WAAO,IAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,cAAc,IAAI,MAAW;AAAA,EAC3E,CAAC;AACH;AAKO,SAAS,KAAK,MAAW,UAAuB;AACrD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI;AAC5C;AAKO,SAAS,OAAO,MAAW,UAAuB;AACvD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM;AAC9C;AAKO,SAAS,OAAO,MAAW,UAAuB;AACvD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM;AAC9C;AAoBO,SAAS,UAAU,MAAW,SAAiB,UAAkB,OAAyB;AAC/F,aAAO,eAAAC,WAAgB,MAAM,SAAS,UAAU,KAAK;AACvD;",
4
+ "sourcesContent": ["/**\n * Time namespace\n * Mirrors PineScript's time and calendar functions.\n *\n * Every function takes an explicit time zone: UTC/GMT offset notation (\"UTC-5\",\n * \"GMT+0530\", \"UTC+05:30\") or an IANA name (\"America/New_York\"). The PineScript\n * default time zone (the exchange time zone, `syminfo.timezone`) is not known here.\n * As in PineScript, the calendar fields (`year` ... `second`) of an na time are those\n * of time 0 in the time zone.\n */\n\nimport type { int, simple_int } from '../types/index.js';\nimport { zonedFields, zonedToUnix } from './timezone.js';\nimport { parseDateString } from './datestring.js';\nimport { inSession as sessionContains } from './session.js';\n\n/**\n * Returns the current time in milliseconds\n */\nexport function now(): int {\n return Date.now();\n}\n\n/**\n * Returns the UNIX time (ms) of a date and time.\n *\n * - `timestamp(dateString)`: RFC 2822 or ISO 8601 date string (\"20 Feb 2020\",\n * \"2020-02-20T14:48:00\", \"2024-01-01 09:30 +0000\", \"04 Dec 1995 00:12:00 GMT+5\").\n * Without a time the time is 00:00; without a time zone the time zone is GMT+0.\n * - `timestamp(timezone, year, month, day, hour?, minute?, second?)`: calendar fields in `timezone`.\n * A wall-clock time that occurs twice resolves to the later instant; a missing one is\n * shifted forward by the gap (as in PineScript).\n * - `timestamp(year, month, day, hour?, minute?, second?)`: calendar fields in the time zone\n * of the host. PineScript reads them in the exchange time zone, which is not known here:\n * use the `timezone` form for PineScript values.\n *\n * Out-of-range fields roll over (month 13 is January of the next year).\n *\n * @example\n * ```typescript\n * time.timestamp('2024-01-02'); // 1704153600000\n * time.timestamp('America/New_York', 2024, 1, 2, 9, 30); // 1704205800000\n * ```\n */\nexport function timestamp(dateString: string): int;\nexport function timestamp(\n timezone: string,\n year: simple_int,\n month: simple_int,\n day: simple_int,\n hour?: simple_int,\n minute?: simple_int,\n second?: simple_int\n): int;\nexport function timestamp(\n year: simple_int,\n month: simple_int,\n day: simple_int,\n hour?: simple_int,\n minute?: simple_int,\n second?: simple_int\n): int;\nexport function timestamp(first: string | simple_int, ...rest: Array<simple_int | undefined>): int {\n if (typeof first === 'string') {\n if (rest.length === 0) return parseDateString(first);\n // PineScript: an na field counts as 0 (day na of January 2020 is 2019-12-31)\n const f = (v: number | undefined) => (v === undefined || v === null || Number.isNaN(v) ? 0 : v);\n const [year, month, day, hour, minute, second] = rest as [number, number, number, number?, number?, number?];\n return zonedToUnix(first, f(year), f(month), f(day), f(hour), f(minute), f(second));\n }\n const [month, day, hour, minute, second] = rest as [number, number, number?, number?, number?];\n return new Date(first, month - 1, day, hour || 0, minute || 0, second || 0).getTime();\n}\n\n// \u2500\u2500 Calendar fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// PineScript reads an na time as 0: year(na) is 1970 in UTC, 1969 in America/New_York (#184)\nfunction field(time: number, timezone: string, pick: (f: ReturnType<typeof zonedFields>) => number): int {\n return pick(zonedFields(Number.isNaN(time) ? 0 : time, timezone));\n}\n\n/**\n * Year of a UNIX time (ms) in `timezone`.\n */\nexport function year(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.year);\n}\n\n/**\n * Month (1-12) of a UNIX time (ms) in `timezone`.\n */\nexport function month(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.month);\n}\n\n/**\n * Day of the month (1-31) of a UNIX time (ms) in `timezone`.\n */\nexport function dayofmonth(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.day);\n}\n\n/**\n * Day of the week of a UNIX time (ms) in `timezone`: 1 = Sunday, 2 = Monday ... 7 = Saturday\n * (PineScript `dayofweek.sunday` ... `dayofweek.saturday`).\n */\nexport function dayofweek(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.dayOfWeek);\n}\n\n/**\n * Week number of the year of a UNIX time (ms) in `timezone`.\n *\n * Weeks start on Monday and follow ISO 8601: week 1 is the week that contains the\n * first Thursday of the year, so the first days of January can be in week 52 or 53\n * of the previous year. The PineScript reference does not define the rule.\n */\nexport function weekofyear(time: int, timezone: string): int {\n return field(time, timezone, (f) => {\n const date = Date.UTC(f.year, f.month - 1, f.day);\n const mondayBased = (f.dayOfWeek + 5) % 7; // Monday = 0 ... Sunday = 6\n const thursday = new Date(date + (3 - mondayBased) * 86_400_000);\n const yearStart = Date.UTC(thursday.getUTCFullYear(), 0, 1);\n return 1 + Math.floor((thursday.getTime() - yearStart) / (7 * 86_400_000));\n });\n}\n\n/**\n * Hour (0-23) of a UNIX time (ms) in `timezone`.\n */\nexport function hour(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.hour);\n}\n\n/**\n * Minute (0-59) of a UNIX time (ms) in `timezone`.\n */\nexport function minute(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.minute);\n}\n\n/**\n * Second (0-59) of a UNIX time (ms) in `timezone`.\n */\nexport function second(time: int, timezone: string): int {\n return field(time, timezone, (f) => f.second);\n}\n\n// \u2500\u2500 Sessions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * True when a bar opening at `time` is inside `session`, with the session hours read in `timezone`.\n *\n * This is the session test of PineScript `time(timeframe, session, timezone)`, which returns\n * `na` for bars outside the session: `na(time(\"1\", \"0930-1600\", \"America/New_York\"))` is\n * `!time.inSession(barTime, \"0930-1600\", \"America/New_York\")`.\n *\n * Session format: \"HHmm-HHmm\", several periods separated by commas, optional days after\n * \":\" (1 = Sunday ... 7 = Saturday), e.g. \"0930-1600:23456\" or \"1000-1100,1400-1500\".\n * Without days, one period covers every day and several periods cover Monday to Friday.\n * A period includes its start and excludes its end. An overnight period (\"1800-0930\")\n * belongs to the day it ends. \"0000-0000\" and \"24x7\" cover the whole day. A period that ends at 0000 ends at 24:00 of\n * the day it starts. On the days around a clock change the periods are placed as PineScript places them (see\n * time/session.ts); `barMs`, the duration of the bars in ms, is needed for one of these rules (the day before the\n * clocks go back).\n */\nexport function inSession(time: int, session: string, timezone: string, barMs?: number): boolean {\n return sessionContains(time, session, timezone, barMs);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,sBAAyC;AACzC,wBAAgC;AAChC,qBAA6C;AAKtC,SAAS,MAAW;AACzB,SAAO,KAAK,IAAI;AAClB;AAyCO,SAAS,UAAU,UAA+B,MAA0C;AACjG,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,KAAK,WAAW,EAAG,YAAO,mCAAgB,KAAK;AAEnD,UAAM,IAAI,CAAC,MAA2B,MAAM,UAAa,MAAM,QAAQ,OAAO,MAAM,CAAC,IAAI,IAAI;AAC7F,UAAM,CAACA,OAAMC,QAAOC,MAAKC,OAAMC,SAAQC,OAAM,IAAI;AACjD,eAAO,6BAAY,OAAO,EAAEL,KAAI,GAAG,EAAEC,MAAK,GAAG,EAAEC,IAAG,GAAG,EAAEC,KAAI,GAAG,EAAEC,OAAM,GAAG,EAAEC,OAAM,CAAC;AAAA,EACpF;AACA,QAAM,CAACJ,QAAO,KAAKE,OAAMC,SAAQC,OAAM,IAAI;AAC3C,SAAO,IAAI,KAAK,OAAOJ,SAAQ,GAAG,KAAKE,SAAQ,GAAGC,WAAU,GAAGC,WAAU,CAAC,EAAE,QAAQ;AACtF;AAKA,SAAS,MAAM,MAAc,UAAkB,MAA0D;AACvG,SAAO,SAAK,6BAAY,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,QAAQ,CAAC;AAClE;AAKO,SAAS,KAAK,MAAW,UAAuB;AACrD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI;AAC5C;AAKO,SAAS,MAAM,MAAW,UAAuB;AACtD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK;AAC7C;AAKO,SAAS,WAAW,MAAW,UAAuB;AAC3D,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG;AAC3C;AAMO,SAAS,UAAU,MAAW,UAAuB;AAC1D,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,SAAS;AACjD;AASO,SAAS,WAAW,MAAW,UAAuB;AAC3D,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM;AAClC,UAAM,OAAO,KAAK,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,GAAG;AAChD,UAAM,eAAe,EAAE,YAAY,KAAK;AACxC,UAAM,WAAW,IAAI,KAAK,QAAQ,IAAI,eAAe,KAAU;AAC/D,UAAM,YAAY,KAAK,IAAI,SAAS,eAAe,GAAG,GAAG,CAAC;AAC1D,WAAO,IAAI,KAAK,OAAO,SAAS,QAAQ,IAAI,cAAc,IAAI,MAAW;AAAA,EAC3E,CAAC;AACH;AAKO,SAAS,KAAK,MAAW,UAAuB;AACrD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI;AAC5C;AAKO,SAAS,OAAO,MAAW,UAAuB;AACvD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM;AAC9C;AAKO,SAAS,OAAO,MAAW,UAAuB;AACvD,SAAO,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,MAAM;AAC9C;AAoBO,SAAS,UAAU,MAAW,SAAiB,UAAkB,OAAyB;AAC/F,aAAO,eAAAC,WAAgB,MAAM,SAAS,UAAU,KAAK;AACvD;",
6
6
  "names": ["year", "month", "day", "hour", "minute", "second", "sessionContains"]
7
7
  }
@@ -298,6 +298,7 @@ export interface OHLC {
298
298
  high: series_float;
299
299
  low: series_float;
300
300
  close: series_float;
301
+ volume?: series_float;
301
302
  }
302
303
  export declare const na: null;
303
304
  export type na = null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/index.ts"],
4
- "sourcesContent": ["/**\n * Core types for OakScriptJS\n * These types mirror the PineScript type system\n */\n\n// Basic types\nexport type int = number;\nexport type float = number;\nexport type bool = boolean;\n//export type string = string;\nexport type color = string | number;\n\n// Series types - In PineScript, series are time-series arrays\nexport type series<T> = T[];\nexport type series_int = series<int>;\nexport type series_float = series<float>;\nexport type series_bool = series<bool>;\nexport type series_string = series<string>;\nexport type series_color = series<color>;\n\n// Simple types (non-series)\nexport type simple_int = int;\nexport type simple_float = float;\nexport type simple_bool = bool;\nexport type simple_string = string;\nexport type simple_color = color;\n\n// Input types\nexport type input_int = int;\nexport type input_float = float;\nexport type input_bool = bool;\nexport type input_string = string;\nexport type input_color = color;\n\n// Const types (compile-time constants)\nexport type const_int = int;\nexport type const_float = float;\nexport type const_bool = bool;\nexport type const_string = string;\nexport type const_color = color;\n\n// Source types for indicators\nexport type Source = series_float;\n\n// Array types\n// PineScript arrays are JS arrays; aliased for API parity and future extension.\nexport type PineArray<T> = Array<T>;\n\n// Map types\n// PineScript maps are JS Maps: keys in insertion order, exact key equality.\nexport type PineMapKey = number | string | boolean;\nexport type PineMap<K extends PineMapKey, V> = Map<K, V>;\n\n// Matrix types\nexport interface PineMatrix<T> {\n rows: int;\n columns: int;\n data: T[][];\n}\n\n// Drawing object types - Now implemented for computational use!\n// While primarily used for visualization in PineScript, these objects have computational value:\n// - line.get_price() for trend analysis\n// - box getters for gap detection and range breakouts\n\n/**\n * Line object - Represents a line on the chart\n * @remarks\n * While lines are visual in PineScript, line.get_price() provides computational value\n * for detecting trend line breakouts, calculating support/resistance levels, etc.\n */\nexport interface Line {\n /** First point's x coordinate (bar index or UNIX timestamp) */\n x1: number;\n /** First point's y coordinate (price level) */\n y1: number;\n /** Second point's x coordinate (bar index or UNIX timestamp) */\n x2: number;\n /** Second point's y coordinate (price level) */\n y2: number;\n /** X-axis coordinate system */\n xloc: 'bar_index' | 'bar_time';\n /** Extension mode */\n extend: 'none' | 'left' | 'right' | 'both';\n /** Line color (stored but not used for calculations) */\n color?: color;\n /** Line style (stored but not used for calculations) */\n style?: 'solid' | 'dotted' | 'dashed' | 'arrow_left' | 'arrow_right' | 'arrow_both';\n /** Line width in pixels (stored but not used for calculations) */\n width?: number;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n}\n\n/**\n * Box object - Represents a rectangular area on the chart\n * @remarks\n * Box getters (get_top, get_bottom, get_left, get_right) enable gap detection,\n * range breakout analysis, and consolidation zone identification.\n */\nexport interface Box {\n /** Left border x coordinate (bar index or UNIX timestamp) */\n left: number;\n /** Top border y coordinate (price level) */\n top: number;\n /** Right border x coordinate (bar index or UNIX timestamp) */\n right: number;\n /** Bottom border y coordinate (price level) */\n bottom: number;\n /** X-axis coordinate system */\n xloc: 'bar_index' | 'bar_time';\n /** Horizontal extension mode */\n extend: 'none' | 'left' | 'right' | 'both';\n /** Border color (stored but not used for calculations) */\n border_color?: color;\n /** Border width in pixels (stored but not used for calculations) */\n border_width?: number;\n /** Border style (stored but not used for calculations) */\n border_style?: 'solid' | 'dotted' | 'dashed';\n /** Background fill color (stored but not used for calculations) */\n bgcolor?: color;\n /** Text content displayed in the box */\n text?: string;\n /** Text size */\n text_size?: string | number;\n /** Text color */\n text_color?: color;\n /** Horizontal text alignment */\n text_halign?: 'left' | 'center' | 'right';\n /** Vertical text alignment */\n text_valign?: 'top' | 'center' | 'bottom';\n /** Text wrapping mode */\n text_wrap?: 'none' | 'auto';\n /** Text font family */\n text_font_family?: 'default' | 'monospace';\n /** Text formatting flags: 0 none, 1 bold, 2 italic, 3 bold + italic (PineScript text.format_*) */\n text_formatting?: number;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n}\n\n/**\n * Label object - Represents a label/annotation on the chart\n * @remarks\n * Labels have limited computational value. Primarily used for marking points and displaying text.\n */\nexport interface Label {\n /** X coordinate (bar index or UNIX timestamp) */\n x: number;\n /** Y coordinate (price level when yloc = 'price') */\n y: number;\n /** X-axis coordinate system */\n xloc: 'bar_index' | 'bar_time';\n /** Y-axis positioning mode */\n yloc: 'price' | 'abovebar' | 'belowbar';\n /** Label text content */\n text?: string;\n /** Tooltip text shown on hover */\n tooltip?: string;\n /** Border and arrow color */\n color?: color;\n /** Label style */\n style?: 'none' | 'xcross' | 'cross' | 'triangleup' | 'triangledown' | 'flag' | 'circle' |\n 'arrowup' | 'arrowdown' | 'label_up' | 'label_down' | 'label_left' | 'label_right' |\n 'label_lower_left' | 'label_lower_right' | 'label_upper_left' | 'label_upper_right' |\n 'label_center' | 'square' | 'diamond' | 'text_outline';\n /** Text color */\n textcolor?: color;\n /** Label size */\n size?: string | number;\n /** Text alignment */\n textalign?: 'left' | 'center' | 'right';\n /** Text font family */\n text_font_family?: 'default' | 'monospace';\n /** Text formatting flags: 0 none, 1 bold, 2 italic, 3 bold + italic (PineScript text.format_*) */\n text_formatting?: number;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n}\n\n/**\n * Linefill object - Represents a filled area between two lines\n * @remarks\n * Minimal computational value. Used to fill channel areas visually.\n */\nexport interface Linefill {\n /** First line reference */\n line1: Line;\n /** Second line reference */\n line2: Line;\n /** Fill color */\n color?: color;\n}\n\n/**\n * Table object - Represents a table for displaying data\n * @remarks\n * Tables have NO computational value (no getter functions in PineScript).\n * Purely for display/visualization purposes.\n */\nexport interface Table {\n /** Table position on chart */\n position: 'top_left' | 'top_center' | 'top_right' |\n 'middle_left' | 'middle_center' | 'middle_right' |\n 'bottom_left' | 'bottom_center' | 'bottom_right';\n /** Number of columns */\n columns: number;\n /** Number of rows */\n rows: number;\n /** Outer frame color */\n frame_color?: color;\n /** Outer frame width */\n frame_width?: number;\n /** Cell border color */\n border_color?: color;\n /** Cell border width */\n border_width?: number;\n /** Table background color */\n bgcolor?: color;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n /** Cells by \"column,row\" */\n cells?: Map<string, TableCell>;\n /** Merged cell ranges (PineScript table.merge_cells) */\n merges?: TableMerge[];\n}\n\n/**\n * Merged cell range of a table\n */\nexport interface TableMerge {\n start_column: number;\n start_row: number;\n end_column: number;\n end_row: number;\n}\n\n/**\n * Table cell data\n */\nexport interface TableCell {\n /** Cell text content */\n text?: string;\n /** Cell width as percentage */\n width?: number;\n /** Cell height as percentage */\n height?: number;\n /** Text color */\n text_color?: color;\n /** Horizontal text alignment */\n text_halign?: 'left' | 'center' | 'right';\n /** Vertical text alignment */\n text_valign?: 'top' | 'center' | 'bottom';\n /** Text size */\n text_size?: string | number;\n /** Cell background color */\n bgcolor?: color;\n /** Cell tooltip */\n tooltip?: string;\n /** Text font family */\n text_font_family?: 'default' | 'monospace';\n /** Text formatting flags: 0 none, 1 bold, 2 italic, 3 bold + italic (PineScript text.format_*) */\n text_formatting?: number;\n}\n\n// Series types for drawing objects\nexport type series_line = series<Line>;\nexport type series_box = series<Box>;\nexport type series_label = series<Label>;\nexport type series_linefill = series<Linefill>;\nexport type series_table = series<Table>;\n\n/**\n * Plot object - Represents a plot instance created by plot() function\n * @remarks\n * In PineScript, plot() returns a reference to a plot instance that can be used with fill().\n * This ID is used to reference the plot for filling between plots.\n */\nexport interface Plot {\n /** Unique identifier for this plot */\n id: string;\n /** Series being plotted */\n series: any;\n /** Plot title */\n title?: string;\n /** Plot color */\n color?: any;\n /** Line width */\n linewidth?: number;\n /** Plot style */\n style?: 'line' | 'stepline' | 'histogram' | 'area' | 'circles' | 'columns';\n /** Track price on y-axis */\n trackprice?: boolean;\n /** Histogram base level */\n histbase?: number;\n /** Offset in bars */\n offset?: number;\n /** Join gaps */\n join?: boolean;\n /** Editable in chart */\n editable?: boolean;\n /** Display mode */\n display?: 'all' | 'none';\n}\n\n/**\n * HLine object - Represents a horizontal line instance created by hline() function\n * @remarks\n * In PineScript, hline() returns a reference to an hline instance that can be used with fill().\n * This ID is used to reference the horizontal line for filling between levels.\n */\nexport interface HLine {\n /** Unique identifier for this hline */\n id: string;\n /** Price level for the horizontal line */\n price: number;\n /** Line title */\n title?: string;\n /** Line color */\n color?: any;\n /** Line style */\n linestyle?: 'solid' | 'dashed' | 'dotted';\n /** Line width */\n linewidth?: number;\n /** Editable in chart */\n editable?: boolean;\n}\n\n// Series types for plot and hline (always series qualifier in PineScript)\nexport type series_plot = Plot;\nexport type series_hline = HLine;\n\n// Excluded types (StrategyEntry, StrategyExit) - not used in calculation-only library\n\n// Bar data\nexport interface Bar {\n time: int;\n open: float;\n high: float;\n low: float;\n close: float;\n volume?: float;\n}\n\n// OHLC data type\nexport interface OHLC {\n open: series_float;\n high: series_float;\n low: series_float;\n close: series_float;\n}\n\n// Constants\nexport const na = null;\nexport type na = null;\n\n/**\n * X-axis location constants\n * Used to specify whether x-coordinates are bar indices or timestamps\n */\nexport const xloc = {\n /** X-coordinates are bar indices */\n bar_index: 'bar_index' as const,\n /** X-coordinates are UNIX timestamps in milliseconds */\n bar_time: 'bar_time' as const,\n};\n\n/**\n * Table position constants (PineScript `position.*`), for `table.new` and `table.set_position`\n */\nexport const position = {\n top_left: 'top_left' as const,\n top_center: 'top_center' as const,\n top_right: 'top_right' as const,\n middle_left: 'middle_left' as const,\n middle_center: 'middle_center' as const,\n middle_right: 'middle_right' as const,\n bottom_left: 'bottom_left' as const,\n bottom_center: 'bottom_center' as const,\n bottom_right: 'bottom_right' as const,\n};\n\n/**\n * ChartPoint interface - Represents a point on the chart\n * @remarks\n * A chart point can have time, index, and price coordinates.\n * At least one of time or index should be provided for x-coordinate positioning.\n */\nexport interface ChartPoint {\n /** UNIX timestamp in milliseconds (null if using bar index) */\n readonly time: number | null;\n /** Bar index (null if using time) */\n readonly index: number | null;\n /** Y-axis price value */\n readonly price: number;\n}\n\n/**\n * Polyline interface - Represents a polyline on the chart\n * @remarks\n * A polyline connects multiple chart points with line segments.\n * When closed, it forms a polygon that can be filled with color.\n */\nexport interface Polyline {\n /** Unique identifier for this polyline */\n readonly id: string;\n /** Array of chart points that define the polyline */\n readonly points: readonly ChartPoint[];\n /** If true, use curved line segments (not yet supported - uses straight lines) */\n readonly curved: boolean;\n /** If true, connect the first point to the last point */\n readonly closed: boolean;\n /** X-coordinate mode: 'bar_index' or 'bar_time' */\n readonly xloc: 'bar_index' | 'bar_time';\n /** Color of line segments */\n readonly line_color: color;\n /** Fill color for closed polylines (null for no fill) */\n readonly fill_color: color | null;\n /** Line style */\n readonly line_style: 'solid' | 'dotted' | 'dashed';\n /** Line width in pixels */\n readonly line_width: number;\n /** Force display on main pane */\n readonly force_overlay: boolean;\n}\n\n// Series types for chart point and polyline\nexport type series_chartpoint = series<ChartPoint>;\nexport type series_polyline = series<Polyline>;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiWO,MAAM,KAAK;AAOX,MAAM,OAAO;AAAA;AAAA,EAElB,WAAW;AAAA;AAAA,EAEX,UAAU;AACZ;AAKO,MAAM,WAAW;AAAA,EACtB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAChB;",
4
+ "sourcesContent": ["/**\n * Core types for OakScriptJS\n * These types mirror the PineScript type system\n */\n\n// Basic types\nexport type int = number;\nexport type float = number;\nexport type bool = boolean;\n//export type string = string;\nexport type color = string | number;\n\n// Series types - In PineScript, series are time-series arrays\nexport type series<T> = T[];\nexport type series_int = series<int>;\nexport type series_float = series<float>;\nexport type series_bool = series<bool>;\nexport type series_string = series<string>;\nexport type series_color = series<color>;\n\n// Simple types (non-series)\nexport type simple_int = int;\nexport type simple_float = float;\nexport type simple_bool = bool;\nexport type simple_string = string;\nexport type simple_color = color;\n\n// Input types\nexport type input_int = int;\nexport type input_float = float;\nexport type input_bool = bool;\nexport type input_string = string;\nexport type input_color = color;\n\n// Const types (compile-time constants)\nexport type const_int = int;\nexport type const_float = float;\nexport type const_bool = bool;\nexport type const_string = string;\nexport type const_color = color;\n\n// Source types for indicators\nexport type Source = series_float;\n\n// Array types\n// PineScript arrays are JS arrays; aliased for API parity and future extension.\nexport type PineArray<T> = Array<T>;\n\n// Map types\n// PineScript maps are JS Maps: keys in insertion order, exact key equality.\nexport type PineMapKey = number | string | boolean;\nexport type PineMap<K extends PineMapKey, V> = Map<K, V>;\n\n// Matrix types\nexport interface PineMatrix<T> {\n rows: int;\n columns: int;\n data: T[][];\n}\n\n// Drawing object types - Now implemented for computational use!\n// While primarily used for visualization in PineScript, these objects have computational value:\n// - line.get_price() for trend analysis\n// - box getters for gap detection and range breakouts\n\n/**\n * Line object - Represents a line on the chart\n * @remarks\n * While lines are visual in PineScript, line.get_price() provides computational value\n * for detecting trend line breakouts, calculating support/resistance levels, etc.\n */\nexport interface Line {\n /** First point's x coordinate (bar index or UNIX timestamp) */\n x1: number;\n /** First point's y coordinate (price level) */\n y1: number;\n /** Second point's x coordinate (bar index or UNIX timestamp) */\n x2: number;\n /** Second point's y coordinate (price level) */\n y2: number;\n /** X-axis coordinate system */\n xloc: 'bar_index' | 'bar_time';\n /** Extension mode */\n extend: 'none' | 'left' | 'right' | 'both';\n /** Line color (stored but not used for calculations) */\n color?: color;\n /** Line style (stored but not used for calculations) */\n style?: 'solid' | 'dotted' | 'dashed' | 'arrow_left' | 'arrow_right' | 'arrow_both';\n /** Line width in pixels (stored but not used for calculations) */\n width?: number;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n}\n\n/**\n * Box object - Represents a rectangular area on the chart\n * @remarks\n * Box getters (get_top, get_bottom, get_left, get_right) enable gap detection,\n * range breakout analysis, and consolidation zone identification.\n */\nexport interface Box {\n /** Left border x coordinate (bar index or UNIX timestamp) */\n left: number;\n /** Top border y coordinate (price level) */\n top: number;\n /** Right border x coordinate (bar index or UNIX timestamp) */\n right: number;\n /** Bottom border y coordinate (price level) */\n bottom: number;\n /** X-axis coordinate system */\n xloc: 'bar_index' | 'bar_time';\n /** Horizontal extension mode */\n extend: 'none' | 'left' | 'right' | 'both';\n /** Border color (stored but not used for calculations) */\n border_color?: color;\n /** Border width in pixels (stored but not used for calculations) */\n border_width?: number;\n /** Border style (stored but not used for calculations) */\n border_style?: 'solid' | 'dotted' | 'dashed';\n /** Background fill color (stored but not used for calculations) */\n bgcolor?: color;\n /** Text content displayed in the box */\n text?: string;\n /** Text size */\n text_size?: string | number;\n /** Text color */\n text_color?: color;\n /** Horizontal text alignment */\n text_halign?: 'left' | 'center' | 'right';\n /** Vertical text alignment */\n text_valign?: 'top' | 'center' | 'bottom';\n /** Text wrapping mode */\n text_wrap?: 'none' | 'auto';\n /** Text font family */\n text_font_family?: 'default' | 'monospace';\n /** Text formatting flags: 0 none, 1 bold, 2 italic, 3 bold + italic (PineScript text.format_*) */\n text_formatting?: number;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n}\n\n/**\n * Label object - Represents a label/annotation on the chart\n * @remarks\n * Labels have limited computational value. Primarily used for marking points and displaying text.\n */\nexport interface Label {\n /** X coordinate (bar index or UNIX timestamp) */\n x: number;\n /** Y coordinate (price level when yloc = 'price') */\n y: number;\n /** X-axis coordinate system */\n xloc: 'bar_index' | 'bar_time';\n /** Y-axis positioning mode */\n yloc: 'price' | 'abovebar' | 'belowbar';\n /** Label text content */\n text?: string;\n /** Tooltip text shown on hover */\n tooltip?: string;\n /** Border and arrow color */\n color?: color;\n /** Label style */\n style?: 'none' | 'xcross' | 'cross' | 'triangleup' | 'triangledown' | 'flag' | 'circle' |\n 'arrowup' | 'arrowdown' | 'label_up' | 'label_down' | 'label_left' | 'label_right' |\n 'label_lower_left' | 'label_lower_right' | 'label_upper_left' | 'label_upper_right' |\n 'label_center' | 'square' | 'diamond' | 'text_outline';\n /** Text color */\n textcolor?: color;\n /** Label size */\n size?: string | number;\n /** Text alignment */\n textalign?: 'left' | 'center' | 'right';\n /** Text font family */\n text_font_family?: 'default' | 'monospace';\n /** Text formatting flags: 0 none, 1 bold, 2 italic, 3 bold + italic (PineScript text.format_*) */\n text_formatting?: number;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n}\n\n/**\n * Linefill object - Represents a filled area between two lines\n * @remarks\n * Minimal computational value. Used to fill channel areas visually.\n */\nexport interface Linefill {\n /** First line reference */\n line1: Line;\n /** Second line reference */\n line2: Line;\n /** Fill color */\n color?: color;\n}\n\n/**\n * Table object - Represents a table for displaying data\n * @remarks\n * Tables have NO computational value (no getter functions in PineScript).\n * Purely for display/visualization purposes.\n */\nexport interface Table {\n /** Table position on chart */\n position: 'top_left' | 'top_center' | 'top_right' |\n 'middle_left' | 'middle_center' | 'middle_right' |\n 'bottom_left' | 'bottom_center' | 'bottom_right';\n /** Number of columns */\n columns: number;\n /** Number of rows */\n rows: number;\n /** Outer frame color */\n frame_color?: color;\n /** Outer frame width */\n frame_width?: number;\n /** Cell border color */\n border_color?: color;\n /** Cell border width */\n border_width?: number;\n /** Table background color */\n bgcolor?: color;\n /** Display on the main chart pane (PineScript force_overlay) */\n force_overlay?: boolean;\n /** Cells by \"column,row\" */\n cells?: Map<string, TableCell>;\n /** Merged cell ranges (PineScript table.merge_cells) */\n merges?: TableMerge[];\n}\n\n/**\n * Merged cell range of a table\n */\nexport interface TableMerge {\n start_column: number;\n start_row: number;\n end_column: number;\n end_row: number;\n}\n\n/**\n * Table cell data\n */\nexport interface TableCell {\n /** Cell text content */\n text?: string;\n /** Cell width as percentage */\n width?: number;\n /** Cell height as percentage */\n height?: number;\n /** Text color */\n text_color?: color;\n /** Horizontal text alignment */\n text_halign?: 'left' | 'center' | 'right';\n /** Vertical text alignment */\n text_valign?: 'top' | 'center' | 'bottom';\n /** Text size */\n text_size?: string | number;\n /** Cell background color */\n bgcolor?: color;\n /** Cell tooltip */\n tooltip?: string;\n /** Text font family */\n text_font_family?: 'default' | 'monospace';\n /** Text formatting flags: 0 none, 1 bold, 2 italic, 3 bold + italic (PineScript text.format_*) */\n text_formatting?: number;\n}\n\n// Series types for drawing objects\nexport type series_line = series<Line>;\nexport type series_box = series<Box>;\nexport type series_label = series<Label>;\nexport type series_linefill = series<Linefill>;\nexport type series_table = series<Table>;\n\n/**\n * Plot object - Represents a plot instance created by plot() function\n * @remarks\n * In PineScript, plot() returns a reference to a plot instance that can be used with fill().\n * This ID is used to reference the plot for filling between plots.\n */\nexport interface Plot {\n /** Unique identifier for this plot */\n id: string;\n /** Series being plotted */\n series: any;\n /** Plot title */\n title?: string;\n /** Plot color */\n color?: any;\n /** Line width */\n linewidth?: number;\n /** Plot style */\n style?: 'line' | 'stepline' | 'histogram' | 'area' | 'circles' | 'columns';\n /** Track price on y-axis */\n trackprice?: boolean;\n /** Histogram base level */\n histbase?: number;\n /** Offset in bars */\n offset?: number;\n /** Join gaps */\n join?: boolean;\n /** Editable in chart */\n editable?: boolean;\n /** Display mode */\n display?: 'all' | 'none';\n}\n\n/**\n * HLine object - Represents a horizontal line instance created by hline() function\n * @remarks\n * In PineScript, hline() returns a reference to an hline instance that can be used with fill().\n * This ID is used to reference the horizontal line for filling between levels.\n */\nexport interface HLine {\n /** Unique identifier for this hline */\n id: string;\n /** Price level for the horizontal line */\n price: number;\n /** Line title */\n title?: string;\n /** Line color */\n color?: any;\n /** Line style */\n linestyle?: 'solid' | 'dashed' | 'dotted';\n /** Line width */\n linewidth?: number;\n /** Editable in chart */\n editable?: boolean;\n}\n\n// Series types for plot and hline (always series qualifier in PineScript)\nexport type series_plot = Plot;\nexport type series_hline = HLine;\n\n// Excluded types (StrategyEntry, StrategyExit) - not used in calculation-only library\n\n// Bar data\nexport interface Bar {\n time: int;\n open: float;\n high: float;\n low: float;\n close: float;\n volume?: float;\n}\n\n// OHLC data type\nexport interface OHLC {\n open: series_float;\n high: series_float;\n low: series_float;\n close: series_float;\n volume?: series_float;\n}\n\n// Constants\nexport const na = null;\nexport type na = null;\n\n/**\n * X-axis location constants\n * Used to specify whether x-coordinates are bar indices or timestamps\n */\nexport const xloc = {\n /** X-coordinates are bar indices */\n bar_index: 'bar_index' as const,\n /** X-coordinates are UNIX timestamps in milliseconds */\n bar_time: 'bar_time' as const,\n};\n\n/**\n * Table position constants (PineScript `position.*`), for `table.new` and `table.set_position`\n */\nexport const position = {\n top_left: 'top_left' as const,\n top_center: 'top_center' as const,\n top_right: 'top_right' as const,\n middle_left: 'middle_left' as const,\n middle_center: 'middle_center' as const,\n middle_right: 'middle_right' as const,\n bottom_left: 'bottom_left' as const,\n bottom_center: 'bottom_center' as const,\n bottom_right: 'bottom_right' as const,\n};\n\n/**\n * ChartPoint interface - Represents a point on the chart\n * @remarks\n * A chart point can have time, index, and price coordinates.\n * At least one of time or index should be provided for x-coordinate positioning.\n */\nexport interface ChartPoint {\n /** UNIX timestamp in milliseconds (null if using bar index) */\n readonly time: number | null;\n /** Bar index (null if using time) */\n readonly index: number | null;\n /** Y-axis price value */\n readonly price: number;\n}\n\n/**\n * Polyline interface - Represents a polyline on the chart\n * @remarks\n * A polyline connects multiple chart points with line segments.\n * When closed, it forms a polygon that can be filled with color.\n */\nexport interface Polyline {\n /** Unique identifier for this polyline */\n readonly id: string;\n /** Array of chart points that define the polyline */\n readonly points: readonly ChartPoint[];\n /** If true, use curved line segments (not yet supported - uses straight lines) */\n readonly curved: boolean;\n /** If true, connect the first point to the last point */\n readonly closed: boolean;\n /** X-coordinate mode: 'bar_index' or 'bar_time' */\n readonly xloc: 'bar_index' | 'bar_time';\n /** Color of line segments */\n readonly line_color: color;\n /** Fill color for closed polylines (null for no fill) */\n readonly fill_color: color | null;\n /** Line style */\n readonly line_style: 'solid' | 'dotted' | 'dashed';\n /** Line width in pixels */\n readonly line_width: number;\n /** Force display on main pane */\n readonly force_overlay: boolean;\n}\n\n// Series types for chart point and polyline\nexport type series_chartpoint = series<ChartPoint>;\nexport type series_polyline = series<Polyline>;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkWO,MAAM,KAAK;AAOX,MAAM,OAAO;AAAA;AAAA,EAElB,WAAW;AAAA;AAAA,EAEX,UAAU;AACZ;AAKO,MAAM,WAAW;AAAA,EACtB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAChB;",
6
6
  "names": []
7
7
  }
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import type { series_float, int, float, Source, Bar, OHLC } from '../types/index.js';
6
6
  import { Series } from '../runtime/series.js';
7
+ import type { SourceType } from '../input.js';
7
8
  /**
8
9
  * Validates that a series has sufficient data for a given length
9
10
  */
@@ -83,7 +84,8 @@ export declare function getOpen(ohlc: OHLC): series_float;
83
84
  * Extract a specific source from OHLC data or bar array
84
85
  *
85
86
  * @param data - Bar array or OHLC data
86
- * @param source - Source type: 'close', 'open', 'high', 'low', 'hl2', 'hlc3', 'ohlc4'
87
+ * @param source - Source type: 'close', 'open', 'high', 'low', 'hl2', 'hlc3', 'ohlc4', 'hlcc4', 'volume' (NaN for a
88
+ * bar without volume)
87
89
  * @returns Series of the requested source
88
90
  *
89
91
  * @example
@@ -93,7 +95,7 @@ export declare function getOpen(ohlc: OHLC): series_float;
93
95
  * const hl2 = getSource(bars, 'hl2'); // [(105+98)/2, ...]
94
96
  * ```
95
97
  */
96
- export declare function getSource(data: Bar[] | OHLC, source?: 'close' | 'open' | 'high' | 'low' | 'hl2' | 'hlc3' | 'ohlc4' | 'hlcc4'): series_float;
98
+ export declare function getSource(data: Bar[] | OHLC, source?: SourceType): series_float;
97
99
  /**
98
100
  * Creates a Series from bars based on the specified source type.
99
101
  * Unlike getSource() which returns number[], this returns a Series
@@ -110,7 +112,7 @@ export declare function getSource(data: Bar[] | OHLC, source?: 'close' | 'open'
110
112
  * const smaResult = ta.sma(source, 14);
111
113
  * ```
112
114
  */
113
- export declare function getSourceSeries(bars: Bar[], source?: 'open' | 'high' | 'low' | 'close' | 'hl2' | 'hlc3' | 'ohlc4' | 'hlcc4'): Series;
115
+ export declare function getSourceSeries(bars: Bar[], source?: SourceType): Series;
114
116
  /**
115
117
  * Shift (offset) a series forward or backward in time
116
118
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -129,6 +129,8 @@ function getSource(data, source = "close") {
129
129
  return ohlc.open.map((o, i) => (o + ohlc.high[i] + ohlc.low[i] + ohlc.close[i]) / 4);
130
130
  case "hlcc4":
131
131
  return ohlc.high.map((h, i) => (h + ohlc.low[i] + ohlc.close[i] + ohlc.close[i]) / 4);
132
+ case "volume":
133
+ return ohlc.volume ?? ohlc.close.map(() => NaN);
132
134
  }
133
135
  } else {
134
136
  const bars = data;
@@ -149,6 +151,8 @@ function getSource(data, source = "close") {
149
151
  return bars.map((b) => (b.open + b.high + b.low + b.close) / 4);
150
152
  case "hlcc4":
151
153
  return bars.map((b) => (b.high + b.low + b.close + b.close) / 4);
154
+ case "volume":
155
+ return bars.map((b) => b.volume ?? NaN);
152
156
  }
153
157
  }
154
158
  }
@@ -174,6 +178,8 @@ function getSourceSeries(bars, source = "close") {
174
178
  return open.add(high).add(low).add(close).div(4);
175
179
  case "hlcc4":
176
180
  return high.add(low).add(close).add(close).div(4);
181
+ case "volume":
182
+ return import_series.Series.fromBars(bars, "volume");
177
183
  default:
178
184
  return close;
179
185
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/index.ts"],
4
- "sourcesContent": ["/**\n * Utility functions for OakScriptJS\n * These are internal helpers and not part of the PineScript API\n */\n\nimport type { series_float, int, float, Source, Bar, OHLC } from '../types/index.js';\nimport { sma, ema, wma, rma } from '../ta/index.js';\nimport { Series } from '../runtime/series.js';\nimport { isDeleted } from '../drawing/registry.js';\n\n/**\n * Validates that a series has sufficient data for a given length\n */\nexport function validateSeriesLength(source: Source, length: int, functionName: string): void {\n if (source.length < length) {\n console.warn(`${functionName}: Source length (${source.length}) is less than required length (${length})`);\n }\n}\n\n/**\n * Creates a series filled with NaN values\n */\nexport function createNaNSeries(length: int): series_float {\n return new Array(length).fill(NaN);\n}\n\n/**\n * Checks if a value is `na`: NaN, null, undefined, +/-Infinity, or a deleted drawing object\n * (as in PineScript, `na(l)` is true after `line.delete(l)`, and `na(1 / 0)` is true).\n */\nexport function isNA(value: any): boolean {\n return (\n value === null ||\n value === undefined ||\n Number.isNaN(value) ||\n value === Infinity ||\n value === -Infinity ||\n isDeleted(value)\n );\n}\n\n/**\n * Returns the value or a default if it's NA\n */\nexport function nz(value: any, defaultValue: any = 0): any {\n return isNA(value) ? defaultValue : value;\n}\n\n/**\n * PineScript `fixnan(source)`: replaces each `na` value (NaN, null or undefined) with the\n * previous non-`na` value. Values before the first non-`na` value stay `na`.\n * Works for numeric series and for color series (arrays of color strings with `undefined` for `na`).\n */\nexport function fixnan<T>(source: T[]): T[] {\n let last: T | undefined;\n let seen = false;\n return source.map((v) => {\n // PineScript fixnan keeps +/-Infinity (only NaN / null / undefined are replaced)\n if (!(v === null || v === undefined || Number.isNaN(v) || isDeleted(v))) {\n last = v;\n seen = true;\n return v;\n }\n return seen ? (last as T) : v;\n });\n}\n\n/**\n * PineScript history reference `x[offset]` at bar `i` of an array: the value `offset` bars back,\n * `na` (NaN) before the first bar. A negative offset (a later bar) throws, as in PineScript.\n */\nexport function at(source: ArrayLike<number>, i: int, offset: int = 0): float {\n if (offset < 0) {\n throw new RangeError(`at(): the offset must be >= 0 (got ${offset}); a negative offset reads a later bar.`);\n }\n const j = i - offset;\n return j >= 0 && j < source.length ? (source[j] ?? NaN) : NaN;\n}\n\n/**\n * PineScript division: `a / 0` is +/-Infinity (0 / 0 is NaN), as in JavaScript. PineScript keeps the infinite value\n * in comparisons (`1 / 0 > 0` is true) and treats it as `na` in `na()`, `nz()` and plots.\n */\nexport function div(a: float, b: float): float {\n return a / b;\n}\n\n/**\n * Ensures a value is within bounds\n */\nexport function clamp(value: float, min: float, max: float): float {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * Linear interpolation\n */\nexport function lerp(start: float, end: float, t: float): float {\n return start + (end - start) * t;\n}\n\n/**\n * Normalize a value from one range to another\n */\nexport function normalize(value: float, min: float, max: float, newMin: float = 0, newMax: float = 1): float {\n return newMin + ((value - min) * (newMax - newMin)) / (max - min);\n}\n\n// ===== Chart Data Utilities =====\n// These functions help convert between bar arrays and OHLC data structures\n\n/**\n * Creates OHLC data from bar array\n * @param bars - Array of bar data\n * @returns OHLC data structure\n */\nexport function ohlcFromBars(bars: Bar[]): OHLC {\n return {\n open: bars.map(b => b.open),\n high: bars.map(b => b.high),\n low: bars.map(b => b.low),\n close: bars.map(b => b.close),\n };\n}\n\n/**\n * Gets close prices from OHLC\n * @param ohlc - OHLC data\n * @returns Close price series\n */\nexport function getClose(ohlc: OHLC): series_float {\n return ohlc.close;\n}\n\n/**\n * Gets high prices from OHLC\n * @param ohlc - OHLC data\n * @returns High price series\n */\nexport function getHigh(ohlc: OHLC): series_float {\n return ohlc.high;\n}\n\n/**\n * Gets low prices from OHLC\n * @param ohlc - OHLC data\n * @returns Low price series\n */\nexport function getLow(ohlc: OHLC): series_float {\n return ohlc.low;\n}\n\n/**\n * Gets open prices from OHLC\n * @param ohlc - OHLC data\n * @returns Open price series\n */\nexport function getOpen(ohlc: OHLC): series_float {\n return ohlc.open;\n}\n\n// ===== Source Extraction Utilities =====\n\n/**\n * Extract a specific source from OHLC data or bar array\n *\n * @param data - Bar array or OHLC data\n * @param source - Source type: 'close', 'open', 'high', 'low', 'hl2', 'hlc3', 'ohlc4'\n * @returns Series of the requested source\n *\n * @example\n * ```typescript\n * const bars = [{ open: 100, high: 105, low: 98, close: 102 }, ...];\n * const closes = getSource(bars, 'close'); // [102, ...]\n * const hl2 = getSource(bars, 'hl2'); // [(105+98)/2, ...]\n * ```\n */\nexport function getSource(\n data: Bar[] | OHLC,\n source: 'close' | 'open' | 'high' | 'low' | 'hl2' | 'hlc3' | 'ohlc4' | 'hlcc4' = 'close'\n): series_float {\n // Check if data is OHLC structure\n const isOHLC = 'open' in data && Array.isArray(data.open);\n\n if (isOHLC) {\n const ohlc = data as OHLC;\n switch (source) {\n case 'close': return ohlc.close;\n case 'open': return ohlc.open;\n case 'high': return ohlc.high;\n case 'low': return ohlc.low;\n case 'hl2': return ohlc.high.map((h, i) => (h + ohlc.low[i]!) / 2);\n case 'hlc3': return ohlc.high.map((h, i) => (h + ohlc.low[i]! + ohlc.close[i]!) / 3);\n case 'ohlc4': return ohlc.open.map((o, i) => (o + ohlc.high[i]! + ohlc.low[i]! + ohlc.close[i]!) / 4);\n case 'hlcc4': return ohlc.high.map((h, i) => (h + ohlc.low[i]! + ohlc.close[i]! + ohlc.close[i]!) / 4);\n }\n } else {\n const bars = data as Bar[];\n switch (source) {\n case 'close': return bars.map(b => b.close);\n case 'open': return bars.map(b => b.open);\n case 'high': return bars.map(b => b.high);\n case 'low': return bars.map(b => b.low);\n case 'hl2': return bars.map(b => (b.high + b.low) / 2);\n case 'hlc3': return bars.map(b => (b.high + b.low + b.close) / 3);\n case 'ohlc4': return bars.map(b => (b.open + b.high + b.low + b.close) / 4);\n case 'hlcc4': return bars.map(b => (b.high + b.low + b.close + b.close) / 4);\n }\n }\n}\n\n/**\n * Creates a Series from bars based on the specified source type.\n * Unlike getSource() which returns number[], this returns a Series\n * with chainable methods like .add(), .sub(), .mul(), .div()\n *\n * @param bars - Array of bar data\n * @param source - Source type (default: 'close')\n * @returns Series object for the requested source\n *\n * @example\n * ```typescript\n * const bars = [{ time: 1, open: 100, high: 105, low: 98, close: 102, volume: 1000 }, ...];\n * const source = getSourceSeries(bars, 'hlc3');\n * const smaResult = ta.sma(source, 14);\n * ```\n */\nexport function getSourceSeries(\n bars: Bar[],\n source: 'open' | 'high' | 'low' | 'close' | 'hl2' | 'hlc3' | 'ohlc4' | 'hlcc4' = 'close'\n): Series {\n const open = new Series(bars, (bar) => bar.open);\n const high = new Series(bars, (bar) => bar.high);\n const low = new Series(bars, (bar) => bar.low);\n const close = new Series(bars, (bar) => bar.close);\n\n switch (source) {\n case 'open': return open;\n case 'high': return high;\n case 'low': return low;\n case 'close': return close;\n case 'hl2': return high.add(low).div(2);\n case 'hlc3': return high.add(low).add(close).div(3);\n case 'ohlc4': return open.add(high).add(low).add(close).div(4);\n case 'hlcc4': return high.add(low).add(close).add(close).div(4);\n default: return close;\n }\n}\n\n// ===== Series Manipulation Utilities =====\n\n/**\n * Shift (offset) a series forward or backward in time\n *\n * @param series - Series to shift\n * @param offset - Number of bars to shift (positive = forward/right, negative = backward/left)\n * @returns Shifted series with NaN padding\n *\n * @example\n * ```typescript\n * const values = [1, 2, 3, 4, 5];\n * shift(values, 2); // [NaN, NaN, 1, 2, 3] (shift forward)\n * shift(values, -2); // [3, 4, 5, NaN, NaN] (shift backward)\n * ```\n */\nexport function shift(series: series_float, offset: int): series_float {\n if (offset === 0) return series;\n\n if (offset > 0) {\n // Shift forward: add NaN at start, remove from end\n return Array(offset).fill(NaN).concat(series.slice(0, -offset));\n } else {\n // Shift backward: remove from start, add NaN at end\n return series.slice(-offset).concat(Array(-offset).fill(NaN));\n }\n}\n\n/**\n * Apply smoothing to a series using a specified method\n *\n * @param series - Series to smooth\n * @param method - Smoothing method: 'SMA', 'EMA', 'WMA', 'RMA'\n * @param length - Smoothing length\n * @returns Smoothed series\n *\n * @example\n * ```typescript\n * const values = [10, 11, 12, 13, 14];\n * const smoothed = smooth(values, 'EMA', 3);\n * ```\n *\n * @remarks\n * This is a convenience function that delegates to the appropriate ta function.\n * Import this from utils, not from ta namespace.\n */\nexport function smooth(\n series: series_float,\n method: 'SMA' | 'EMA' | 'WMA' | 'RMA',\n length: int\n): series_float {\n switch (method.toUpperCase()) {\n case 'SMA': return sma(series, length);\n case 'EMA': return ema(series, length);\n case 'WMA': return wma(series, length);\n case 'RMA': return rma(series, length);\n default:\n throw new Error(`Unknown smoothing method: ${method}`);\n }\n}\n\n/**\n * Format series values with timestamps for output\n *\n * @param values - Series of values to format\n * @param timestamps - Array of timestamps (optional)\n * @returns Array of objects with time and value properties\n *\n * @example\n * ```typescript\n * const values = [100, 101, NaN, 103];\n * const times = [1, 2, 3, 4];\n * const formatted = formatOutput(values, times);\n * // [{ time: 1, value: 100 }, { time: 2, value: 101 }, { time: 3, value: null }, { time: 4, value: 103 }]\n * ```\n */\nexport function formatOutput(\n values: series_float,\n timestamps?: number[]\n): Array<{ time: number; value: number | null }> {\n return values.map((value, index) => ({\n time: timestamps ? timestamps[index]! : index,\n value: isNaN(value) ? null : value\n }));\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * Utility functions for OakScriptJS\n * These are internal helpers and not part of the PineScript API\n */\n\nimport type { series_float, int, float, Source, Bar, OHLC } from '../types/index.js';\nimport { sma, ema, wma, rma } from '../ta/index.js';\nimport { Series } from '../runtime/series.js';\nimport type { SourceType } from '../input.js';\nimport { isDeleted } from '../drawing/registry.js';\n\n/**\n * Validates that a series has sufficient data for a given length\n */\nexport function validateSeriesLength(source: Source, length: int, functionName: string): void {\n if (source.length < length) {\n console.warn(`${functionName}: Source length (${source.length}) is less than required length (${length})`);\n }\n}\n\n/**\n * Creates a series filled with NaN values\n */\nexport function createNaNSeries(length: int): series_float {\n return new Array(length).fill(NaN);\n}\n\n/**\n * Checks if a value is `na`: NaN, null, undefined, +/-Infinity, or a deleted drawing object\n * (as in PineScript, `na(l)` is true after `line.delete(l)`, and `na(1 / 0)` is true).\n */\nexport function isNA(value: any): boolean {\n return (\n value === null ||\n value === undefined ||\n Number.isNaN(value) ||\n value === Infinity ||\n value === -Infinity ||\n isDeleted(value)\n );\n}\n\n/**\n * Returns the value or a default if it's NA\n */\nexport function nz(value: any, defaultValue: any = 0): any {\n return isNA(value) ? defaultValue : value;\n}\n\n/**\n * PineScript `fixnan(source)`: replaces each `na` value (NaN, null or undefined) with the\n * previous non-`na` value. Values before the first non-`na` value stay `na`.\n * Works for numeric series and for color series (arrays of color strings with `undefined` for `na`).\n */\nexport function fixnan<T>(source: T[]): T[] {\n let last: T | undefined;\n let seen = false;\n return source.map((v) => {\n // PineScript fixnan keeps +/-Infinity (only NaN / null / undefined are replaced)\n if (!(v === null || v === undefined || Number.isNaN(v) || isDeleted(v))) {\n last = v;\n seen = true;\n return v;\n }\n return seen ? (last as T) : v;\n });\n}\n\n/**\n * PineScript history reference `x[offset]` at bar `i` of an array: the value `offset` bars back,\n * `na` (NaN) before the first bar. A negative offset (a later bar) throws, as in PineScript.\n */\nexport function at(source: ArrayLike<number>, i: int, offset: int = 0): float {\n if (offset < 0) {\n throw new RangeError(`at(): the offset must be >= 0 (got ${offset}); a negative offset reads a later bar.`);\n }\n const j = i - offset;\n return j >= 0 && j < source.length ? (source[j] ?? NaN) : NaN;\n}\n\n/**\n * PineScript division: `a / 0` is +/-Infinity (0 / 0 is NaN), as in JavaScript. PineScript keeps the infinite value\n * in comparisons (`1 / 0 > 0` is true) and treats it as `na` in `na()`, `nz()` and plots.\n */\nexport function div(a: float, b: float): float {\n return a / b;\n}\n\n/**\n * Ensures a value is within bounds\n */\nexport function clamp(value: float, min: float, max: float): float {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * Linear interpolation\n */\nexport function lerp(start: float, end: float, t: float): float {\n return start + (end - start) * t;\n}\n\n/**\n * Normalize a value from one range to another\n */\nexport function normalize(value: float, min: float, max: float, newMin: float = 0, newMax: float = 1): float {\n return newMin + ((value - min) * (newMax - newMin)) / (max - min);\n}\n\n// ===== Chart Data Utilities =====\n// These functions help convert between bar arrays and OHLC data structures\n\n/**\n * Creates OHLC data from bar array\n * @param bars - Array of bar data\n * @returns OHLC data structure\n */\nexport function ohlcFromBars(bars: Bar[]): OHLC {\n return {\n open: bars.map(b => b.open),\n high: bars.map(b => b.high),\n low: bars.map(b => b.low),\n close: bars.map(b => b.close),\n };\n}\n\n/**\n * Gets close prices from OHLC\n * @param ohlc - OHLC data\n * @returns Close price series\n */\nexport function getClose(ohlc: OHLC): series_float {\n return ohlc.close;\n}\n\n/**\n * Gets high prices from OHLC\n * @param ohlc - OHLC data\n * @returns High price series\n */\nexport function getHigh(ohlc: OHLC): series_float {\n return ohlc.high;\n}\n\n/**\n * Gets low prices from OHLC\n * @param ohlc - OHLC data\n * @returns Low price series\n */\nexport function getLow(ohlc: OHLC): series_float {\n return ohlc.low;\n}\n\n/**\n * Gets open prices from OHLC\n * @param ohlc - OHLC data\n * @returns Open price series\n */\nexport function getOpen(ohlc: OHLC): series_float {\n return ohlc.open;\n}\n\n// ===== Source Extraction Utilities =====\n\n/**\n * Extract a specific source from OHLC data or bar array\n *\n * @param data - Bar array or OHLC data\n * @param source - Source type: 'close', 'open', 'high', 'low', 'hl2', 'hlc3', 'ohlc4', 'hlcc4', 'volume' (NaN for a\n * bar without volume)\n * @returns Series of the requested source\n *\n * @example\n * ```typescript\n * const bars = [{ open: 100, high: 105, low: 98, close: 102 }, ...];\n * const closes = getSource(bars, 'close'); // [102, ...]\n * const hl2 = getSource(bars, 'hl2'); // [(105+98)/2, ...]\n * ```\n */\nexport function getSource(\n data: Bar[] | OHLC,\n source: SourceType = 'close'\n): series_float {\n // Check if data is OHLC structure\n const isOHLC = 'open' in data && Array.isArray(data.open);\n\n if (isOHLC) {\n const ohlc = data as OHLC;\n switch (source) {\n case 'close': return ohlc.close;\n case 'open': return ohlc.open;\n case 'high': return ohlc.high;\n case 'low': return ohlc.low;\n case 'hl2': return ohlc.high.map((h, i) => (h + ohlc.low[i]!) / 2);\n case 'hlc3': return ohlc.high.map((h, i) => (h + ohlc.low[i]! + ohlc.close[i]!) / 3);\n case 'ohlc4': return ohlc.open.map((o, i) => (o + ohlc.high[i]! + ohlc.low[i]! + ohlc.close[i]!) / 4);\n case 'hlcc4': return ohlc.high.map((h, i) => (h + ohlc.low[i]! + ohlc.close[i]! + ohlc.close[i]!) / 4);\n case 'volume': return ohlc.volume ?? ohlc.close.map(() => NaN);\n }\n } else {\n const bars = data as Bar[];\n switch (source) {\n case 'close': return bars.map(b => b.close);\n case 'open': return bars.map(b => b.open);\n case 'high': return bars.map(b => b.high);\n case 'low': return bars.map(b => b.low);\n case 'hl2': return bars.map(b => (b.high + b.low) / 2);\n case 'hlc3': return bars.map(b => (b.high + b.low + b.close) / 3);\n case 'ohlc4': return bars.map(b => (b.open + b.high + b.low + b.close) / 4);\n case 'hlcc4': return bars.map(b => (b.high + b.low + b.close + b.close) / 4);\n case 'volume': return bars.map(b => b.volume ?? NaN);\n }\n }\n}\n\n/**\n * Creates a Series from bars based on the specified source type.\n * Unlike getSource() which returns number[], this returns a Series\n * with chainable methods like .add(), .sub(), .mul(), .div()\n *\n * @param bars - Array of bar data\n * @param source - Source type (default: 'close')\n * @returns Series object for the requested source\n *\n * @example\n * ```typescript\n * const bars = [{ time: 1, open: 100, high: 105, low: 98, close: 102, volume: 1000 }, ...];\n * const source = getSourceSeries(bars, 'hlc3');\n * const smaResult = ta.sma(source, 14);\n * ```\n */\nexport function getSourceSeries(\n bars: Bar[],\n source: SourceType = 'close'\n): Series {\n const open = new Series(bars, (bar) => bar.open);\n const high = new Series(bars, (bar) => bar.high);\n const low = new Series(bars, (bar) => bar.low);\n const close = new Series(bars, (bar) => bar.close);\n\n switch (source) {\n case 'open': return open;\n case 'high': return high;\n case 'low': return low;\n case 'close': return close;\n case 'hl2': return high.add(low).div(2);\n case 'hlc3': return high.add(low).add(close).div(3);\n case 'ohlc4': return open.add(high).add(low).add(close).div(4);\n case 'hlcc4': return high.add(low).add(close).add(close).div(4);\n case 'volume': return Series.fromBars(bars, 'volume');\n default: return close;\n }\n}\n\n// ===== Series Manipulation Utilities =====\n\n/**\n * Shift (offset) a series forward or backward in time\n *\n * @param series - Series to shift\n * @param offset - Number of bars to shift (positive = forward/right, negative = backward/left)\n * @returns Shifted series with NaN padding\n *\n * @example\n * ```typescript\n * const values = [1, 2, 3, 4, 5];\n * shift(values, 2); // [NaN, NaN, 1, 2, 3] (shift forward)\n * shift(values, -2); // [3, 4, 5, NaN, NaN] (shift backward)\n * ```\n */\nexport function shift(series: series_float, offset: int): series_float {\n if (offset === 0) return series;\n\n if (offset > 0) {\n // Shift forward: add NaN at start, remove from end\n return Array(offset).fill(NaN).concat(series.slice(0, -offset));\n } else {\n // Shift backward: remove from start, add NaN at end\n return series.slice(-offset).concat(Array(-offset).fill(NaN));\n }\n}\n\n/**\n * Apply smoothing to a series using a specified method\n *\n * @param series - Series to smooth\n * @param method - Smoothing method: 'SMA', 'EMA', 'WMA', 'RMA'\n * @param length - Smoothing length\n * @returns Smoothed series\n *\n * @example\n * ```typescript\n * const values = [10, 11, 12, 13, 14];\n * const smoothed = smooth(values, 'EMA', 3);\n * ```\n *\n * @remarks\n * This is a convenience function that delegates to the appropriate ta function.\n * Import this from utils, not from ta namespace.\n */\nexport function smooth(\n series: series_float,\n method: 'SMA' | 'EMA' | 'WMA' | 'RMA',\n length: int\n): series_float {\n switch (method.toUpperCase()) {\n case 'SMA': return sma(series, length);\n case 'EMA': return ema(series, length);\n case 'WMA': return wma(series, length);\n case 'RMA': return rma(series, length);\n default:\n throw new Error(`Unknown smoothing method: ${method}`);\n }\n}\n\n/**\n * Format series values with timestamps for output\n *\n * @param values - Series of values to format\n * @param timestamps - Array of timestamps (optional)\n * @returns Array of objects with time and value properties\n *\n * @example\n * ```typescript\n * const values = [100, 101, NaN, 103];\n * const times = [1, 2, 3, 4];\n * const formatted = formatOutput(values, times);\n * // [{ time: 1, value: 100 }, { time: 2, value: 101 }, { time: 3, value: null }, { time: 4, value: 103 }]\n * ```\n */\nexport function formatOutput(\n values: series_float,\n timestamps?: number[]\n): Array<{ time: number; value: number | null }> {\n return values.map((value, index) => ({\n time: timestamps ? timestamps[index]! : index,\n value: isNaN(value) ? null : value\n }));\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -56,7 +56,7 @@ export { indicator, type IndicatorMetadataConfig, type InputDefinition, type Ind
56
56
  export { input, type InputValue, type IntInputOptions, type FloatInputOptions, type SourceInputOptions, type BoolInputOptions, type StringInputOptions, type TimeInputOptions, type SourceType, } from './input.js';
57
57
  export { plot as plotHelper, createPlot, type Time, type TimeValuePair, type PlotOptions as PlotHelperOptions, type PlotResult, } from './plot.js';
58
58
  export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, } from './runtime/runtime.js';
59
- export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_symbol, input_time, } from './runtime/inputs.js';
59
+ export { input_int, input_float, input_bool, input_string, input_text_area, input_source, input_timeframe, input_session, input_symbol, input_time, } from './runtime/inputs.js';
60
60
  export { isInputActive } from './runtime/input-active.js';
61
61
  export type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputCondition, InputOptions, OhlcvData, PlotConfig, HLineConfig, FillConfig, ArrowConfig, CandleConfig, } from './runtime/types.js';
62
62
  export { STRATEGY_CONSTANTS, STRATEGY_DEFAULTS, STRATEGY_NUMBER_VARIABLES, STRATEGY_TEXT_VARIABLES, } from './strategy/index.js';
@@ -64,7 +64,7 @@ export type * from './strategy/index.js';
64
64
  export { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter.js';
65
65
  export type { LightweightSeriesDefinitions } from './runtime/adapters/LightweightChartsAdapter.js';
66
66
  export { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter.js';
67
- export declare const VERSION = "0.11.4";
67
+ export declare const VERSION = "0.11.6";
68
68
  /**
69
69
  * Library information
70
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAG3J,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEtH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,CAAC;AAGd,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,GAAG,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGzH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EACL,SAAS,EACT,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,EACL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,UAAU,EACV,KAAK,IAAI,EACT,KAAK,aAAa,EAClB,KAAK,WAAW,IAAI,iBAAiB,EACrC,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,mBAAmB,qBAAqB,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,YAAY,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;CAiBhB,CAAC;AAKF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAE5F"}
package/dist/esm/index.js CHANGED
@@ -71,14 +71,14 @@ export { input, } from './input.js';
71
71
  export { plot as plotHelper, createPlot, } from './plot.js';
72
72
  // Runtime exports - global context runtime (setContext, plot, hline) drawing through a ChartAdapter
73
73
  export { setContext, clearContext, getContext, registerCalculate, recalculate, plot, hline, clearPlots, } from './runtime/runtime.js';
74
- export { input_int, input_float, input_bool, input_string, input_source, input_timeframe, input_session, input_symbol, input_time, } from './runtime/inputs.js';
74
+ export { input_int, input_float, input_bool, input_string, input_text_area, input_source, input_timeframe, input_session, input_symbol, input_time, } from './runtime/inputs.js';
75
75
  export { isInputActive } from './runtime/input-active.js';
76
76
  // Strategy types and constants (the script API forwards strategy.* calls to a host engine)
77
77
  export { STRATEGY_CONSTANTS, STRATEGY_DEFAULTS, STRATEGY_NUMBER_VARIABLES, STRATEGY_TEXT_VARIABLES, } from './strategy/index.js';
78
78
  export { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter.js';
79
79
  export { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter.js';
80
80
  // Version
81
- export const VERSION = '0.11.4';
81
+ export const VERSION = '0.11.6';
82
82
  /**
83
83
  * Library information
84
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mBAAmB;AACnB,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,iDAAiD;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAE3J,gHAAgH;AAChH,OAAO,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE7D,6HAA6H;AAC7H,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,GAGX,MAAM,uBAAuB,CAAC;AAE/B,sHAAsH;AACtH,sHAAsH;AACtH,WAAW;AACX,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,SAAS,GAKV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAEjF,4GAA4G;AAC5G,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAkB,MAAM,wBAAwB,CAAC;AACtH,gGAAgG;AAChG,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,GAIhB,MAAM,qBAAqB,CAAC;AAE7B,mDAAmD;AACnD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qDAAqD;AACrD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,CAAC;AAuBd,oDAAoD;AACpD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,GAAG,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE9E,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEzH,kCAAkC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,8EAA8E;AAC9E,OAAO,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAExD,kCAAkC;AAClC,OAAO,EACL,SAAS,GAMV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,GASN,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,UAAU,GAKX,MAAM,WAAW,CAAC;AAEnB,oGAAoG;AACpG,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAmB1D,2FAA2F;AAC3F,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,4DAA4D;IACzE,QAAQ,EAAE;QACR,MAAM,EAAE,mCAAmC;QAC3C,EAAE,EAAE,uDAAuD;QAC3D,MAAM,EAAE,wGAAwG;QAChH,OAAO,EAAE,uDAAuD;QAChE,SAAS,EAAE,mDAAmD;KAC/D;IACD,UAAU,EAAE;QACV,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;QACnF,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;QACxF,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;QACnD,SAAS,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;KAC9D;CACF,CAAC;AAEF,yEAAyE;AACzE,2EAA2E;AAE3E;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAAmB,EAAE,MAAe,EAAE,QAAiB;IACpF,8DAA8D;AAChE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export interface InputValue<T> {
10
10
  /** Input type identifier */
11
- type: 'int' | 'float' | 'source' | 'bool' | 'string' | 'timeframe' | 'session' | 'time' | 'symbol';
11
+ type: 'int' | 'float' | 'source' | 'bool' | 'string' | 'text_area' | 'timeframe' | 'session' | 'time' | 'symbol';
12
12
  /** Default value */
13
13
  defaultValue: T;
14
14
  /** Current value (initially equals defaultValue) */
@@ -81,9 +81,9 @@ export interface TimeInputOptions {
81
81
  title?: string;
82
82
  }
83
83
  /**
84
- * Source type for price data
84
+ * Source type for price data (PineScript `input.source` built-in sources, `volume` included)
85
85
  */
86
- export type SourceType = 'open' | 'high' | 'low' | 'close' | 'hl2' | 'hlc3' | 'ohlc4' | 'hlcc4';
86
+ export type SourceType = 'open' | 'high' | 'low' | 'close' | 'hl2' | 'hlc3' | 'ohlc4' | 'hlcc4' | 'volume';
87
87
  /**
88
88
  * Input helper functions for creating indicator parameters
89
89
  */
@@ -153,6 +153,22 @@ export declare const input: {
153
153
  * ```
154
154
  */
155
155
  string(defaultValue: string, options?: StringInputOptions): InputValue<string>;
156
+ /**
157
+ * Create a multi-line text input parameter (PineScript `input.text_area`, #184)
158
+ * @param defaultValue - Default text; lines are separated by "
159
+ "
160
+ * @param options - Additional options (title)
161
+ * @returns Input value object
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * const list = input.text_area('AAPL, MSFT
166
+ BTCUSD', { title: 'Symbol list' });
167
+ * console.log(list.value); // 'AAPL, MSFT
168
+ BTCUSD'
169
+ * ```
170
+ */
171
+ text_area(defaultValue: string, options?: TimeInputOptions): InputValue<string>;
156
172
  /**
157
173
  * Create a timeframe input parameter (PineScript `input.timeframe`)
158
174
  * @param defaultValue - Default timeframe string ("60", "1D", "W"); "" means the chart timeframe
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/input.ts"],"names":[],"mappings":"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"}
package/dist/esm/input.js CHANGED
@@ -71,7 +71,7 @@ export const input = {
71
71
  defaultValue,
72
72
  value: defaultValue,
73
73
  title: options.title,
74
- options: ['open', 'high', 'low', 'close', 'hl2', 'hlc3', 'ohlc4', 'hlcc4'],
74
+ options: ['open', 'high', 'low', 'close', 'hl2', 'hlc3', 'ohlc4', 'hlcc4', 'volume'],
75
75
  };
76
76
  },
77
77
  /**
@@ -115,6 +115,29 @@ export const input = {
115
115
  options: options.options,
116
116
  };
117
117
  },
118
+ /**
119
+ * Create a multi-line text input parameter (PineScript `input.text_area`, #184)
120
+ * @param defaultValue - Default text; lines are separated by "
121
+ "
122
+ * @param options - Additional options (title)
123
+ * @returns Input value object
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const list = input.text_area('AAPL, MSFT
128
+ BTCUSD', { title: 'Symbol list' });
129
+ * console.log(list.value); // 'AAPL, MSFT
130
+ BTCUSD'
131
+ * ```
132
+ */
133
+ text_area(defaultValue, options = {}) {
134
+ return {
135
+ type: 'text_area',
136
+ defaultValue,
137
+ value: defaultValue,
138
+ title: options.title,
139
+ };
140
+ },
118
141
  /**
119
142
  * Create a timeframe input parameter (PineScript `input.timeframe`)
120
143
  * @param defaultValue - Default timeframe string ("60", "1D", "W"); "" means the chart timeframe
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/input.ts"],"names":[],"mappings":"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"}