oakscriptjs 0.11.1 → 0.11.2

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 (60) hide show
  1. package/dist/cjs/callsite/index.d.ts.map +1 -1
  2. package/dist/cjs/callsite/index.js +5 -2
  3. package/dist/cjs/callsite/index.js.map +2 -2
  4. package/dist/cjs/index.d.ts +2 -2
  5. package/dist/cjs/index.d.ts.map +1 -1
  6. package/dist/cjs/index.js +2 -1
  7. package/dist/cjs/index.js.map +2 -2
  8. package/dist/cjs/script/index.d.ts +1 -1
  9. package/dist/cjs/script/index.d.ts.map +1 -1
  10. package/dist/cjs/script/index.js +6 -51
  11. package/dist/cjs/script/index.js.map +2 -2
  12. package/dist/cjs/session/calendar.d.ts.map +1 -1
  13. package/dist/cjs/session/calendar.js +1 -0
  14. package/dist/cjs/session/calendar.js.map +2 -2
  15. package/dist/cjs/session/context.d.ts +20 -4
  16. package/dist/cjs/session/context.d.ts.map +1 -1
  17. package/dist/cjs/session/context.js +65 -5
  18. package/dist/cjs/session/context.js.map +2 -2
  19. package/dist/cjs/ta/index.d.ts +31 -29
  20. package/dist/cjs/ta/index.d.ts.map +1 -1
  21. package/dist/cjs/ta/index.js +10 -12
  22. package/dist/cjs/ta/index.js.map +3 -3
  23. package/dist/cjs/table/index.d.ts +10 -5
  24. package/dist/cjs/table/index.d.ts.map +1 -1
  25. package/dist/cjs/table/index.js +11 -2
  26. package/dist/cjs/table/index.js.map +2 -2
  27. package/dist/esm/callsite/index.d.ts.map +1 -1
  28. package/dist/esm/callsite/index.js +5 -2
  29. package/dist/esm/callsite/index.js.map +1 -1
  30. package/dist/esm/index.d.ts +2 -2
  31. package/dist/esm/index.d.ts.map +1 -1
  32. package/dist/esm/index.js +5 -4
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/script/index.d.ts +1 -1
  35. package/dist/esm/script/index.d.ts.map +1 -1
  36. package/dist/esm/script/index.js +7 -62
  37. package/dist/esm/script/index.js.map +1 -1
  38. package/dist/esm/session/calendar.d.ts.map +1 -1
  39. package/dist/esm/session/calendar.js +4 -0
  40. package/dist/esm/session/calendar.js.map +1 -1
  41. package/dist/esm/session/context.d.ts +20 -4
  42. package/dist/esm/session/context.d.ts.map +1 -1
  43. package/dist/esm/session/context.js +81 -7
  44. package/dist/esm/session/context.js.map +1 -1
  45. package/dist/esm/ta/index.d.ts +31 -29
  46. package/dist/esm/ta/index.d.ts.map +1 -1
  47. package/dist/esm/ta/index.js +45 -45
  48. package/dist/esm/ta/index.js.map +1 -1
  49. package/dist/esm/table/index.d.ts +10 -5
  50. package/dist/esm/table/index.d.ts.map +1 -1
  51. package/dist/esm/table/index.js +23 -8
  52. package/dist/esm/table/index.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/callsite/index.ts +5 -2
  55. package/src/index.ts +6 -3
  56. package/src/script/index.ts +7 -65
  57. package/src/session/calendar.ts +3 -0
  58. package/src/session/context.ts +99 -7
  59. package/src/ta/index.ts +46 -45
  60. package/src/table/index.ts +22 -6
@@ -141,8 +141,7 @@ function rsi(source, length) {
141
141
  const y = length[i] ?? NaN;
142
142
  if ((0, import_compare.eq)(y, 0)) return 100;
143
143
  if ((0, import_compare.eq)(x, 0)) return 0;
144
- const r = 100 - 100 / (1 + x / y);
145
- return Number.isFinite(r) ? r : NaN;
144
+ return 100 - 100 / (1 + x / y);
146
145
  });
147
146
  }
148
147
  (0, import_limits.checkPositiveLength)("rsi", length, 0, "y");
@@ -201,7 +200,7 @@ function lastValues(source, i, length) {
201
200
  const values = [];
202
201
  for (let j = i; j >= 0 && values.length < length; j--) {
203
202
  const x = source[j];
204
- if (!Number.isNaN(x)) values.push(x);
203
+ if (Number.isFinite(x)) values.push(x);
205
204
  }
206
205
  return values.length === length ? values : null;
207
206
  }
@@ -249,7 +248,7 @@ function keptValues(source) {
249
248
  const last = new Int32Array(source.length);
250
249
  for (let i = 0; i < source.length; i++) {
251
250
  const x = source[i];
252
- if (!Number.isNaN(x)) {
251
+ if (Number.isFinite(x)) {
253
252
  values.push(x);
254
253
  bars.push(i);
255
254
  }
@@ -519,7 +518,7 @@ function monotonic(source, length, step) {
519
518
  for (let i = 0; i < source.length; i++) {
520
519
  const v = source[i];
521
520
  const prev = i > 0 ? source[i - 1] : NaN;
522
- if (!Number.isNaN(v) && !Number.isNaN(prev)) count = step(v, prev) ? count + 1 : 0;
521
+ if (Number.isFinite(v) && Number.isFinite(prev)) count = step(v, prev) ? count + 1 : 0;
523
522
  result.push(count >= length);
524
523
  }
525
524
  return result;
@@ -611,7 +610,7 @@ function median(source, length) {
611
610
  const mid = Math.floor(len / 2);
612
611
  for (let i = 0; i < n; i++) {
613
612
  const x = source[i];
614
- if (!Number.isNaN(x)) {
613
+ if (Number.isFinite(x)) {
615
614
  kept[count++] = x;
616
615
  sorted.splice(bound(x, false), 0, x);
617
616
  if (count > len) sorted.splice(bound(kept[count - 1 - len], true) - 1, 1);
@@ -743,10 +742,9 @@ function stoch(source, high, low, length) {
743
742
  const highestValues = highest(high, length);
744
743
  let previous = NaN;
745
744
  for (let i = 0; i < source.length; i++) {
746
- const value = source[i];
747
745
  const lo = lowestValues[i];
748
- const range2 = highestValues[i] - lo;
749
- if (!Number.isNaN(value) && !Number.isNaN(range2) && range2 !== 0) previous = 100 * (value - lo) / range2;
746
+ const k = 100 * (source[i] - lo) / (highestValues[i] - lo);
747
+ if (!Number.isNaN(k)) previous = k;
750
748
  result.push(previous);
751
749
  }
752
750
  return result;
@@ -1132,14 +1130,14 @@ function lowestbars(source, length) {
1132
1130
  function max(source) {
1133
1131
  let best = NaN;
1134
1132
  return source.map((x) => {
1135
- if (!Number.isNaN(x) && !(x <= best)) best = x;
1133
+ if (Number.isFinite(x) && !(x <= best)) best = x;
1136
1134
  return best;
1137
1135
  });
1138
1136
  }
1139
1137
  function min(source) {
1140
1138
  let best = NaN;
1141
1139
  return source.map((x) => {
1142
- if (!Number.isNaN(x) && !(x >= best)) best = x;
1140
+ if (Number.isFinite(x) && !(x >= best)) best = x;
1143
1141
  return best;
1144
1142
  });
1145
1143
  }
@@ -1160,7 +1158,7 @@ function mode(source, length) {
1160
1158
  const seen = [];
1161
1159
  for (let i = 0; i < source.length; i++) {
1162
1160
  const v = source[i];
1163
- if (!Number.isNaN(v)) seen.push(v);
1161
+ if (Number.isFinite(v)) seen.push(v);
1164
1162
  if (seen.length < len) {
1165
1163
  result.push(NaN);
1166
1164
  continue;