@agg-build/sdk 4.25.0 → 4.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/agg-websocket-BstVWtLA.d.mts +6004 -0
  2. package/dist/agg-websocket-BstVWtLA.d.mts.map +1 -0
  3. package/dist/agg-websocket-BstVWtLA.d.ts +6004 -0
  4. package/dist/agg-websocket-BstVWtLA.d.ts.map +1 -0
  5. package/dist/agg-websocket-CK2iXfti.mjs +1427 -0
  6. package/dist/agg-websocket-CK2iXfti.mjs.map +1 -0
  7. package/dist/agg-websocket-DJbIfxKb.js +1478 -0
  8. package/dist/browser.d.mts +67 -66
  9. package/dist/browser.d.mts.map +1 -0
  10. package/dist/browser.d.ts +67 -66
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +720 -2047
  13. package/dist/browser.mjs +423 -799
  14. package/dist/browser.mjs.map +1 -0
  15. package/dist/candle-builder-BNewIe9K.mjs +148 -0
  16. package/dist/candle-builder-BNewIe9K.mjs.map +1 -0
  17. package/dist/candle-builder-BULYdxB4.js +151 -0
  18. package/dist/index.d.mts +2 -1342
  19. package/dist/index.d.ts +2 -1342
  20. package/dist/index.js +2794 -4656
  21. package/dist/index.mjs +2788 -2486
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/market-data.d.mts +6 -6
  24. package/dist/market-data.d.mts.map +1 -0
  25. package/dist/market-data.d.ts +6 -6
  26. package/dist/market-data.d.ts.map +1 -0
  27. package/dist/market-data.js +314 -1774
  28. package/dist/market-data.mjs +314 -350
  29. package/dist/market-data.mjs.map +1 -0
  30. package/dist/server.d.mts +235 -234
  31. package/dist/server.d.mts.map +1 -0
  32. package/dist/server.d.ts +235 -234
  33. package/dist/server.d.ts.map +1 -0
  34. package/dist/server.js +168 -296
  35. package/dist/server.mjs +163 -234
  36. package/dist/server.mjs.map +1 -0
  37. package/package.json +4 -4
  38. package/dist/agg-websocket-Bxt9PzTz.d.mts +0 -4479
  39. package/dist/agg-websocket-Bxt9PzTz.d.ts +0 -4479
  40. package/dist/chunk-QXBVA5TW.mjs +0 -2073
  41. package/dist/chunk-VD5UTAVD.mjs +0 -158
  42. package/dist/chunk-WNQUEZJF.mjs +0 -58
@@ -1,158 +0,0 @@
1
- import {
2
- __spreadProps,
3
- __spreadValues
4
- } from "./chunk-WNQUEZJF.mjs";
5
-
6
- // src/candle-builder.ts
7
- var INTERVAL_SECS = {
8
- "1m": 60,
9
- "5m": 300,
10
- "1h": 3600,
11
- "1d": 86400
12
- };
13
- var ALL_INTERVALS = ["1m", "5m", "1h", "1d"];
14
- var MAX_CLOSED = 500;
15
- var CandleBuilder = class {
16
- constructor() {
17
- this.forming = /* @__PURE__ */ new Map();
18
- this.closedMap = /* @__PURE__ */ new Map();
19
- this.listeners = /* @__PURE__ */ new Set();
20
- this._midpoint = null;
21
- this.dirty = false;
22
- this.scheduled = false;
23
- for (const interval of ALL_INTERVALS) {
24
- this.closedMap.set(interval, []);
25
- }
26
- }
27
- /** Feed a midpoint (from orderbook delta). Updates O/H/L/C for all intervals. */
28
- addMidpoint(midpoint, timestampSecs) {
29
- if (!Number.isFinite(midpoint) || !Number.isFinite(timestampSecs)) return;
30
- this._midpoint = midpoint;
31
- for (const interval of ALL_INTERVALS) {
32
- this.updateCandle(interval, midpoint, timestampSecs);
33
- }
34
- this.markDirty();
35
- }
36
- /** Feed a trade. Updates volume + refines H/L/C from trade price. */
37
- addTrade(price, size, timestampSecs) {
38
- if (!Number.isFinite(price) || !Number.isFinite(size) || !Number.isFinite(timestampSecs))
39
- return;
40
- for (const interval of ALL_INTERVALS) {
41
- this.updateCandle(interval, price, timestampSecs, size);
42
- }
43
- this.markDirty();
44
- }
45
- /** Current forming candle for an interval. */
46
- getForming(interval) {
47
- var _a;
48
- return (_a = this.forming.get(interval)) != null ? _a : null;
49
- }
50
- /** Closed candles for an interval (ring buffer, max 500, newest last). */
51
- getClosed(interval) {
52
- var _a;
53
- return (_a = this.closedMap.get(interval)) != null ? _a : [];
54
- }
55
- /** Apply a bounded Worker view without recomputing candles from presentation samples. */
56
- replaceTail(tail) {
57
- var _a, _b;
58
- for (const interval of ALL_INTERVALS) {
59
- const view = tail[interval];
60
- if (view.forming) this.forming.set(interval, __spreadValues({}, view.forming));
61
- else this.forming.delete(interval);
62
- if (!view.closed.length) continue;
63
- const closed = new Map(this.getClosed(interval).map((candle) => [candle.openTime, candle]));
64
- for (const candle of view.closed) closed.set(candle.openTime, __spreadValues({}, candle));
65
- this.closedMap.set(
66
- interval,
67
- [...closed.values()].sort((a, b) => a.openTime - b.openTime).slice(-MAX_CLOSED)
68
- );
69
- }
70
- this._midpoint = (_b = (_a = tail["1m"].forming) == null ? void 0 : _a.c) != null ? _b : null;
71
- this.markDirty();
72
- }
73
- /** Current midpoint (latest value fed). */
74
- get midpoint() {
75
- return this._midpoint;
76
- }
77
- /**
78
- * Subscribe to state changes. Returns unsubscribe function.
79
- * BATCHED: callbacks fire at most once per rAF frame (~16ms).
80
- * In non-browser environments, falls back to 16ms setTimeout.
81
- */
82
- onChange(listener) {
83
- this.listeners.add(listener);
84
- return () => {
85
- this.listeners.delete(listener);
86
- };
87
- }
88
- /** Clear all state (on reconnect). */
89
- reset() {
90
- this.forming.clear();
91
- for (const interval of ALL_INTERVALS) {
92
- this.closedMap.set(interval, []);
93
- }
94
- this._midpoint = null;
95
- this.dirty = false;
96
- }
97
- /** Clear all state AND unsubscribe all listeners. Called on store eviction. */
98
- dispose() {
99
- this.reset();
100
- this.listeners.clear();
101
- }
102
- updateCandle(interval, price, timestampSecs, tradeSize) {
103
- const secs = INTERVAL_SECS[interval];
104
- const openTime = Math.floor(timestampSecs / secs) * secs;
105
- const current = this.forming.get(interval);
106
- if (current && current.openTime !== openTime) {
107
- const closed = this.closedMap.get(interval);
108
- closed.push(__spreadProps(__spreadValues({}, current), { isFinal: true }));
109
- if (closed.length > MAX_CLOSED) closed.shift();
110
- this.forming.set(interval, {
111
- openTime,
112
- o: price,
113
- h: price,
114
- l: price,
115
- c: price,
116
- v: tradeSize != null ? tradeSize : 0,
117
- tradeCount: tradeSize != null ? 1 : 0,
118
- isFinal: false
119
- });
120
- } else if (!current) {
121
- this.forming.set(interval, {
122
- openTime,
123
- o: price,
124
- h: price,
125
- l: price,
126
- c: price,
127
- v: tradeSize != null ? tradeSize : 0,
128
- tradeCount: tradeSize != null ? 1 : 0,
129
- isFinal: false
130
- });
131
- } else {
132
- current.h = Math.max(current.h, price);
133
- current.l = Math.min(current.l, price);
134
- current.c = price;
135
- if (tradeSize != null) {
136
- current.v += tradeSize;
137
- current.tradeCount += 1;
138
- }
139
- }
140
- }
141
- markDirty() {
142
- this.dirty = true;
143
- if (this.scheduled) return;
144
- this.scheduled = true;
145
- const tick = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (fn) => setTimeout(fn, 16);
146
- tick(() => {
147
- this.scheduled = false;
148
- if (this.dirty) {
149
- this.dirty = false;
150
- this.listeners.forEach((l) => l());
151
- }
152
- });
153
- }
154
- };
155
-
156
- export {
157
- CandleBuilder
158
- };
@@ -1,58 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- var __async = (__this, __arguments, generator) => {
33
- return new Promise((resolve, reject) => {
34
- var fulfilled = (value) => {
35
- try {
36
- step(generator.next(value));
37
- } catch (e) {
38
- reject(e);
39
- }
40
- };
41
- var rejected = (value) => {
42
- try {
43
- step(generator.throw(value));
44
- } catch (e) {
45
- reject(e);
46
- }
47
- };
48
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
49
- step((generator = generator.apply(__this, __arguments)).next());
50
- });
51
- };
52
-
53
- export {
54
- __spreadValues,
55
- __spreadProps,
56
- __objRest,
57
- __async
58
- };