@luxalgo/vela 0.5.4 → 0.6.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 (33) hide show
  1. package/dist/{DataProvider-DgS2UyMc.d.cts → DataProvider-Ce6PuCzQ.d.cts} +9 -0
  2. package/dist/{DataProvider-Cqc_BaJ9.d.ts → DataProvider-DNx9ntBD.d.ts} +9 -0
  3. package/dist/{chunk-JBQUY2RI.js → chunk-7ROONW6H.js} +14 -12
  4. package/dist/{chunk-D6WM5IUE.js → chunk-CA3N3PYT.js} +61 -6
  5. package/dist/{contributions-DuIxJWeH.d.ts → contributions-DToMhiw3.d.ts} +8 -1
  6. package/dist/{contributions-4Nh1jbvb.d.cts → contributions-Dlc7ZWZz.d.cts} +8 -1
  7. package/dist/{history-HofqYEh2.d.cts → history-BZADxpKx.d.cts} +2 -2
  8. package/dist/{history-FsmvCIo4.d.ts → history-BuHXJZJ2.d.ts} +2 -2
  9. package/dist/index.cjs +61 -6
  10. package/dist/index.d.cts +12 -4
  11. package/dist/index.d.ts +12 -4
  12. package/dist/index.js +1 -1
  13. package/dist/{plugin-DJR6z3e0.d.cts → plugin-BNPLOQO1.d.cts} +2 -2
  14. package/dist/{plugin-N_EaXN4-.d.ts → plugin-BqjEa5r3.d.ts} +2 -2
  15. package/dist/plugin.d.cts +3 -3
  16. package/dist/plugin.d.ts +3 -3
  17. package/dist/providers/binance.d.cts +1 -1
  18. package/dist/providers/binance.d.ts +1 -1
  19. package/dist/providers/coinbase.d.cts +1 -1
  20. package/dist/providers/coinbase.d.ts +1 -1
  21. package/dist/providers/hyperliquid.d.cts +1 -1
  22. package/dist/providers/hyperliquid.d.ts +1 -1
  23. package/dist/vela.global.js +61 -6
  24. package/dist/vela.global.min.js +29 -29
  25. package/dist/widget.cjs +84 -22
  26. package/dist/widget.d.cts +10 -14
  27. package/dist/widget.d.ts +10 -14
  28. package/dist/widget.js +14 -9
  29. package/dist/workspace.cjs +78 -18
  30. package/dist/workspace.d.cts +4 -4
  31. package/dist/workspace.d.ts +4 -4
  32. package/dist/workspace.js +7 -4
  33. package/package.json +1 -1
@@ -64,6 +64,15 @@ interface SymbolDescriptor {
64
64
  description?: string;
65
65
  /** Instrument class, free-form (e.g. `crypto`, `futures`, `stock`). */
66
66
  type?: string;
67
+ /**
68
+ * The instrument's LISTING-venue prefix (`NASDAQ`, `NYSE`, `AMEX`) — a property of the
69
+ * SYMBOL, not of the provider: AAPL is Nasdaq-listed and IBM NYSE-listed even when one
70
+ * provider supplies both tapes. When declared, it is what pickers/legends display, what
71
+ * `PREFIX:TICKER` strings resolve against (TradingView parity: `NYSE:AAPL` is NOT
72
+ * found), and what the canonical committed/persisted form carries. Absent on venues
73
+ * where the provider IS the identity (crypto, fx) — the provider name prefixes those.
74
+ */
75
+ prefix?: string;
67
76
  /** Owning provider name — annotated by the registry aggregation (badges in pickers). */
68
77
  provider?: string;
69
78
  }
@@ -64,6 +64,15 @@ interface SymbolDescriptor {
64
64
  description?: string;
65
65
  /** Instrument class, free-form (e.g. `crypto`, `futures`, `stock`). */
66
66
  type?: string;
67
+ /**
68
+ * The instrument's LISTING-venue prefix (`NASDAQ`, `NYSE`, `AMEX`) — a property of the
69
+ * SYMBOL, not of the provider: AAPL is Nasdaq-listed and IBM NYSE-listed even when one
70
+ * provider supplies both tapes. When declared, it is what pickers/legends display, what
71
+ * `PREFIX:TICKER` strings resolve against (TradingView parity: `NYSE:AAPL` is NOT
72
+ * found), and what the canonical committed/persisted form carries. Absent on venues
73
+ * where the provider IS the identity (crypto, fx) — the provider name prefixes those.
74
+ */
75
+ prefix?: string;
67
76
  /** Owning provider name — annotated by the registry aggregation (badges in pickers). */
68
77
  provider?: string;
69
78
  }
@@ -1,4 +1,4 @@
1
- import { parseSymbol, priceStyleIds, BUILTIN_PRICE_STYLES, tzButtonLabel, TIMEZONES, normalizeTimezone, tzMenuLabel } from './chunk-D6WM5IUE.js';
1
+ import { parseSymbol, priceStyleIds, BUILTIN_PRICE_STYLES, tzButtonLabel, TIMEZONES, normalizeTimezone, tzMenuLabel } from './chunk-CA3N3PYT.js';
2
2
  import { chartType, widgetActions, SidePanel, sidePanels, DEFAULT_PANEL_ORDER, getDrawingType } from './chunk-ZNL2X6U2.js';
3
3
  import { Tooltip, Menu, Dialog, Drawer } from './chunk-QWIEKZRE.js';
4
4
  import { iconMarkup, registerIcon, injectStyles, iconEl, SESSION_PRE, SESSION_POST, SESSION_OFF, icon, categoricalColor } from './chunk-EMS6PO2T.js';
@@ -1605,10 +1605,11 @@ function parseQuery(raw, venues) {
1605
1605
  function onlyOne(matches) {
1606
1606
  return matches.length === 1 ? matches[0] : null;
1607
1607
  }
1608
+ var venueOf = (s) => s.prefix ?? s.provider;
1608
1609
  function filterSymbols(list, query, limit = 100) {
1609
- const venues = [...new Set(list.map((s) => s.provider?.toLowerCase()).filter((p) => !!p))];
1610
+ const venues = [...new Set(list.flatMap((s) => [venueOf(s)?.toLowerCase(), s.provider?.toLowerCase()]).filter((p) => !!p))];
1610
1611
  const { scope, term } = parseQuery(query, venues);
1611
- const pool = scope ? list.filter((s) => s.provider?.toLowerCase() === scope) : list;
1612
+ const pool = scope ? list.filter((s) => venueOf(s)?.toLowerCase() === scope || s.provider?.toLowerCase() === scope) : list;
1612
1613
  const q = term.toUpperCase();
1613
1614
  if (!q) {
1614
1615
  if (scope) return [...pool].sort((a, b) => a.ticker.localeCompare(b.ticker)).slice(0, limit);
@@ -1627,7 +1628,7 @@ function filterSymbols(list, query, limit = 100) {
1627
1628
  if (t.startsWith(q)) prefix.push(s);
1628
1629
  else if (t.includes(q)) substr.push(s);
1629
1630
  else if ((s.description ?? "").toUpperCase().includes(q)) desc.push(s);
1630
- else if (!scope && s.provider?.toLowerCase().includes(qLower)) venue.push(s);
1631
+ else if (!scope && (venueOf(s)?.toLowerCase().includes(qLower) || s.provider?.toLowerCase().includes(qLower))) venue.push(s);
1631
1632
  if (prefix.length >= limit) break;
1632
1633
  }
1633
1634
  return [...prefix, ...substr, ...desc, ...venue].slice(0, limit);
@@ -1779,14 +1780,14 @@ var SymbolPicker = class {
1779
1780
  else if (e.key === "ArrowUp") this.moveHighlight(-1);
1780
1781
  else if (e.key === "Enter") {
1781
1782
  const pick = this.rows[this.highlighted];
1782
- if (pick) this.select(pick.ticker, pick.provider, opts.onSelect);
1783
+ if (pick) this.select(pick.ticker, pick.prefix ?? pick.provider, opts.onSelect);
1783
1784
  return;
1784
1785
  } else return;
1785
1786
  e.preventDefault();
1786
1787
  });
1787
1788
  this.list.addEventListener("click", (e) => {
1788
1789
  const row = e.target.closest(".vela-sp-row");
1789
- if (row?.dataset.ticker) this.select(row.dataset.ticker, row.dataset.provider, opts.onSelect);
1790
+ if (row?.dataset.ticker) this.select(row.dataset.ticker, row.dataset.venue, opts.onSelect);
1790
1791
  });
1791
1792
  }
1792
1793
  /** Wire where symbols come from (re-called on every widget rebuild). */
@@ -1803,9 +1804,9 @@ var SymbolPicker = class {
1803
1804
  destroy() {
1804
1805
  this.dialog.destroy();
1805
1806
  }
1806
- select(ticker, provider, onSelect) {
1807
+ select(ticker, venue, onSelect) {
1807
1808
  this.close();
1808
- onSelect(provider ? `${provider.toLowerCase()}:${ticker}` : ticker);
1809
+ onSelect(venue ? `${venue}:${ticker}` : ticker);
1809
1810
  }
1810
1811
  moveHighlight(delta) {
1811
1812
  if (!this.rows.length) return;
@@ -1838,7 +1839,8 @@ var SymbolPicker = class {
1838
1839
  const row = doc.createElement("div");
1839
1840
  row.className = "vela-sp-row";
1840
1841
  row.dataset.ticker = s.ticker;
1841
- if (s.provider) row.dataset.provider = s.provider;
1842
+ const venue = s.prefix ?? s.provider;
1843
+ if (venue) row.dataset.venue = venue;
1842
1844
  const av = tickerIconEl(doc, baseOf(s), s.ticker, "vela-sp-avatar");
1843
1845
  const main = doc.createElement("span");
1844
1846
  main.className = "vela-sp-main";
@@ -1850,11 +1852,11 @@ var SymbolPicker = class {
1850
1852
  d.textContent = s.description ?? (s.type ?? "");
1851
1853
  main.append(t, d);
1852
1854
  row.append(av, main);
1853
- if (s.provider) {
1855
+ if (venue) {
1854
1856
  const badge = doc.createElement("span");
1855
1857
  badge.className = "vela-sp-badge";
1856
- badge.dataset.p = s.provider;
1857
- badge.textContent = s.provider;
1858
+ badge.dataset.p = s.provider ?? venue;
1859
+ badge.textContent = venue;
1858
1860
  row.appendChild(badge);
1859
1861
  }
1860
1862
  this.list.appendChild(row);
@@ -685,7 +685,7 @@ var ProviderRegistry = class {
685
685
  /** Register (or replace) a provider; returns a promise that settles when its index is built. */
686
686
  register(rawName, provider) {
687
687
  const name = normName(rawName);
688
- const entry = { name, provider, index: null, descriptors: [], settled: false, settle: Promise.resolve() };
688
+ const entry = { name, provider, index: null, prefixIndex: null, byTicker: null, descriptors: [], settled: false, settle: Promise.resolve() };
689
689
  this.entries.set(name, entry);
690
690
  entry.settle = this.buildIndex(entry);
691
691
  queueMicrotask(() => this.notify(false));
@@ -698,6 +698,9 @@ var ProviderRegistry = class {
698
698
  const symbols = await entry.provider.listSymbols();
699
699
  entry.descriptors = symbols;
700
700
  entry.index = new Set(symbols.map((s) => normTicker(s.ticker)));
701
+ entry.byTicker = new Map(symbols.map((s) => [normTicker(s.ticker), s]));
702
+ entry.prefixIndex = /* @__PURE__ */ new Map();
703
+ for (const s of symbols) if (s.prefix) entry.prefixIndex.set(`${normName(s.prefix)}:${normTicker(s.ticker)}`, s);
701
704
  }
702
705
  } catch {
703
706
  entry.index = null;
@@ -733,14 +736,25 @@ var ProviderRegistry = class {
733
736
  }
734
737
  /**
735
738
  * Resolve a symbol to `{ provider, ticker }`, or null when nothing can serve it
736
- * yet. Explicit prefix → that provider (must be registered). Bare first
737
- * indexed provider (registration order, `opts.default` first) that contains the
738
- * ticker; `opts.lenient` additionally allows a sole registered provider before
739
- * its index exists.
739
+ * yet. Explicit prefix → that provider (must be registered), else a provider whose
740
+ * index declares that LISTING prefix for that ticker (`NASDAQ:AAPL` routes to the
741
+ * provider serving Nasdaq-listed AAPL TradingView-strict, so `NYSE:AAPL` resolves
742
+ * to nothing rather than auto-correcting). Bare → first indexed provider
743
+ * (registration order, `opts.default` first) that contains the ticker;
744
+ * `opts.lenient` additionally allows a sole registered provider before its index
745
+ * exists.
740
746
  */
741
747
  resolve(raw, opts = {}) {
742
748
  const { provider, ticker } = this.parse(raw);
743
- if (provider) return this.entries.has(provider) ? { provider, ticker } : null;
749
+ if (provider) {
750
+ if (this.entries.has(provider)) return { provider, ticker };
751
+ const key = `${provider}:${normTicker(ticker)}`;
752
+ for (const name of this.candidateOrder(opts.default)) {
753
+ const d = this.entries.get(name).prefixIndex?.get(key);
754
+ if (d) return { provider: name, ticker: d.ticker };
755
+ }
756
+ return null;
757
+ }
744
758
  const norm = normTicker(ticker);
745
759
  for (const name of this.candidateOrder(opts.default)) {
746
760
  if (this.entries.get(name).index?.has(norm)) return { provider: name, ticker };
@@ -806,6 +820,22 @@ var ProviderRegistry = class {
806
820
  }
807
821
  return names;
808
822
  }
823
+ /**
824
+ * The DISPLAY prefix for a resolved symbol — the descriptor's LISTING prefix when the
825
+ * data declares one, else the provider name. This is the single seam every label
826
+ * (legend chip, committed/persisted `PREFIX:TICKER` strings) derives from, which is
827
+ * what makes a non-canonical spelling impossible to display: the form always comes
828
+ * from the data, never from what was typed.
829
+ */
830
+ displayPrefixOf(resolved) {
831
+ const d = this.entries.get(resolved.provider)?.byTicker?.get(normTicker(resolved.ticker));
832
+ return d?.prefix ?? resolved.provider;
833
+ }
834
+ /** The canonical `PREFIX:TICKER` string for a resolved symbol (descriptor spellings). */
835
+ canonicalSymbol(resolved) {
836
+ const d = this.entries.get(resolved.provider)?.byTicker?.get(normTicker(resolved.ticker));
837
+ return `${d?.prefix ?? resolved.provider}:${d?.ticker ?? resolved.ticker}`;
838
+ }
809
839
  /** Indexed symbols for one provider (or all, concatenated) — for autocomplete. */
810
840
  symbolsOf(rawName) {
811
841
  if (rawName != null) return this.entries.get(normName(rawName))?.descriptors ?? [];
@@ -1030,6 +1060,20 @@ var MultiProviderFeed = class {
1030
1060
  resolveSymbol(raw) {
1031
1061
  return this.registry.resolve(raw, { default: this.primaryProvider });
1032
1062
  }
1063
+ /**
1064
+ * The DISPLAY prefix for `raw` — the descriptor's LISTING prefix when the data
1065
+ * declares one (`NASDAQ` for AAPL), else the resolved provider name. Null while
1066
+ * nothing resolves the symbol.
1067
+ */
1068
+ displayPrefix(raw) {
1069
+ const resolved = this.resolveSymbol(raw);
1070
+ return resolved ? this.registry.displayPrefixOf(resolved) : null;
1071
+ }
1072
+ /** The canonical `PREFIX:TICKER` form of `raw`, or null while unresolvable. */
1073
+ canonicalSymbol(raw) {
1074
+ const resolved = this.resolveSymbol(raw);
1075
+ return resolved ? this.registry.canonicalSymbol(resolved) : null;
1076
+ }
1033
1077
  /** The registered provider INSTANCE under `name` (undefined if unknown). */
1034
1078
  providerInstance(name) {
1035
1079
  return this.registry.get(name);
@@ -1235,6 +1279,17 @@ var DataControl = class {
1235
1279
  resolve(symbol) {
1236
1280
  return this.registry?.resolveSymbol(symbol) ?? null;
1237
1281
  }
1282
+ /**
1283
+ * The DISPLAY prefix for `symbol` — the listing venue its descriptor declares
1284
+ * (`NASDAQ` for AAPL) or the resolved provider name. Null while unresolvable.
1285
+ */
1286
+ displayPrefix(symbol) {
1287
+ return this.registry?.displayPrefix(symbol) ?? null;
1288
+ }
1289
+ /** The canonical `PREFIX:TICKER` form of `symbol`, or null while unresolvable. */
1290
+ canonicalSymbol(symbol) {
1291
+ return this.registry?.canonicalSymbol(symbol) ?? null;
1292
+ }
1238
1293
  /**
1239
1294
  * The registered provider INSTANCE under `name` — the seam for EXTENDED provider
1240
1295
  * surfaces: a provider may implement interfaces beyond the `DataProvider` port
@@ -1,5 +1,5 @@
1
1
  import { s as Millis, ac as InputSchema, ab as IndicatorMeta, P as PriceStyle, O as OHLCV, l as InputValue, j as IndicatorModel, i as MoveTarget, ay as SeriesSpec, a9 as Fill, B as Background, aq as PriceLine, $ as DrawingLine, X as DrawingBox, _ as DrawingLabel, a3 as DrawingPolyline, a0 as DrawingLinefill, a5 as DrawingTable, f as IndicatorStatus, a as VisibleRange, c as VelaTheme, S as SerializedDrawing, u as DrawingTypeKey, t as SnapMode, a1 as DrawingMode, I as IChartRenderer, R as RendererCapabilities, n as LegendActionView, U as Unsubscribe, C as CrosshairEvent, A as AxisLongPressEvent, q as DataWindowReadout, m as SymbolPickerFn, aK as PaneInfo, a8 as DrawingsOption, D as Drawing, b as VelaOptions, w as AddIndicatorOptions, am as MarketSwitch, al as MarketSnapshot, V as VisibleRangePreset, T as ThemeName } from './options-BlQ00Fju.js';
2
- import { S as SymbolInfo, B as BarRange, M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, b as ProviderCapabilities } from './DataProvider-Cqc_BaJ9.js';
2
+ import { S as SymbolInfo, B as BarRange, M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, b as ProviderCapabilities } from './DataProvider-DNx9ntBD.js';
3
3
 
4
4
  /**
5
5
  * A strategy's broker state at ONE bar — the flat summary a host reads while a script
@@ -344,6 +344,13 @@ declare class DataControl {
344
344
  providers(): ProviderInfo[];
345
345
  /** Resolve a symbol string to `{ provider, ticker }`, or null if nothing serves it. */
346
346
  resolve(symbol: string): Resolved | null;
347
+ /**
348
+ * The DISPLAY prefix for `symbol` — the listing venue its descriptor declares
349
+ * (`NASDAQ` for AAPL) or the resolved provider name. Null while unresolvable.
350
+ */
351
+ displayPrefix(symbol: string): string | null;
352
+ /** The canonical `PREFIX:TICKER` form of `symbol`, or null while unresolvable. */
353
+ canonicalSymbol(symbol: string): string | null;
347
354
  /**
348
355
  * The registered provider INSTANCE under `name` — the seam for EXTENDED provider
349
356
  * surfaces: a provider may implement interfaces beyond the `DataProvider` port
@@ -1,5 +1,5 @@
1
1
  import { s as Millis, ac as InputSchema, ab as IndicatorMeta, P as PriceStyle, O as OHLCV, l as InputValue, j as IndicatorModel, i as MoveTarget, ay as SeriesSpec, a9 as Fill, B as Background, aq as PriceLine, $ as DrawingLine, X as DrawingBox, _ as DrawingLabel, a3 as DrawingPolyline, a0 as DrawingLinefill, a5 as DrawingTable, f as IndicatorStatus, a as VisibleRange, c as VelaTheme, S as SerializedDrawing, u as DrawingTypeKey, t as SnapMode, a1 as DrawingMode, I as IChartRenderer, R as RendererCapabilities, n as LegendActionView, U as Unsubscribe, C as CrosshairEvent, A as AxisLongPressEvent, q as DataWindowReadout, m as SymbolPickerFn, aK as PaneInfo, a8 as DrawingsOption, D as Drawing, b as VelaOptions, w as AddIndicatorOptions, am as MarketSwitch, al as MarketSnapshot, V as VisibleRangePreset, T as ThemeName } from './options-BlQ00Fju.cjs';
2
- import { S as SymbolInfo, B as BarRange, M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, b as ProviderCapabilities } from './DataProvider-DgS2UyMc.cjs';
2
+ import { S as SymbolInfo, B as BarRange, M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, b as ProviderCapabilities } from './DataProvider-Ce6PuCzQ.cjs';
3
3
 
4
4
  /**
5
5
  * A strategy's broker state at ONE bar — the flat summary a host reads while a script
@@ -344,6 +344,13 @@ declare class DataControl {
344
344
  providers(): ProviderInfo[];
345
345
  /** Resolve a symbol string to `{ provider, ticker }`, or null if nothing serves it. */
346
346
  resolve(symbol: string): Resolved | null;
347
+ /**
348
+ * The DISPLAY prefix for `symbol` — the listing venue its descriptor declares
349
+ * (`NASDAQ` for AAPL) or the resolved provider name. Null while unresolvable.
350
+ */
351
+ displayPrefix(symbol: string): string | null;
352
+ /** The canonical `PREFIX:TICKER` form of `symbol`, or null while unresolvable. */
353
+ canonicalSymbol(symbol: string): string | null;
347
354
  /**
348
355
  * The registered provider INSTANCE under `name` — the seam for EXTENDED provider
349
356
  * surfaces: a provider may implement interfaces beyond the `DataProvider` port
@@ -1,6 +1,6 @@
1
1
  import { V as VisibleRangePreset } from './options-BlQ00Fju.cjs';
2
- import { D as DataProvider } from './DataProvider-DgS2UyMc.cjs';
3
- import { S as ScriptingEngine, V as Vela } from './contributions-4Nh1jbvb.cjs';
2
+ import { D as DataProvider } from './DataProvider-Ce6PuCzQ.cjs';
3
+ import { S as ScriptingEngine, V as Vela } from './contributions-Dlc7ZWZz.cjs';
4
4
 
5
5
  interface RangePreset {
6
6
  /** Button label. */
@@ -1,6 +1,6 @@
1
1
  import { V as VisibleRangePreset } from './options-BlQ00Fju.js';
2
- import { D as DataProvider } from './DataProvider-Cqc_BaJ9.js';
3
- import { S as ScriptingEngine, V as Vela } from './contributions-DuIxJWeH.js';
2
+ import { D as DataProvider } from './DataProvider-DNx9ntBD.js';
3
+ import { S as ScriptingEngine, V as Vela } from './contributions-DToMhiw3.js';
4
4
 
5
5
  interface RangePreset {
6
6
  /** Button label. */
package/dist/index.cjs CHANGED
@@ -6915,7 +6915,7 @@ var ProviderRegistry = class {
6915
6915
  /** Register (or replace) a provider; returns a promise that settles when its index is built. */
6916
6916
  register(rawName, provider) {
6917
6917
  const name = normName(rawName);
6918
- const entry = { name, provider, index: null, descriptors: [], settled: false, settle: Promise.resolve() };
6918
+ const entry = { name, provider, index: null, prefixIndex: null, byTicker: null, descriptors: [], settled: false, settle: Promise.resolve() };
6919
6919
  this.entries.set(name, entry);
6920
6920
  entry.settle = this.buildIndex(entry);
6921
6921
  queueMicrotask(() => this.notify(false));
@@ -6928,6 +6928,9 @@ var ProviderRegistry = class {
6928
6928
  const symbols = await entry.provider.listSymbols();
6929
6929
  entry.descriptors = symbols;
6930
6930
  entry.index = new Set(symbols.map((s) => normTicker(s.ticker)));
6931
+ entry.byTicker = new Map(symbols.map((s) => [normTicker(s.ticker), s]));
6932
+ entry.prefixIndex = /* @__PURE__ */ new Map();
6933
+ for (const s of symbols) if (s.prefix) entry.prefixIndex.set(`${normName(s.prefix)}:${normTicker(s.ticker)}`, s);
6931
6934
  }
6932
6935
  } catch {
6933
6936
  entry.index = null;
@@ -6963,14 +6966,25 @@ var ProviderRegistry = class {
6963
6966
  }
6964
6967
  /**
6965
6968
  * Resolve a symbol to `{ provider, ticker }`, or null when nothing can serve it
6966
- * yet. Explicit prefix → that provider (must be registered). Bare first
6967
- * indexed provider (registration order, `opts.default` first) that contains the
6968
- * ticker; `opts.lenient` additionally allows a sole registered provider before
6969
- * its index exists.
6969
+ * yet. Explicit prefix → that provider (must be registered), else a provider whose
6970
+ * index declares that LISTING prefix for that ticker (`NASDAQ:AAPL` routes to the
6971
+ * provider serving Nasdaq-listed AAPL TradingView-strict, so `NYSE:AAPL` resolves
6972
+ * to nothing rather than auto-correcting). Bare → first indexed provider
6973
+ * (registration order, `opts.default` first) that contains the ticker;
6974
+ * `opts.lenient` additionally allows a sole registered provider before its index
6975
+ * exists.
6970
6976
  */
6971
6977
  resolve(raw, opts = {}) {
6972
6978
  const { provider, ticker } = this.parse(raw);
6973
- if (provider) return this.entries.has(provider) ? { provider, ticker } : null;
6979
+ if (provider) {
6980
+ if (this.entries.has(provider)) return { provider, ticker };
6981
+ const key = `${provider}:${normTicker(ticker)}`;
6982
+ for (const name of this.candidateOrder(opts.default)) {
6983
+ const d = this.entries.get(name).prefixIndex?.get(key);
6984
+ if (d) return { provider: name, ticker: d.ticker };
6985
+ }
6986
+ return null;
6987
+ }
6974
6988
  const norm = normTicker(ticker);
6975
6989
  for (const name of this.candidateOrder(opts.default)) {
6976
6990
  if (this.entries.get(name).index?.has(norm)) return { provider: name, ticker };
@@ -7036,6 +7050,22 @@ var ProviderRegistry = class {
7036
7050
  }
7037
7051
  return names;
7038
7052
  }
7053
+ /**
7054
+ * The DISPLAY prefix for a resolved symbol — the descriptor's LISTING prefix when the
7055
+ * data declares one, else the provider name. This is the single seam every label
7056
+ * (legend chip, committed/persisted `PREFIX:TICKER` strings) derives from, which is
7057
+ * what makes a non-canonical spelling impossible to display: the form always comes
7058
+ * from the data, never from what was typed.
7059
+ */
7060
+ displayPrefixOf(resolved) {
7061
+ const d = this.entries.get(resolved.provider)?.byTicker?.get(normTicker(resolved.ticker));
7062
+ return d?.prefix ?? resolved.provider;
7063
+ }
7064
+ /** The canonical `PREFIX:TICKER` string for a resolved symbol (descriptor spellings). */
7065
+ canonicalSymbol(resolved) {
7066
+ const d = this.entries.get(resolved.provider)?.byTicker?.get(normTicker(resolved.ticker));
7067
+ return `${d?.prefix ?? resolved.provider}:${d?.ticker ?? resolved.ticker}`;
7068
+ }
7039
7069
  /** Indexed symbols for one provider (or all, concatenated) — for autocomplete. */
7040
7070
  symbolsOf(rawName) {
7041
7071
  if (rawName != null) return this.entries.get(normName(rawName))?.descriptors ?? [];
@@ -9188,6 +9218,20 @@ var MultiProviderFeed = class {
9188
9218
  resolveSymbol(raw) {
9189
9219
  return this.registry.resolve(raw, { default: this.primaryProvider });
9190
9220
  }
9221
+ /**
9222
+ * The DISPLAY prefix for `raw` — the descriptor's LISTING prefix when the data
9223
+ * declares one (`NASDAQ` for AAPL), else the resolved provider name. Null while
9224
+ * nothing resolves the symbol.
9225
+ */
9226
+ displayPrefix(raw) {
9227
+ const resolved = this.resolveSymbol(raw);
9228
+ return resolved ? this.registry.displayPrefixOf(resolved) : null;
9229
+ }
9230
+ /** The canonical `PREFIX:TICKER` form of `raw`, or null while unresolvable. */
9231
+ canonicalSymbol(raw) {
9232
+ const resolved = this.resolveSymbol(raw);
9233
+ return resolved ? this.registry.canonicalSymbol(resolved) : null;
9234
+ }
9191
9235
  /** The registered provider INSTANCE under `name` (undefined if unknown). */
9192
9236
  providerInstance(name) {
9193
9237
  return this.registry.get(name);
@@ -9393,6 +9437,17 @@ var DataControl = class {
9393
9437
  resolve(symbol) {
9394
9438
  return this.registry?.resolveSymbol(symbol) ?? null;
9395
9439
  }
9440
+ /**
9441
+ * The DISPLAY prefix for `symbol` — the listing venue its descriptor declares
9442
+ * (`NASDAQ` for AAPL) or the resolved provider name. Null while unresolvable.
9443
+ */
9444
+ displayPrefix(symbol) {
9445
+ return this.registry?.displayPrefix(symbol) ?? null;
9446
+ }
9447
+ /** The canonical `PREFIX:TICKER` form of `symbol`, or null while unresolvable. */
9448
+ canonicalSymbol(symbol) {
9449
+ return this.registry?.canonicalSymbol(symbol) ?? null;
9450
+ }
9396
9451
  /**
9397
9452
  * The registered provider INSTANCE under `name` — the seam for EXTENDED provider
9398
9453
  * surfaces: a provider may implement interfaces beyond the `DataProvider` port
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { D as DrawingsDocument, R as Resolved } from './contributions-4Nh1jbvb.cjs';
2
- export { B as BarsChangeReason, C as ContextSelect, b as DataControl, c as DrawingsControl, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, l as IndicatorEventMap, I as IndicatorHandle, m as IndicatorSummary, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, P as ParsedSymbol, s as PreparedScript, t as RendererControl, u as RunIndicatorResult, v as SceneInspection, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, T as TypedEventBus, V as Vela, M as VelaDeps, O as VelaEventMap, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, $ as nativeIndicatorDescriptors, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-4Nh1jbvb.cjs';
1
+ import { D as DrawingsDocument, R as Resolved } from './contributions-Dlc7ZWZz.cjs';
2
+ export { B as BarsChangeReason, C as ContextSelect, b as DataControl, c as DrawingsControl, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, l as IndicatorEventMap, I as IndicatorHandle, m as IndicatorSummary, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, P as ParsedSymbol, s as PreparedScript, t as RendererControl, u as RunIndicatorResult, v as SceneInspection, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, T as TypedEventBus, V as Vela, M as VelaDeps, O as VelaEventMap, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, $ as nativeIndicatorDescriptors, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-Dlc7ZWZz.cjs';
3
3
  import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, I as IChartRenderer, R as RendererCapabilities, d as RendererDisplayOptions, e as IndicatorRenderHandle, f as IndicatorStatus, c as VelaTheme, O as OHLCV, g as Pane, h as PaneAction, i as MoveTarget, j as IndicatorModel, k as ScenePatch, l as InputValue, m as SymbolPickerFn, n as LegendActionView, o as InputChangeEvent, T as ThemeName, C as CrosshairEvent, p as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, q as DataWindowReadout, r as IDrawingsRendererPort, s as Millis, t as SnapMode, u as DrawingTypeKey, v as ToolbarDefinition, M as MarketConfig } from './options-BlQ00Fju.cjs';
4
4
  export { w as AddIndicatorOptions, B as Background, x as BoxFontFamily, y as BoxHAlign, z as BoxTextSize, E as BoxVAlign, F as CandleBarColor, G as CandleSeries, H as CandleStyle, J as DataWindowGroup, K as DataWindowOHLC, Q as DataWindowRow, W as DirtyRange, X as DrawingBox, Y as DrawingExtend, Z as DrawingIntent, _ as DrawingLabel, $ as DrawingLine, a0 as DrawingLinefill, a1 as DrawingMode, a2 as DrawingPoint, a3 as DrawingPolyline, a4 as DrawingStyle, a5 as DrawingTable, a6 as DrawingText, a7 as DrawingXLoc, a8 as DrawingsOption, a9 as Fill, aa as FillGradientStop, ab as IndicatorMeta, ac as InputSchema, ad as InputType, ae as LabelStyle, af as LabelYLoc, ag as LineLikeKind, ah as LineLikeSeries, ai as LineLikeStyle, aj as MarkerPoint, ak as MarkerSeries, al as MarketSnapshot, am as MarketSwitch, an as PaneHint, ao as PaneKind, ap as PolylinePoint, aq as PriceLine, ar as Projector, as as ProviderName, at as RendererConstructor, au as Scene, av as SchemaPatch, aw as SeriesKind, ax as SeriesPoint, ay as SeriesSpec, az as SeriesValueDelta, aA as SettingsField, aB as SettingsSchema, aC as TableCell, aD as TableMerge, aE as TablePosition, aF as ToolbarGroupConfig, aG as TradeExecution, aH as ValuePatch, b as VelaOptions, V as VisibleRangePreset, aI as buildToolbar, aJ as defaultToolbar } from './options-BlQ00Fju.cjs';
5
- import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-DgS2UyMc.cjs';
6
- export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-DJR6z3e0.cjs';
5
+ import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-Ce6PuCzQ.cjs';
6
+ export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-BNPLOQO1.cjs';
7
7
  export { D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-CT9ZwIGz.cjs';
8
8
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.cjs';
9
9
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
@@ -1153,6 +1153,14 @@ declare class MultiProviderFeed implements MarketDataFeed {
1153
1153
  unregisterProvider(name: string): void;
1154
1154
  providers(): ProviderInfo[];
1155
1155
  resolveSymbol(raw: string): Resolved | null;
1156
+ /**
1157
+ * The DISPLAY prefix for `raw` — the descriptor's LISTING prefix when the data
1158
+ * declares one (`NASDAQ` for AAPL), else the resolved provider name. Null while
1159
+ * nothing resolves the symbol.
1160
+ */
1161
+ displayPrefix(raw: string): string | null;
1162
+ /** The canonical `PREFIX:TICKER` form of `raw`, or null while unresolvable. */
1163
+ canonicalSymbol(raw: string): string | null;
1156
1164
  /** The registered provider INSTANCE under `name` (undefined if unknown). */
1157
1165
  providerInstance(name: string): DataProvider | undefined;
1158
1166
  symbols(name?: string): SymbolDescriptor[];
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { D as DrawingsDocument, R as Resolved } from './contributions-DuIxJWeH.js';
2
- export { B as BarsChangeReason, C as ContextSelect, b as DataControl, c as DrawingsControl, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, l as IndicatorEventMap, I as IndicatorHandle, m as IndicatorSummary, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, P as ParsedSymbol, s as PreparedScript, t as RendererControl, u as RunIndicatorResult, v as SceneInspection, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, T as TypedEventBus, V as Vela, M as VelaDeps, O as VelaEventMap, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, $ as nativeIndicatorDescriptors, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-DuIxJWeH.js';
1
+ import { D as DrawingsDocument, R as Resolved } from './contributions-DToMhiw3.js';
2
+ export { B as BarsChangeReason, C as ContextSelect, b as DataControl, c as DrawingsControl, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, l as IndicatorEventMap, I as IndicatorHandle, m as IndicatorSummary, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, P as ParsedSymbol, s as PreparedScript, t as RendererControl, u as RunIndicatorResult, v as SceneInspection, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, T as TypedEventBus, V as Vela, M as VelaDeps, O as VelaEventMap, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, $ as nativeIndicatorDescriptors, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-DToMhiw3.js';
3
3
  import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, I as IChartRenderer, R as RendererCapabilities, d as RendererDisplayOptions, e as IndicatorRenderHandle, f as IndicatorStatus, c as VelaTheme, O as OHLCV, g as Pane, h as PaneAction, i as MoveTarget, j as IndicatorModel, k as ScenePatch, l as InputValue, m as SymbolPickerFn, n as LegendActionView, o as InputChangeEvent, T as ThemeName, C as CrosshairEvent, p as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, q as DataWindowReadout, r as IDrawingsRendererPort, s as Millis, t as SnapMode, u as DrawingTypeKey, v as ToolbarDefinition, M as MarketConfig } from './options-BlQ00Fju.js';
4
4
  export { w as AddIndicatorOptions, B as Background, x as BoxFontFamily, y as BoxHAlign, z as BoxTextSize, E as BoxVAlign, F as CandleBarColor, G as CandleSeries, H as CandleStyle, J as DataWindowGroup, K as DataWindowOHLC, Q as DataWindowRow, W as DirtyRange, X as DrawingBox, Y as DrawingExtend, Z as DrawingIntent, _ as DrawingLabel, $ as DrawingLine, a0 as DrawingLinefill, a1 as DrawingMode, a2 as DrawingPoint, a3 as DrawingPolyline, a4 as DrawingStyle, a5 as DrawingTable, a6 as DrawingText, a7 as DrawingXLoc, a8 as DrawingsOption, a9 as Fill, aa as FillGradientStop, ab as IndicatorMeta, ac as InputSchema, ad as InputType, ae as LabelStyle, af as LabelYLoc, ag as LineLikeKind, ah as LineLikeSeries, ai as LineLikeStyle, aj as MarkerPoint, ak as MarkerSeries, al as MarketSnapshot, am as MarketSwitch, an as PaneHint, ao as PaneKind, ap as PolylinePoint, aq as PriceLine, ar as Projector, as as ProviderName, at as RendererConstructor, au as Scene, av as SchemaPatch, aw as SeriesKind, ax as SeriesPoint, ay as SeriesSpec, az as SeriesValueDelta, aA as SettingsField, aB as SettingsSchema, aC as TableCell, aD as TableMerge, aE as TablePosition, aF as ToolbarGroupConfig, aG as TradeExecution, aH as ValuePatch, b as VelaOptions, V as VisibleRangePreset, aI as buildToolbar, aJ as defaultToolbar } from './options-BlQ00Fju.js';
5
- import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-Cqc_BaJ9.js';
6
- export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-N_EaXN4-.js';
5
+ import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-DNx9ntBD.js';
6
+ export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, X as createDrawing, Y as deserializeDrawing, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a1 as registerDrawingType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-BqjEa5r3.js';
7
7
  export { D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-CT9ZwIGz.js';
8
8
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.js';
9
9
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
@@ -1153,6 +1153,14 @@ declare class MultiProviderFeed implements MarketDataFeed {
1153
1153
  unregisterProvider(name: string): void;
1154
1154
  providers(): ProviderInfo[];
1155
1155
  resolveSymbol(raw: string): Resolved | null;
1156
+ /**
1157
+ * The DISPLAY prefix for `raw` — the descriptor's LISTING prefix when the data
1158
+ * declares one (`NASDAQ` for AAPL), else the resolved provider name. Null while
1159
+ * nothing resolves the symbol.
1160
+ */
1161
+ displayPrefix(raw: string): string | null;
1162
+ /** The canonical `PREFIX:TICKER` form of `raw`, or null while unresolvable. */
1163
+ canonicalSymbol(raw: string): string | null;
1156
1164
  /** The registered provider INSTANCE under `name` (undefined if unknown). */
1157
1165
  providerInstance(name: string): DataProvider | undefined;
1158
1166
  symbols(name?: string): SymbolDescriptor[];
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { stableSeriesId } from './chunk-Q3XQHLIH.js';
2
- export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-D6WM5IUE.js';
2
+ export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-CA3N3PYT.js';
3
3
  export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, legendActions, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, tickerModifierIds, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-ZNL2X6U2.js';
4
4
  import './chunk-OGRQW3M6.js';
5
5
  export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, CROSSHAIR, HIGHLIGHT, INFO, INVALID, MARKER, NEUTRAL, SERIES_LINE, SESSION_OFF, SESSION_POST, SESSION_PRE, SLATE, SLATE_DEEP, TRADE_EXIT, TRADE_LONG, TRADE_SHORT, VALID, WARNING, categoricalColor, iconMarkup, registerIcon } from './chunk-EMS6PO2T.js';
@@ -1,9 +1,9 @@
1
1
  import { u as DrawingTypeKey, a4 as DrawingStyle, S as SerializedDrawing, D as Drawing, aw as SeriesKind, O as OHLCV, c as VelaTheme } from './options-BlQ00Fju.cjs';
2
- import { b as DataControl } from './contributions-4Nh1jbvb.cjs';
2
+ import { b as DataControl } from './contributions-Dlc7ZWZz.cjs';
3
3
  import './side-panel-CT9ZwIGz.cjs';
4
4
  import './icons-BZYbJXSV.cjs';
5
5
  import './keymap-CGOz5F5f.cjs';
6
- import './DataProvider-DgS2UyMc.cjs';
6
+ import './DataProvider-Ce6PuCzQ.cjs';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
@@ -1,9 +1,9 @@
1
1
  import { u as DrawingTypeKey, a4 as DrawingStyle, S as SerializedDrawing, D as Drawing, aw as SeriesKind, O as OHLCV, c as VelaTheme } from './options-BlQ00Fju.js';
2
- import { b as DataControl } from './contributions-DuIxJWeH.js';
2
+ import { b as DataControl } from './contributions-DToMhiw3.js';
3
3
  import './side-panel-CT9ZwIGz.js';
4
4
  import './icons-BZYbJXSV.js';
5
5
  import './keymap-CGOz5F5f.js';
6
- import './DataProvider-Cqc_BaJ9.js';
6
+ import './DataProvider-DNx9ntBD.js';
7
7
 
8
8
  /** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
9
9
  interface DrawingTypeMeta {
package/dist/plugin.d.cts CHANGED
@@ -1,7 +1,7 @@
1
- export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-DJR6z3e0.cjs';
2
- export { B as BarsChangeReason, C as ContextSelect, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, s as PreparedScript, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-4Nh1jbvb.cjs';
1
+ export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-BNPLOQO1.cjs';
2
+ export { B as BarsChangeReason, C as ContextSelect, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, s as PreparedScript, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-Dlc7ZWZz.cjs';
3
3
  export { D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-CT9ZwIGz.cjs';
4
4
  export { B as Background, x as BoxFontFamily, y as BoxHAlign, z as BoxTextSize, E as BoxVAlign, F as CandleBarColor, G as CandleSeries, H as CandleStyle, W as DirtyRange, X as DrawingBox, Y as DrawingExtend, _ as DrawingLabel, $ as DrawingLine, a0 as DrawingLinefill, a3 as DrawingPolyline, a5 as DrawingTable, u as DrawingTypeKey, a7 as DrawingXLoc, a9 as Fill, aa as FillGradientStop, ab as IndicatorMeta, j as IndicatorModel, ac as InputSchema, ad as InputType, l as InputValue, ae as LabelStyle, af as LabelYLoc, ag as LineLikeKind, ah as LineLikeSeries, ai as LineLikeStyle, L as LineStyle, aj as MarkerPoint, ak as MarkerSeries, s as Millis, O as OHLCV, g as Pane, an as PaneHint, ao as PaneKind, ap as PolylinePoint, aq as PriceLine, P as PriceStyle, au as Scene, k as ScenePatch, av as SchemaPatch, aw as SeriesKind, ax as SeriesPoint, ay as SeriesSpec, az as SeriesValueDelta, aC as TableCell, aD as TableMerge, aE as TablePosition, aG as TradeExecution, aH as ValuePatch } from './options-BlQ00Fju.cjs';
5
5
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.cjs';
6
6
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
7
- export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-DgS2UyMc.cjs';
7
+ export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-Ce6PuCzQ.cjs';
package/dist/plugin.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-N_EaXN4-.js';
2
- export { B as BarsChangeReason, C as ContextSelect, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, s as PreparedScript, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-DuIxJWeH.js';
1
+ export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CROSSHAIR, f as ChartTypeDefinition, g as ChartTypeSettingsInstance, h as ChartTypeSettingsSection, i as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, j as INVALID, k as IdentifiableKind, M as MARKER, N as NEUTRAL, l as NormalizedSettingsRow, R as RendererLayerArgs, m as RendererLayerDefinition, n as RendererLayerInstance, S as SERIES_LINE, o as SESSION_OFF, p as SESSION_POST, q as SESSION_PRE, r as SLATE, s as SLATE_DEEP, t as SeriesDataEngine, u as SeriesDataEngineHost, v as SettingsInlineControl, w as SettingsRowCondition, x as SettingsRowDescriptor, y as SettingsRowInlineNumber, z as SettingsRowSwatch, E as SettingsRowValueKey, F as SettingsRowWhen, G as SettingsRowWidth, J as SettingsSelectOption, K as SettingsValueRow, T as TRADE_EXIT, L as TRADE_LONG, O as TRADE_SHORT, V as VALID, W as WARNING, P as categoricalColor, Q as chartType, U as chartTypes, Z as drawingTypes, _ as getDrawingType, $ as normalizeSettingsRow, a0 as registerChartType, a2 as registerRendererDefaults, a3 as registerRendererLayer, a4 as rendererDefaults, a5 as rendererLayers, a6 as settingsRowValueKeys, a7 as stableSeriesId, a8 as tickerModifierIds, a9 as unregisterChartType, aa as unregisterRendererDefaults, ab as unregisterRendererLayer } from './plugin-BqjEa5r3.js';
2
+ export { B as BarsChangeReason, C as ContextSelect, E as EngineAlert, d as EngineCapabilities, e as EngineContextSnapshot, f as EngineFactory, g as EngineWarning, h as ExecutionHandlers, i as ExecutionMarket, j as ExecutionRequest, k as ExecutionSession, F as FetchSeries, L as LegendActionDescriptor, n as LegendIndicatorInfo, N as NativeIndicator, o as NativeIndicatorContext, p as NativeIndicatorDescriptor, q as NativeIndicatorInfo, r as NativeIndicatorOutput, s as PreparedScript, a as ScriptRun, w as ScriptRunCause, x as ScriptRunResult, S as ScriptingEngine, y as SidePanelButton, z as SidePanelDescriptor, A as SidePanelHandle, G as SidePanelHeader, H as StrategyFill, J as StrategyState, K as StrategyTrade, Q as VisibleBarRange, U as WidgetActionDescriptor, X as WidgetActionTarget, Y as WidgetAttachment, W as WidgetContext, Z as getNativeIndicator, _ as legendActions, a0 as nativeIndicatorTypes, a1 as registerDefaultEngine, a2 as registerLegendAction, a3 as registerNativeIndicator, a4 as registerSidePanel, a5 as registerWidgetAction, a6 as registerWidgetAttachment, a7 as resolveEngines, a8 as sidePanels, a9 as unregisterDefaultEngine, aa as unregisterLegendAction, ab as unregisterNativeIndicator, ac as unregisterSidePanel, ad as unregisterWidgetAction, ae as unregisterWidgetAttachment, af as widgetActions, ag as widgetAttachments } from './contributions-DToMhiw3.js';
3
3
  export { D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-CT9ZwIGz.js';
4
4
  export { B as Background, x as BoxFontFamily, y as BoxHAlign, z as BoxTextSize, E as BoxVAlign, F as CandleBarColor, G as CandleSeries, H as CandleStyle, W as DirtyRange, X as DrawingBox, Y as DrawingExtend, _ as DrawingLabel, $ as DrawingLine, a0 as DrawingLinefill, a3 as DrawingPolyline, a5 as DrawingTable, u as DrawingTypeKey, a7 as DrawingXLoc, a9 as Fill, aa as FillGradientStop, ab as IndicatorMeta, j as IndicatorModel, ac as InputSchema, ad as InputType, l as InputValue, ae as LabelStyle, af as LabelYLoc, ag as LineLikeKind, ah as LineLikeSeries, ai as LineLikeStyle, L as LineStyle, aj as MarkerPoint, ak as MarkerSeries, s as Millis, O as OHLCV, g as Pane, an as PaneHint, ao as PaneKind, ap as PolylinePoint, aq as PriceLine, P as PriceStyle, au as Scene, k as ScenePatch, av as SchemaPatch, aw as SeriesKind, ax as SeriesPoint, ay as SeriesSpec, az as SeriesValueDelta, aC as TableCell, aD as TableMerge, aE as TablePosition, aG as TradeExecution, aH as ValuePatch } from './options-BlQ00Fju.js';
5
5
  export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.js';
6
6
  export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
7
- export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-Cqc_BaJ9.js';
7
+ export { B as BarRange, D as DataProvider, M as MarketDataFeed, b as ProviderCapabilities, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo } from './DataProvider-DNx9ntBD.js';
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BlQ00Fju.cjs';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DgS2UyMc.cjs';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-Ce6PuCzQ.cjs';
3
3
 
4
4
  /**
5
5
  * Binance market-data provider, built from scratch on the public REST + WebSocket
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BlQ00Fju.js';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-Cqc_BaJ9.js';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DNx9ntBD.js';
3
3
 
4
4
  /**
5
5
  * Binance market-data provider, built from scratch on the public REST + WebSocket
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BlQ00Fju.cjs';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DgS2UyMc.cjs';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-Ce6PuCzQ.cjs';
3
3
 
4
4
  /**
5
5
  * Coinbase market-data provider, built from scratch on the public Exchange REST + WebSocket APIs
@@ -1,5 +1,5 @@
1
1
  import { O as OHLCV, U as Unsubscribe } from '../options-BlQ00Fju.js';
2
- import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-Cqc_BaJ9.js';
2
+ import { D as DataProvider, P as ProviderInfo, B as BarRange, S as SymbolInfo, a as SymbolDescriptor } from '../DataProvider-DNx9ntBD.js';
3
3
 
4
4
  /**
5
5
  * Coinbase market-data provider, built from scratch on the public Exchange REST + WebSocket APIs