@forgecharts/sdk 1.5.54 → 1.5.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/TimeScale.d.ts.map +1 -1
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -1
- package/dist/index.js +51 -7
- package/dist/index.js.map +1 -1
- package/dist/internal.js +51 -7
- package/dist/internal.js.map +1 -1
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -1
- package/dist/react/index.js +51 -7
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +51 -7
- package/dist/react/internal.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeScale.d.ts","sourceRoot":"","sources":["../../src/core/TimeScale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAY,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,uFAAuF;IACvF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,0FAA0F;IAC1F,gBAAgB,EAAE,cAAc,EAAE,CAAM;IACxC,yEAAyE;IACzE,gBAAgB,SAAM;IAGtB,4EAA4E;IAC5E,OAAO,CAAC,SAAS,CAAgB;IACjC;kFAC8E;IAC9E,OAAO,CAAC,YAAY,CAAK;gBAEb,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;IAenF,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,eAAe,IAAI,SAAS,CAE/B;IAED,qFAAqF;IACrF,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIvC,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBvC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA4BjC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAiBhC,sEAAsE;IACtE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAID;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAYlD;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAY/C;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAA0B,GAAG,IAAI;IA0BnF;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAOlC;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IASvC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"TimeScale.d.ts","sourceRoot":"","sources":["../../src/core/TimeScale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAY,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,uFAAuF;IACvF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,0FAA0F;IAC1F,gBAAgB,EAAE,cAAc,EAAE,CAAM;IACxC,yEAAyE;IACzE,gBAAgB,SAAM;IAGtB,4EAA4E;IAC5E,OAAO,CAAC,SAAS,CAAgB;IACjC;kFAC8E;IAC9E,OAAO,CAAC,YAAY,CAAK;gBAEb,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;IAenF,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,eAAe,IAAI,SAAS,CAE/B;IAED,qFAAqF;IACrF,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIvC,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBvC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA4BjC;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAiBhC,sEAAsE;IACtE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAID;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAYlD;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAY/C;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAA0B,GAAG,IAAI;IA0BnF;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAOlC;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IASvC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAuM1E;;;OAGG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAoBhG,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,aAAa;CAsBtB;AAGD,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatafeedConnector.d.ts","sourceRoot":"","sources":["../../src/datafeed/DatafeedConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"DatafeedConnector.d.ts","sourceRoot":"","sources":["../../src/datafeed/DatafeedConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAwFhD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAEzD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAS;IAE3B,oEAAoE;IACpE,OAAO,CAAC,cAAc,CAAS;IAC/B,6FAA6F;IAC7F,OAAO,CAAC,cAAc,CAAS;IAC/B,gFAAgF;IAChF,OAAO,CAAC,eAAe,CAAK;IAC5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAuB;IAC9C;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAa;IAErC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAA8C;gBAE3D,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB;IAQ/E;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAuNnD;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAKrD;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IA0G3D,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,aAAa;CAoBtB"}
|
package/dist/index.js
CHANGED
|
@@ -483,9 +483,17 @@ var TimeScale = class {
|
|
|
483
483
|
const toIdx = this.timeToIndex(this._visibleRange.to);
|
|
484
484
|
const idxSpan = toIdx - fromIdx;
|
|
485
485
|
const idxStep = Math.max(1, Math.round(idxSpan / approxTicks));
|
|
486
|
-
const span = this._visibleRange.to - this._visibleRange.from;
|
|
487
|
-
const step = this._niceTimeStep(span / approxTicks);
|
|
488
486
|
const startIdx = Math.ceil(fromIdx / idxStep) * idxStep;
|
|
487
|
+
const _tickDeltas = [];
|
|
488
|
+
for (let i = Math.max(0, startIdx); i + idxStep <= Math.min(toIdx, this._barTimes.length - 1); i += idxStep) {
|
|
489
|
+
const a = this._barTimes[Math.round(i)];
|
|
490
|
+
const b = this._barTimes[Math.round(i + idxStep)];
|
|
491
|
+
if (a != null && b != null && b > a) _tickDeltas.push(b - a);
|
|
492
|
+
if (_tickDeltas.length >= 12) break;
|
|
493
|
+
}
|
|
494
|
+
_tickDeltas.sort((p, q) => p - q);
|
|
495
|
+
const _perTick = _tickDeltas.length > 0 ? _tickDeltas[Math.floor(_tickDeltas.length / 2)] : (this._visibleRange.to - this._visibleRange.from) / approxTicks;
|
|
496
|
+
const step = this._niceTimeStep(_perTick);
|
|
489
497
|
for (let i = startIdx; i <= toIdx; i += idxStep) {
|
|
490
498
|
const bIdx = Math.round(i);
|
|
491
499
|
if (bIdx < 0) continue;
|
|
@@ -5785,8 +5793,16 @@ var PixiGridRenderer = class {
|
|
|
5785
5793
|
const idxStep = Math.max(1, Math.round(rawIdxStep));
|
|
5786
5794
|
const barTimes = this._timeScale.barTimes;
|
|
5787
5795
|
const startIdx = Math.ceil(fromIdx / idxStep) * idxStep;
|
|
5788
|
-
const
|
|
5789
|
-
|
|
5796
|
+
const _tickDeltas = [];
|
|
5797
|
+
for (let i = Math.max(0, startIdx); i + idxStep <= Math.min(toIdx, barTimes.length - 1); i += idxStep) {
|
|
5798
|
+
const a = barTimes[Math.round(i)];
|
|
5799
|
+
const b = barTimes[Math.round(i + idxStep)];
|
|
5800
|
+
if (a != null && b != null && b > a) _tickDeltas.push(b - a);
|
|
5801
|
+
if (_tickDeltas.length >= 12) break;
|
|
5802
|
+
}
|
|
5803
|
+
_tickDeltas.sort((p, q) => p - q);
|
|
5804
|
+
const _perTick = _tickDeltas.length > 0 ? _tickDeltas[Math.floor(_tickDeltas.length / 2)] : (timeTo - timeFrom) / approxTicks;
|
|
5805
|
+
const step = this._niceTimeStep(_perTick);
|
|
5790
5806
|
for (let i = startIdx; i <= toIdx; i += idxStep) {
|
|
5791
5807
|
const bIdx = Math.round(i);
|
|
5792
5808
|
if (bIdx < 0) continue;
|
|
@@ -10344,6 +10360,13 @@ function _historyWindow(tf) {
|
|
|
10344
10360
|
return 500 * (parseTfSeconds(tf) ?? 3600);
|
|
10345
10361
|
}
|
|
10346
10362
|
var BATCH_SUPPRESSION_MS = 1e4;
|
|
10363
|
+
function tfSeconds(tf) {
|
|
10364
|
+
const m = /^(\d+)\s*(s|m|h|D|W|M)$/.exec(tf);
|
|
10365
|
+
if (!m) return 0;
|
|
10366
|
+
const mult = { s: 1, m: 60, h: 3600, D: 86400, W: 604800, M: 2592e3 }[m[2]];
|
|
10367
|
+
return parseInt(m[1], 10) * mult;
|
|
10368
|
+
}
|
|
10369
|
+
var LIVE_GAP_REPAIR_DELAY_MS = 3e3;
|
|
10347
10370
|
function _pageSize(tf) {
|
|
10348
10371
|
return 500 * (parseTfSeconds(tf) ?? 3600);
|
|
10349
10372
|
}
|
|
@@ -10471,15 +10494,36 @@ var DatafeedConnector = class {
|
|
|
10471
10494
|
this._batchSafetyTimer = null;
|
|
10472
10495
|
}, BATCH_SUPPRESSION_MS);
|
|
10473
10496
|
}
|
|
10497
|
+
const tfSec = tfSeconds(timeframe);
|
|
10498
|
+
let lastSeenBarTime = lastBarTime ?? 0;
|
|
10499
|
+
let repairTimer = null;
|
|
10500
|
+
const repairGap = (fromTime, toTime) => {
|
|
10501
|
+
if (repairTimer) clearTimeout(repairTimer);
|
|
10502
|
+
repairTimer = setTimeout(() => {
|
|
10503
|
+
repairTimer = null;
|
|
10504
|
+
if (this._activeUID !== uid || this._destroyed) return;
|
|
10505
|
+
void this._datafeed.getHistoricalBars(symbol, timeframe, fromTime, toTime).then(({ bars: filled }) => {
|
|
10506
|
+
if (this._activeUID !== uid || filled.length === 0) return;
|
|
10507
|
+
engine.backfillGap(filled);
|
|
10508
|
+
}).catch(() => {
|
|
10509
|
+
});
|
|
10510
|
+
}, LIVE_GAP_REPAIR_DELAY_MS);
|
|
10511
|
+
};
|
|
10474
10512
|
this._datafeed.subscribeBars(symbol, timeframe, (bar) => {
|
|
10475
|
-
if (this._activeUID
|
|
10476
|
-
|
|
10513
|
+
if (this._activeUID !== uid) return;
|
|
10514
|
+
const t = bar.time;
|
|
10515
|
+
if (tfSec > 0 && lastSeenBarTime > 0 && t > lastSeenBarTime + tfSec) {
|
|
10516
|
+
repairGap(lastSeenBarTime, t);
|
|
10477
10517
|
}
|
|
10518
|
+
if (t > lastSeenBarTime) lastSeenBarTime = t;
|
|
10519
|
+
engine.applyLiveUpdate(bar);
|
|
10478
10520
|
}, uid, lastBarTime, (bars) => {
|
|
10479
10521
|
this._clearBatchTimer();
|
|
10480
10522
|
batchPending = false;
|
|
10481
10523
|
if (this._activeUID === uid) {
|
|
10482
10524
|
engine.backfillGap(bars);
|
|
10525
|
+
const newest = bars.length > 0 ? bars[bars.length - 1].time : 0;
|
|
10526
|
+
if (newest > lastSeenBarTime) lastSeenBarTime = newest;
|
|
10483
10527
|
}
|
|
10484
10528
|
fireLoaded();
|
|
10485
10529
|
});
|
|
@@ -25516,7 +25560,7 @@ var demonstrationTool = {
|
|
|
25516
25560
|
};
|
|
25517
25561
|
|
|
25518
25562
|
// src/version.ts
|
|
25519
|
-
var FORGECHARTS_VERSION = "1.5.
|
|
25563
|
+
var FORGECHARTS_VERSION = "1.5.56" ;
|
|
25520
25564
|
|
|
25521
25565
|
// src/compatibility.ts
|
|
25522
25566
|
var MIN_KIT_API = 1;
|