gloomberb 0.16.5 → 0.16.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/api-client/central-bank-rates.ts +6 -1
- package/src/api-client/chat.ts +26 -0
- package/src/api-client/credit-boards.ts +2 -0
- package/src/api-client/data.ts +49 -1
- package/src/api-client/europe-energy.ts +106 -0
- package/src/api-client/index.ts +9 -0
- package/src/api-client/market-discovery.ts +3 -0
- package/src/api-client/normalizers.ts +32 -0
- package/src/api-client/perps.ts +8 -0
- package/src/api-client/request.ts +9 -2
- package/src/api-client/socket.ts +29 -0
- package/src/api-client/themes.ts +22 -1
- package/src/api-client/types.ts +61 -1
- package/src/app/global-shortcuts.ts +35 -1
- package/src/app/keybindings/actions.ts +12 -1
- package/src/app/pane-runtime/plugin-bindings.ts +2 -2
- package/src/app/pane-runtime/ticker-open-runtime.ts +9 -3
- package/src/app/runtime/desktop-deeplink.ts +10 -5
- package/src/app/runtime/startup.ts +1 -1
- package/src/app.tsx +6 -0
- package/src/architecture/core-builtin-allowlist.json +4 -13
- package/src/ask-gloom/pane-context.ts +114 -0
- package/src/ask-gloom/pane-request.ts +70 -0
- package/src/ask-gloom/pane-text.ts +201 -0
- package/src/capabilities/chart-series.ts +8 -1
- package/src/capabilities/factories.ts +1 -0
- package/src/cli/central-bank-events.ts +23 -0
- package/src/cli/command-options.ts +17 -5
- package/src/cli/commands/crypto-hints.ts +28 -2
- package/src/cli/commands/fred-series.ts +89 -4
- package/src/cli/commands/market.ts +101 -18
- package/src/cli/commands/overview.ts +47 -14
- package/src/cli/commands/search.ts +254 -23
- package/src/cli/commands/ticker.ts +73 -13
- package/src/cli/desktop-pane-shot.ts +23 -6
- package/src/cli/errors.ts +7 -5
- package/src/cli/exit-codes.ts +8 -0
- package/src/cli/export-source.ts +58 -0
- package/src/cli/glossary.ts +62 -8
- package/src/cli/help.ts +10 -0
- package/src/cli/helpers.ts +2 -5
- package/src/cli/history-rows.ts +70 -0
- package/src/cli/index.ts +9 -3
- package/src/cli/known-gaps.ts +65 -8
- package/src/cli/listing-arg.ts +182 -89
- package/src/cli/not-a-ticker.ts +12 -4
- package/src/cli/pane-functions/access-gate.ts +8 -2
- package/src/cli/pane-functions/capabilities.ts +1 -1
- package/src/cli/pane-functions/catalog.ts +183 -39
- package/src/cli/pane-functions/data.ts +30 -0
- package/src/cli/pane-functions/dom.ts +17 -2
- package/src/cli/pane-functions/freshness.ts +48 -24
- package/src/cli/pane-functions/function-help.ts +19 -10
- package/src/cli/pane-functions/headless.ts +55 -15
- package/src/cli/pane-functions/index.ts +45 -16
- package/src/cli/pane-functions/options.ts +8 -0
- package/src/cli/pane-functions/resolver.ts +25 -7
- package/src/cli/pane-functions/screenshot.ts +145 -9
- package/src/cli/perpetual-contract.ts +60 -0
- package/src/cli/registry.ts +3 -1
- package/src/cli/report-tables.ts +23 -7
- package/src/cli/result.ts +41 -10
- package/src/cli/series-search.ts +111 -0
- package/src/cli/staged-tickers.ts +1 -1
- package/src/cli/symbol-args.ts +18 -0
- package/src/cli/symbol-list.ts +1 -19
- package/src/cli/symbol-rows.ts +154 -0
- package/src/cli/ticker-resolution.ts +99 -8
- package/src/components/chart/composite/axis-overlays.tsx +8 -1
- package/src/components/chart/composite/composite-chart.tsx +41 -15
- package/src/components/chart/composite/crosshair-readout.tsx +150 -0
- package/src/components/chart/composite/downsample.ts +1 -1
- package/src/components/chart/composite/format.ts +29 -0
- package/src/components/chart/composite/interactions.ts +9 -2
- package/src/components/chart/composite/legend.tsx +52 -32
- package/src/components/chart/composite/panel-bitmap.ts +70 -35
- package/src/components/chart/composite/panel-labels.ts +18 -17
- package/src/components/chart/composite/panel-series.ts +1 -0
- package/src/components/chart/composite/panel-surface.tsx +6 -8
- package/src/components/chart/composite/rasterizer.ts +50 -8
- package/src/components/chart/composite/scene.ts +2 -1
- package/src/components/chart/composite/time-scale.ts +26 -9
- package/src/components/chart/composite/types.ts +18 -0
- package/src/components/chart/composite/use-composite-viewport.ts +30 -2
- package/src/components/chart/native/raster/crosshair.ts +8 -3
- package/src/components/chart/native/raster/primitives.ts +85 -21
- package/src/components/chart/native/surface/manager.ts +33 -8
- package/src/components/chart/surface3d/chart.tsx +1 -1
- package/src/components/command-bar/action-runtime.ts +1 -1
- package/src/components/command-bar/commands/collection-list.ts +210 -0
- package/src/components/command-bar/commands/collection.ts +40 -1
- package/src/components/command-bar/commands/direct/index.ts +4 -0
- package/src/components/command-bar/commands/registry.ts +8 -0
- package/src/components/command-bar/routes/root/plugin-install.ts +4 -4
- package/src/components/command-bar/routing/actions.ts +1 -1
- package/src/components/command-bar/workflow/tickers.ts +35 -29
- package/src/components/layout/detached-pane-shell.tsx +59 -39
- package/src/components/layout/floating-pane.tsx +7 -1
- package/src/components/layout/header.tsx +5 -0
- package/src/components/layout/missing-pane.tsx +3 -3
- package/src/components/layout/pane/capture-stamp.ts +41 -0
- package/src/components/layout/pane/capture-status.ts +12 -0
- package/src/components/layout/pane/footer/keyboard.ts +3 -0
- package/src/components/layout/pane/footer/model.ts +7 -1
- package/src/components/layout/pane/header.tsx +26 -0
- package/src/components/layout/pane/index.tsx +9 -1
- package/src/components/layout/pane/sidebar.tsx +10 -11
- package/src/components/layout/shell/cursor-occlusion.ts +2 -1
- package/src/components/layout/shell/index.tsx +61 -60
- package/src/components/layout/shell/menu.ts +9 -1
- package/src/components/layout/shell/pane/actions.ts +32 -10
- package/src/components/layout/shell/pane/ask.ts +131 -0
- package/src/components/layout/shell/pane/capture.ts +162 -0
- package/src/components/layout/shell/pane/layers.tsx +26 -5
- package/src/components/layout/shell/pane/management-shortcuts.ts +46 -1
- package/src/components/layout/shell/shortcuts.ts +21 -4
- package/src/components/metric-treemap/heat-surface.tsx +1 -3
- package/src/components/reader/article-reader.tsx +642 -0
- package/src/components/reader/article-text.ts +527 -0
- package/src/components/ticker/list-table-view.tsx +19 -1
- package/src/components/ui/data-table/index.tsx +1 -0
- package/src/components/ui/icon.tsx +4 -1
- package/src/components/ui/query-bar.tsx +10 -1
- package/src/data/config/store/migrations.ts +7 -0
- package/src/data/config/store/portfolio-as-of-column.ts +57 -0
- package/src/docs/snapshot.json +162 -23
- package/src/i18n/es.ts +4 -1
- package/src/i18n/ja.ts +4 -1
- package/src/i18n/ko.ts +4 -1
- package/src/i18n/zh-cn.ts +4 -1
- package/src/i18n/zh-tw.ts +4 -1
- package/src/layout-marketplace/gallery.tsx +1 -1
- package/src/market-data/market/freshness.ts +3 -2
- package/src/market-data/market/session-close-note.ts +3 -2
- package/src/market-data/quotes/contributions.ts +2 -0
- package/src/market-data/quotes/metadata.ts +12 -0
- package/src/market-data/quotes/resolution.ts +3 -0
- package/src/notifications/app-notifier.ts +17 -1
- package/src/notifications/notification-log.ts +180 -0
- package/src/plugins/auto-update-node.ts +2 -2
- package/src/plugins/auto-update.ts +2 -2
- package/src/plugins/builtin/account-management/index.tsx +1 -0
- package/src/plugins/builtin/alerts/catalysts.ts +1 -1
- package/src/plugins/builtin/alerts/focus.ts +27 -0
- package/src/plugins/builtin/alerts/index.tsx +6 -2
- package/src/plugins/builtin/alerts/pane.tsx +19 -1
- package/src/plugins/builtin/analytics/index.tsx +4 -1
- package/src/plugins/builtin/analytics/risk-headless.ts +30 -15
- package/src/plugins/builtin/attention/headless.ts +1 -1
- package/src/plugins/builtin/awards/headless.ts +88 -18
- package/src/plugins/builtin/awards/model.ts +41 -1
- package/src/plugins/builtin/awards/pane.tsx +19 -12
- package/src/plugins/builtin/backtest/headless.ts +2 -2
- package/src/plugins/builtin/broker-manager/index.tsx +1 -0
- package/src/plugins/builtin/catalysts/headless.ts +1 -1
- package/src/plugins/builtin/cds/client.ts +11 -31
- package/src/plugins/builtin/cds/headless.ts +5 -2
- package/src/plugins/builtin/cds/model.ts +21 -1
- package/src/plugins/builtin/cds/pane.tsx +6 -4
- package/src/plugins/builtin/central-bank-rates/client.ts +4 -0
- package/src/plugins/builtin/central-bank-rates/headless.ts +46 -16
- package/src/plugins/builtin/central-bank-rates/index.tsx +1 -1
- package/src/plugins/builtin/central-bank-rates/model.ts +99 -0
- package/src/plugins/builtin/central-bank-rates/pane.tsx +1 -1
- package/src/plugins/builtin/central-bank-rates/series.ts +19 -25
- package/src/plugins/builtin/chart-composer/catalog-inventory.ts +1 -0
- package/src/plugins/builtin/chart-composer/headless-schema.ts +1 -1
- package/src/plugins/builtin/chart-composer/headless.ts +65 -5
- package/src/plugins/builtin/chart-composer/index.tsx +6 -1
- package/src/plugins/builtin/chart-composer/pane.tsx +81 -38
- package/src/plugins/builtin/chat/content/composer-runtime.ts +6 -1
- package/src/plugins/builtin/chat/content/composer.tsx +5 -1
- package/src/plugins/builtin/chat/content/footer.tsx +12 -0
- package/src/plugins/builtin/chat/content/index.tsx +89 -5
- package/src/plugins/builtin/chat/content/new-messages.tsx +89 -0
- package/src/plugins/builtin/chat/content/row-activity.ts +132 -0
- package/src/plugins/builtin/chat/content/scroll.ts +127 -27
- package/src/plugins/builtin/chat/content/shortcuts.ts +2 -2
- package/src/plugins/builtin/chat/content/transcript.tsx +145 -78
- package/src/plugins/builtin/chat/content/types.ts +1 -0
- package/src/plugins/builtin/chat/controller/fetch.ts +8 -2
- package/src/plugins/builtin/chat/controller/index.ts +121 -1
- package/src/plugins/builtin/chat/controller/message-loading.ts +3 -0
- package/src/plugins/builtin/chat/controller/messages.ts +7 -2
- package/src/plugins/builtin/chat/controller/realtime.ts +10 -1
- package/src/plugins/builtin/chat/controller/send.ts +61 -1
- package/src/plugins/builtin/chat/controller/state.ts +8 -0
- package/src/plugins/builtin/chat/ghost-user.ts +20 -0
- package/src/plugins/builtin/chat/index.tsx +23 -5
- package/src/plugins/builtin/chat/layout.ts +78 -5
- package/src/plugins/builtin/chat/message/ai-badge.tsx +18 -0
- package/src/plugins/builtin/chat/message/desktop.tsx +55 -6
- package/src/plugins/builtin/chat/message/header.tsx +16 -4
- package/src/plugins/builtin/chat/message/profile-popover.tsx +5 -1
- package/src/plugins/builtin/chat/message/reactions.tsx +210 -0
- package/src/plugins/builtin/chat/message/render-state.ts +18 -2
- package/src/plugins/builtin/chat/message/terminal.tsx +43 -4
- package/src/plugins/builtin/chat/message/types.ts +12 -0
- package/src/plugins/builtin/chat/reactions.ts +197 -0
- package/src/plugins/builtin/chat/share/flow.tsx +87 -0
- package/src/plugins/builtin/chat/share/targets.ts +27 -0
- package/src/plugins/builtin/chat/status-widget.tsx +6 -3
- package/src/plugins/builtin/chat/unread-inbox-pane.tsx +148 -27
- package/src/plugins/builtin/chat/unread-inbox.ts +22 -0
- package/src/plugins/builtin/cloud/askg/attached-pane.tsx +69 -0
- package/src/plugins/builtin/cloud/askg/pane-attachment.ts +94 -0
- package/src/plugins/builtin/cloud/askg/pane.tsx +141 -12
- package/src/plugins/builtin/cloud/askg/pending-question.ts +11 -0
- package/src/plugins/builtin/cloud/plugin.tsx +19 -2
- package/src/plugins/builtin/cloud/team/model.ts +5 -0
- package/src/plugins/builtin/cloud/team/module.tsx +1 -0
- package/src/plugins/builtin/cloud/team/store.ts +8 -3
- package/src/plugins/builtin/cloud/thesis/module.tsx +1 -0
- package/src/plugins/builtin/company-attention/headless.ts +2 -2
- package/src/plugins/builtin/company-kpis/headless.ts +97 -10
- package/src/plugins/builtin/company-kpis/model.ts +24 -2
- package/src/plugins/builtin/company-kpis/pane.tsx +13 -14
- package/src/plugins/builtin/connections/index.ts +1 -0
- package/src/plugins/builtin/cot/headless.ts +1 -1
- package/src/plugins/builtin/cpi/headless.ts +3 -3
- package/src/plugins/builtin/credit-boards/cdx-pane.tsx +10 -1
- package/src/plugins/builtin/credit-boards/client.ts +6 -2
- package/src/plugins/builtin/credit-boards/headless.ts +108 -31
- package/src/plugins/builtin/credit-boards/model.ts +11 -1
- package/src/plugins/builtin/credit-conditions/client.ts +12 -9
- package/src/plugins/builtin/credit-conditions/headless.ts +13 -2
- package/src/plugins/builtin/credit-conditions/index.tsx +16 -9
- package/src/plugins/builtin/credit-conditions/model.ts +19 -11
- package/src/plugins/builtin/credit-conditions/series.ts +8 -18
- package/src/plugins/builtin/credit-documents/headless.ts +2 -2
- package/src/plugins/builtin/debt-maturities/headless.ts +17 -11
- package/src/plugins/builtin/dividend-yield/client.ts +3 -0
- package/src/plugins/builtin/dividend-yield/headless.ts +5 -2
- package/src/plugins/builtin/dividend-yield/index.tsx +1 -1
- package/src/plugins/builtin/dividend-yield/pane.tsx +3 -1
- package/src/plugins/builtin/dividend-yield/types.ts +2 -0
- package/src/plugins/builtin/doe/headless.ts +12 -8
- package/src/plugins/builtin/earnings/index.tsx +9 -0
- package/src/plugins/builtin/earnings-calls/headless.ts +28 -2
- package/src/plugins/builtin/earnings-calls/index.tsx +1 -1
- package/src/plugins/builtin/earnings-ripple/index.tsx +2 -0
- package/src/plugins/builtin/econ/fred-catalog.ts +9 -0
- package/src/plugins/builtin/equity-screener/headless.ts +3 -3
- package/src/plugins/builtin/estimate-revisions/headless.ts +3 -3
- package/src/plugins/builtin/exposure/drivers.ts +13 -0
- package/src/plugins/builtin/exposure/headless.ts +205 -13
- package/src/plugins/builtin/exposure/index.tsx +1 -0
- package/src/plugins/builtin/exposure/model.ts +23 -3
- package/src/plugins/builtin/exposure/pane.tsx +11 -11
- package/src/plugins/builtin/fear-greed/index.tsx +14 -10
- package/src/plugins/builtin/futures-curve/headless.ts +1 -1
- package/src/plugins/builtin/futures-curve/index.tsx +1 -1
- package/src/plugins/builtin/fx-matrix/client.ts +63 -0
- package/src/plugins/builtin/fx-matrix/export.ts +2 -1
- package/src/plugins/builtin/fx-matrix/headless.ts +154 -0
- package/src/plugins/builtin/fx-matrix/index.tsx +3 -3
- package/src/plugins/builtin/gpu/headless.ts +4 -4
- package/src/plugins/builtin/help/function-index.ts +2 -0
- package/src/plugins/builtin/help/index.tsx +14 -1
- package/src/plugins/builtin/ipo-calendar/headless.ts +1 -1
- package/src/plugins/builtin/iv-history/client.ts +6 -2
- package/src/plugins/builtin/iv-history/format.ts +9 -0
- package/src/plugins/builtin/iv-history/headless.ts +50 -18
- package/src/plugins/builtin/iv-history/model.ts +35 -4
- package/src/plugins/builtin/jobs/headless.ts +6 -8
- package/src/plugins/builtin/kelly-sizer/index.tsx +2 -0
- package/src/plugins/builtin/market-heatmap/headless.ts +20 -5
- package/src/plugins/builtin/market-heatmap/index.tsx +6 -0
- package/src/plugins/builtin/members/headless.ts +1 -1
- package/src/plugins/builtin/members/pane.tsx +3 -2
- package/src/plugins/builtin/mna/distress/headless.ts +4 -4
- package/src/plugins/builtin/mna/headless.ts +3 -3
- package/src/plugins/builtin/money-markets/headless.ts +5 -4
- package/src/plugins/builtin/news/index.tsx +0 -2
- package/src/plugins/builtin/news/wire/news/detail-view.tsx +53 -104
- package/src/plugins/builtin/news/wire/news/footer.ts +2 -25
- package/src/plugins/builtin/news/wire/news/preset-pane.tsx +0 -2
- package/src/plugins/builtin/notes/index.tsx +1 -0
- package/src/plugins/builtin/options/index.tsx +3 -0
- package/src/plugins/builtin/options-positioning/headless.ts +3 -3
- package/src/plugins/builtin/perps/client.ts +50 -10
- package/src/plugins/builtin/perps/equity-row.tsx +29 -16
- package/src/plugins/builtin/perps/headless.ts +2 -2
- package/src/plugins/builtin/perps/index.tsx +5 -3
- package/src/plugins/builtin/perps/list-perpetuals.ts +118 -0
- package/src/plugins/builtin/perps/open-market.ts +15 -0
- package/src/plugins/builtin/plugin-marketplace/index.tsx +1 -1
- package/src/plugins/builtin/plugin-marketplace/pane.tsx +6 -6
- package/src/plugins/builtin/portfolio-list/allocation.ts +5 -4
- package/src/plugins/builtin/portfolio-list/cell-version.ts +8 -1
- package/src/plugins/builtin/portfolio-list/cli/bulk-symbols.ts +23 -135
- package/src/plugins/builtin/portfolio-list/cli/portfolio-command.ts +59 -15
- package/src/plugins/builtin/portfolio-list/cli/render.ts +248 -51
- package/src/plugins/builtin/portfolio-list/cli/shared.ts +5 -12
- package/src/plugins/builtin/portfolio-list/cli/watchlist-command.ts +3 -2
- package/src/plugins/builtin/portfolio-list/column-values.ts +103 -25
- package/src/plugins/builtin/portfolio-list/headless.ts +51 -15
- package/src/plugins/builtin/portfolio-list/index.tsx +5 -1
- package/src/plugins/builtin/portfolio-list/mutations.ts +2 -9
- package/src/plugins/builtin/portfolio-list/pane/data.ts +5 -1
- package/src/plugins/builtin/portfolio-list/pane/index.tsx +46 -8
- package/src/plugins/builtin/portfolio-list/quick-add/index.tsx +16 -10
- package/src/plugins/builtin/portfolio-list/quick-add/resolution.ts +21 -1
- package/src/plugins/builtin/portfolio-list/settings.ts +17 -0
- package/src/plugins/builtin/portfolio-list/summary/index.tsx +12 -0
- package/src/plugins/builtin/portfolio-list/summary/totals.ts +8 -3
- package/src/plugins/builtin/portfolio-list/table.tsx +30 -6
- package/src/plugins/builtin/power/evidence.ts +57 -8
- package/src/plugins/builtin/power/headless.ts +6 -2
- package/src/plugins/builtin/power/index.tsx +24 -2
- package/src/plugins/builtin/power/model.ts +2 -2
- package/src/plugins/builtin/power/pane.tsx +5 -0
- package/src/plugins/builtin/power/prices-client.ts +139 -0
- package/src/plugins/builtin/power/prices-headless.ts +137 -0
- package/src/plugins/builtin/power/prices-model.ts +103 -0
- package/src/plugins/builtin/power/prices.tsx +179 -0
- package/src/plugins/builtin/rate-path/headless.ts +38 -18
- package/src/plugins/builtin/relative-rotation/headless.ts +3 -3
- package/src/plugins/builtin/research/index.tsx +2 -0
- package/src/plugins/builtin/research-search/article.ts +65 -0
- package/src/plugins/builtin/research-search/document-view.tsx +33 -215
- package/src/plugins/builtin/research-search/model.ts +0 -9
- package/src/plugins/builtin/research-search/pane.tsx +41 -30
- package/src/plugins/builtin/research-search/snippet.ts +0 -29
- package/src/plugins/builtin/revenue-breakdown/headless.ts +18 -6
- package/src/plugins/builtin/sec/headless.ts +25 -3
- package/src/plugins/builtin/sec/index.tsx +2 -1
- package/src/plugins/builtin/series-inventory.ts +2 -0
- package/src/plugins/builtin/shared/cloud-denied.ts +15 -0
- package/src/plugins/builtin/shared/free-preview.ts +47 -0
- package/src/plugins/builtin/shared/report-freshness.ts +3 -1
- package/src/plugins/builtin/shared/volatility/options.ts +4 -1
- package/src/plugins/builtin/short-interest/watch-headless.ts +2 -2
- package/src/plugins/builtin/short-volume/headless.ts +1 -1
- package/src/plugins/builtin/social-mentions/headless.ts +1 -1
- package/src/plugins/builtin/supply-chain/headless.ts +43 -11
- package/src/plugins/builtin/supply-chain/model.ts +13 -0
- package/src/plugins/builtin/supply-chain/pane.tsx +5 -5
- package/src/plugins/builtin/themes/headless.ts +74 -10
- package/src/plugins/builtin/themes/model.ts +71 -4
- package/src/plugins/builtin/themes/pane.tsx +22 -5
- package/src/plugins/builtin/ticker-detail/data-panes/returns-history.ts +114 -0
- package/src/plugins/builtin/ticker-detail/data-panes/returns-model.ts +57 -2
- package/src/plugins/builtin/ticker-detail/data-panes/returns-pane.tsx +19 -55
- package/src/plugins/builtin/ticker-detail/headless-schema.ts +30 -0
- package/src/plugins/builtin/ticker-detail/headless.ts +86 -0
- package/src/plugins/builtin/ticker-detail/index.tsx +23 -11
- package/src/plugins/builtin/ticker-detail/overview-tab.tsx +1 -1
- package/src/plugins/builtin/time-sales/headless.ts +1 -1
- package/src/plugins/builtin/time-sales/index.tsx +2 -1
- package/src/plugins/builtin/vol-surface/evidence.ts +7 -1
- package/src/plugins/builtin/vol-surface/headless.ts +50 -17
- package/src/plugins/builtin/vol-surface/heat-grid.tsx +113 -0
- package/src/plugins/builtin/vol-surface/model.ts +39 -6
- package/src/plugins/builtin/vol-surface/pane.tsx +14 -13
- package/src/plugins/builtin/vol-surface/stored.ts +63 -3
- package/src/plugins/builtin/vol-surface/surface.tsx +30 -2
- package/src/plugins/builtin/world-venue-map/basemap-layer.tsx +6 -5
- package/src/plugins/builtin/world-venue-map/basemap.ts +6 -3
- package/src/plugins/builtin/world-venue-map/geo-draw.tsx +2 -1
- package/src/plugins/builtin/world-venue-map/geo-svg.tsx +6 -6
- package/src/plugins/builtin/world-venue-map/layered-pane.tsx +16 -9
- package/src/plugins/builtin/world-venue-map/map.tsx +144 -13
- package/src/plugins/builtin/world-venue-map/model.ts +56 -19
- package/src/plugins/builtin/world-venue-map/pane.tsx +5 -2
- package/src/plugins/builtin/yield-curve/index.tsx +1 -1
- package/src/plugins/installer.ts +2 -2
- package/src/plugins/loader.ts +15 -0
- package/src/plugins/manager-node.ts +1 -1
- package/src/plugins/{builtin/plugin-marketplace → marketplace}/feed.ts +2 -2
- package/src/plugins/{builtin/plugin-marketplace → marketplace}/model.ts +6 -6
- package/src/plugins/{builtin/plugin-marketplace → marketplace}/store.ts +1 -1
- package/src/plugins/registry/host-actions.ts +11 -0
- package/src/portfolio/collection-name.ts +31 -0
- package/src/portfolio/valuation-basis.ts +79 -0
- package/src/public/time-series.ts +1 -1
- package/src/react/input.ts +33 -1
- package/src/react/key-repeat.ts +86 -0
- package/src/remote/controller.ts +21 -1
- package/src/remote/schema.ts +3 -2
- package/src/renderers/browser/main.tsx +1 -1
- package/src/renderers/browser/research-entry.ts +4 -2
- package/src/renderers/dom/data-table/row.tsx +3 -0
- package/src/renderers/dom/desktop/icons.tsx +9 -0
- package/src/renderers/dom/host/block-glyph-canvas.tsx +6 -3
- package/src/renderers/dom/host/box.tsx +7 -2
- package/src/renderers/dom/host/chart-surface.tsx +27 -0
- package/src/renderers/dom/host/scroll-box.tsx +32 -0
- package/src/renderers/dom/host/size-observer.ts +24 -9
- package/src/renderers/dom/host/sticky-scroll.ts +128 -0
- package/src/renderers/dom/host/style.ts +1 -1
- package/src/renderers/dom/host/surface-3d.tsx +13 -6
- package/src/renderers/dom/host/surface-fit.ts +406 -0
- package/src/renderers/dom/input-host.tsx +1 -0
- package/src/renderers/dom/styles.css +48 -12
- package/src/renderers/electrobun/bun/application-menu/click.ts +18 -0
- package/src/renderers/electrobun/bun/index.ts +3 -2
- package/src/renderers/electrobun/shared/protocol.ts +1 -1
- package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +12 -0
- package/src/renderers/electrobun/view/cli-pane-shot-frame.tsx +59 -24
- package/src/renderers/electrobun/view/main.tsx +3 -3
- package/src/renderers/electrobun/view/remote/asset-data-client.ts +2 -0
- package/src/renderers/opentui/chart-surface.tsx +1 -0
- package/src/renderers/opentui/frame-capture.ts +33 -0
- package/src/renderers/opentui/host.tsx +10 -13
- package/src/renderers/opentui/pane-image/glyphs-license.txt +107 -0
- package/src/renderers/opentui/pane-image/glyphs.json +1 -0
- package/src/renderers/opentui/pane-image/index.ts +107 -0
- package/src/renderers/opentui/pane-image/raster.ts +428 -0
- package/src/renderers/opentui/start.tsx +3 -3
- package/src/renderers/opentui/test-utils.tsx +3 -0
- package/src/renderers/opentui/ui-host.tsx +29 -1
- package/src/series/resolve.ts +3 -2
- package/src/series/types.ts +8 -0
- package/src/series/validate.ts +1 -1
- package/src/shares/chat.ts +34 -0
- package/src/shares/dialog.tsx +295 -0
- package/src/shares/flow.tsx +56 -0
- package/src/shares/live.ts +14 -22
- package/src/shares/pane-image.ts +152 -0
- package/src/shares/personal-pane.ts +64 -0
- package/src/shares/portable-layout.ts +4 -2
- package/src/shares/prepare.ts +20 -0
- package/src/sources/gloomberb-cloud/index.ts +102 -3
- package/src/sources/gloomberb-cloud/normalizers.ts +2 -0
- package/src/sources/gloomberb-cloud/perpetuals.ts +249 -0
- package/src/sources/history-retention.ts +11 -0
- package/src/sources/listing-target.ts +4 -0
- package/src/sources/provider-router/index.ts +14 -0
- package/src/state/hooks/inline-tickers.ts +49 -11
- package/src/test-support/shell-pane-keys.tsx +1 -0
- package/src/theme/theme-context.tsx +15 -1
- package/src/tickers/instrument-kind.ts +9 -1
- package/src/tickers/listing-name.ts +34 -0
- package/src/tickers/listing-venues.ts +132 -0
- package/src/tickers/open-target.ts +11 -3
- package/src/tickers/perpetual-listing.ts +151 -0
- package/src/tickers/prediction-listing.ts +26 -0
- package/src/tickers/search/index.ts +27 -4
- package/src/tickers/search/ranking.ts +66 -4
- package/src/tickers/ticker-changes.ts +213 -0
- package/src/time-series/economic.ts +2 -6
- package/src/time-series/ice-credit.ts +39 -0
- package/src/time-series/resolve.ts +116 -13
- package/src/time-series/studies.ts +1 -0
- package/src/time-series/types.ts +8 -0
- package/src/types/config.ts +4 -2
- package/src/types/data-provider.ts +6 -0
- package/src/types/financials.ts +10 -0
- package/src/types/headless.ts +52 -0
- package/src/types/instrument.ts +4 -0
- package/src/types/plugin.ts +33 -2
- package/src/types/ticker-changes.ts +26 -0
- package/src/ui/context-menu.tsx +13 -1
- package/src/ui/host.tsx +43 -7
- package/src/ui/live-resize.ts +10 -0
- package/src/ui/live-stretch.ts +51 -19
- package/src/ui/sticky-scroll.ts +7 -0
- package/src/utils/central-banks.ts +76 -0
- package/src/utils/cli-output.ts +126 -16
- package/src/utils/currency-units.ts +11 -0
- package/src/utils/datetime-format.ts +27 -6
- package/src/utils/dom-screenshot.ts +3 -1
- package/src/utils/double-escape-close.ts +15 -1
- package/src/utils/exchanges.ts +36 -0
- package/src/utils/format.ts +19 -2
- package/src/utils/forward-dividend.ts +14 -0
- package/src/utils/fx-status.ts +6 -1
- package/src/utils/inline-content-tokenizer.ts +22 -3
- package/src/utils/market-capitalization.ts +8 -0
- package/src/utils/one-shot.ts +73 -0
- package/src/utils/options.ts +37 -8
- package/src/utils/utc-time.ts +12 -0
- package/src/ui/pane-fill.ts +0 -11
- /package/src/plugins/{builtin/plugin-marketplace → marketplace}/activation.ts +0 -0
- /package/src/plugins/{builtin/plugin-marketplace → marketplace}/ids.ts +0 -0
- /package/src/plugins/{builtin/plugin-marketplace → marketplace}/packs.ts +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gloomberb",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.6",
|
|
4
4
|
"packageManager": "bun@1.3.11",
|
|
5
5
|
"description": "Market research and portfolio tracker for the terminal",
|
|
6
6
|
"module": "src/public/index.ts",
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"plugins:registry:check": "bun run scripts/check-registry-plugins.ts",
|
|
69
69
|
"web:proxy-hosts": "bun run scripts/generate-web-proxy-hosts.ts",
|
|
70
70
|
"map:data": "bun run scripts/generate-world-map-data.ts",
|
|
71
|
+
"glyphs:terminal": "bun run scripts/generate-terminal-glyphs.ts",
|
|
71
72
|
"macro-releases:update": "bun run scripts/update-macro-releases.ts",
|
|
72
73
|
"web:proxy-hosts:check": "bun run scripts/generate-web-proxy-hosts.ts --check",
|
|
73
74
|
"typecheck": "bun run typecheck:opentui && bun run typecheck:dom && bun run typecheck:cloudflare && bun run typecheck:scripts && bun run typecheck:plugin-tests",
|
|
@@ -29,7 +29,12 @@ export interface CentralBankRow {
|
|
|
29
29
|
/** When the bank's own site last showed the same level as a lagging BIS observation. */
|
|
30
30
|
confirmedAt?: string | null
|
|
31
31
|
confirmationSourceUrl?: string | null
|
|
32
|
-
|
|
32
|
+
/** The bank's next decision from its own published calendar, or China's next 1-year LPR fixing (`kind`). */
|
|
33
|
+
nextMeeting: { date: string; sourceUrl: string; verifiedAt: string; kind?: "decision" | "fixing" } | null
|
|
34
|
+
/** Why `nextMeeting` is null; older servers leave it out, and a null meeting then reads as not published. */
|
|
35
|
+
nextMeetingStatus?: "scheduled" | "not-published" | "not-verified" | "no-policy-rate"
|
|
36
|
+
/** The BIS series definition and breaks, also in `notes`: history a citation of the latest rate leaves out. */
|
|
37
|
+
seriesNotes?: string[]
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
export interface CentralBankRatesPayload {
|
package/src/api-client/chat.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
normalizeChatDiscordLink,
|
|
5
5
|
normalizeChatMessage,
|
|
6
6
|
normalizeChatMessages,
|
|
7
|
+
normalizeChatReactions,
|
|
7
8
|
normalizeChatState,
|
|
8
9
|
} from "./normalizers";
|
|
9
10
|
import { CHAT_ATTACHMENTS_FEATURE, type CloudApiSocket } from "./socket";
|
|
@@ -14,6 +15,7 @@ import type {
|
|
|
14
15
|
ChatDiscordLink,
|
|
15
16
|
ChatMessage,
|
|
16
17
|
ChatNotification,
|
|
18
|
+
ChatReactionsUpdate,
|
|
17
19
|
ChatStateResponse,
|
|
18
20
|
} from "./types";
|
|
19
21
|
import type { CloudApiRequest } from "./request";
|
|
@@ -258,6 +260,30 @@ export class CloudChatApi {
|
|
|
258
260
|
return normalizeChatMessage(message);
|
|
259
261
|
}
|
|
260
262
|
|
|
263
|
+
/**
|
|
264
|
+
* Sets your reaction with one emoji on a message; setting what is already
|
|
265
|
+
* there changes nothing. Answers the message's reactions as they stand.
|
|
266
|
+
*/
|
|
267
|
+
async setReaction(
|
|
268
|
+
channelId: string,
|
|
269
|
+
messageId: string,
|
|
270
|
+
emoji: string,
|
|
271
|
+
reacted: boolean,
|
|
272
|
+
): Promise<ChatReactionsUpdate> {
|
|
273
|
+
const answer = await this.request<{ reactions?: unknown }>(
|
|
274
|
+
`/chat/channels/${channelId}/messages/${messageId}/reactions`,
|
|
275
|
+
{
|
|
276
|
+
method: "PUT",
|
|
277
|
+
body: JSON.stringify({ emoji, reacted }),
|
|
278
|
+
},
|
|
279
|
+
);
|
|
280
|
+
return { channelId, messageId, reactions: normalizeChatReactions(answer?.reactions) };
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
subscribeReactions(listener: (update: ChatReactionsUpdate) => void): () => void {
|
|
284
|
+
return this.options.socket.subscribeChatReactions(listener);
|
|
285
|
+
}
|
|
286
|
+
|
|
261
287
|
/** Whether this account is tied to a Discord person. Throws a 404 or 501 `ApiRequestError` on a server without Discord sync. */
|
|
262
288
|
async getDiscordLink(): Promise<ChatDiscordLink> {
|
|
263
289
|
return normalizeChatDiscordLink(await this.options.request<unknown>("/chat/discord/link"));
|
|
@@ -27,6 +27,8 @@ export interface CdxBoardIndex {
|
|
|
27
27
|
/** In the quote's unit, on one contract across a roll. */
|
|
28
28
|
change1D: number | null;
|
|
29
29
|
change1W: number | null;
|
|
30
|
+
/** Absent from a server that predates it. */
|
|
31
|
+
change1M?: number | null;
|
|
30
32
|
/** Oldest first, the on-the-run 5Y contract each day. */
|
|
31
33
|
points: CreditBoardPoint[];
|
|
32
34
|
}
|
package/src/api-client/data.ts
CHANGED
|
@@ -5,7 +5,8 @@ import type { CatalystResponse, CatalystDetail, CatalystFilters, CatalystStatus,
|
|
|
5
5
|
import type { KpisPayload, GuidancePayload, KpiQueryOptions } from "./company-kpis";
|
|
6
6
|
import { companyDisclosurePath } from "./company-kpis";
|
|
7
7
|
import type { PowerBoard, PowerDetail, PowerFilter, PowerHistory } from "./power";
|
|
8
|
-
import type { PerpBoardPayload, PerpHistoryPayload, PerpRankingsPayload, PerpBoardQuery, PerpHistoryQuery,
|
|
8
|
+
import type { PerpBoardPayload, PerpEquitiesPayload, PerpEquityListing, PerpHistoryPayload, PerpRankingsPayload, PerpBoardQuery, PerpHistoryQuery,
|
|
9
|
+
PerpMarketPayload } from "./perps";
|
|
9
10
|
import type { ExposureRequest, ExposurePayload, ExposureScenario } from "./exposure";
|
|
10
11
|
import type { SupplyChainPayload, SupplyOptions } from "./supply-chain";
|
|
11
12
|
import { supplyGraphQuery, type GraphOptions, type GraphPayload } from "./supply-chain-graph";
|
|
@@ -23,6 +24,7 @@ import {
|
|
|
23
24
|
type InsolvencyNoticesParams,
|
|
24
25
|
} from "./distress";
|
|
25
26
|
import type { IpoCalendarParams, IpoCalendarPayload } from "./ipo";
|
|
27
|
+
import type { TickerChanges } from "../types/ticker-changes";
|
|
26
28
|
import type { CryptoMarketsPayload } from "./crypto-markets";
|
|
27
29
|
import type { CentralBankRatesPayload } from "./central-bank-rates";
|
|
28
30
|
import type { EstimateRevisionsPayload } from "./estimate-revisions";
|
|
@@ -35,6 +37,7 @@ import type { SocialMentionDayPosts, SocialMentionsPayload, SocialMentionsRange
|
|
|
35
37
|
import type { FuturesContractTermsPayload, FuturesCurveAsOfPayload, FuturesCurvePayload } from "./futures-curve";
|
|
36
38
|
import type { CotBoardPayload, CotContractPayload, CotFamily, CotClass } from "./cot";
|
|
37
39
|
import type { DoeBoardPayload } from "./doe";
|
|
40
|
+
import type { CarbonBoard, CarbonHistory, EuropePowerBoard, EuropePowerHistory } from "./europe-energy";
|
|
38
41
|
import type { GpuBoardPayload, GpuEventsPayload, GpuHistoryPayload, GpuHistoryQuery } from "./gpu";
|
|
39
42
|
import type { CpiBoardPayload } from "./cpi";
|
|
40
43
|
import type { TapeSnapshot } from "./tape";
|
|
@@ -110,6 +113,7 @@ import type {
|
|
|
110
113
|
CloudAnalystResearchPayload,
|
|
111
114
|
CloudShortInterestPayload,
|
|
112
115
|
CloudCdsHistoryResponse,
|
|
116
|
+
CloudCdsLevelsResponse,
|
|
113
117
|
CloudCdsResponse,
|
|
114
118
|
CloudCongressHousePayload,
|
|
115
119
|
CloudEarningsCallListPayload,
|
|
@@ -373,6 +377,17 @@ export class CloudDataApi {
|
|
|
373
377
|
);
|
|
374
378
|
}
|
|
375
379
|
|
|
380
|
+
/** Where the issuer that held a US symbol trades now, or what the symbol's holder was called before. */
|
|
381
|
+
async getCloudTickerChanges(
|
|
382
|
+
symbol: string,
|
|
383
|
+
options: { signal?: AbortSignal } = {},
|
|
384
|
+
): Promise<CloudMarketResponse<TickerChanges>> {
|
|
385
|
+
return this.request<CloudMarketResponse<TickerChanges>>(
|
|
386
|
+
`/market/ticker-changes?${new URLSearchParams({ symbol: symbol.trim().toUpperCase() })}`,
|
|
387
|
+
options.signal ? { signal: options.signal } : undefined,
|
|
388
|
+
);
|
|
389
|
+
}
|
|
390
|
+
|
|
376
391
|
async getCloudHistory(
|
|
377
392
|
symbol: string,
|
|
378
393
|
exchange: string,
|
|
@@ -518,6 +533,9 @@ export class CloudDataApi {
|
|
|
518
533
|
const query = exchange === undefined ? "" : `?${new URLSearchParams({ identity: "listing", exchange })}`;
|
|
519
534
|
return this.request(`/cloud/perps/equity/${encodeURIComponent(symbol)}${query}`);
|
|
520
535
|
}
|
|
536
|
+
async getCloudPerpsEquities(listings: readonly PerpEquityListing[]): Promise<PerpEquitiesPayload> {
|
|
537
|
+
return this.request("/cloud/perps/equities", { method: "POST", body: JSON.stringify({ listings }) });
|
|
538
|
+
}
|
|
521
539
|
async getCloudPerpsMarket(marketId: string): Promise<PerpMarketPayload> { return this.request(`/cloud/perps/market?${new URLSearchParams({ marketId })}`); }
|
|
522
540
|
|
|
523
541
|
async analyzeCloudExposure(request: ExposureRequest): Promise<ExposurePayload> {
|
|
@@ -577,6 +595,31 @@ export class CloudDataApi {
|
|
|
577
595
|
return this.request<PowerDetail>(`/cloud/power/projects/${encodeURIComponent(id)}?${params}`, { signal });
|
|
578
596
|
}
|
|
579
597
|
|
|
598
|
+
/** European day-ahead power prices by country, latest day first per market. */
|
|
599
|
+
async getCloudEuropePower(): Promise<EuropePowerBoard> {
|
|
600
|
+
return this.request<EuropePowerBoard>("/cloud/europe-energy/power", { signal: AbortSignal.timeout(30_000) });
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
/** One market's daily day-ahead prices from `from` (all of them without one), oldest first. */
|
|
604
|
+
async getCloudEuropePowerHistory(code: string, from?: string | null): Promise<EuropePowerHistory> {
|
|
605
|
+
const query = from ? `?${new URLSearchParams({ from })}` : "";
|
|
606
|
+
return this.request<EuropePowerHistory>(
|
|
607
|
+
`/cloud/europe-energy/power/${encodeURIComponent(code)}/history${query}`,
|
|
608
|
+
{ signal: AbortSignal.timeout(30_000) },
|
|
609
|
+
);
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
/** The EU carbon allowance (EUA) auction price as of its latest auction day, with the latest auctions. */
|
|
613
|
+
async getCloudEuropeCarbon(): Promise<CarbonBoard> {
|
|
614
|
+
return this.request<CarbonBoard>("/cloud/europe-energy/carbon", { signal: AbortSignal.timeout(30_000) });
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
/** The daily EUA auction price from `from` (every auction day since 2020 without one), oldest first. */
|
|
618
|
+
async getCloudEuropeCarbonHistory(from?: string | null): Promise<CarbonHistory> {
|
|
619
|
+
const query = from ? `?${new URLSearchParams({ from })}` : "";
|
|
620
|
+
return this.request<CarbonHistory>(`/cloud/europe-energy/carbon/history${query}`, { signal: AbortSignal.timeout(30_000) });
|
|
621
|
+
}
|
|
622
|
+
|
|
580
623
|
async getCloudGpuBoard(): Promise<GpuBoardPayload> {
|
|
581
624
|
return this.request<GpuBoardPayload>("/cloud/gpu/board");
|
|
582
625
|
}
|
|
@@ -735,6 +778,11 @@ export class CloudDataApi {
|
|
|
735
778
|
return this.request<CloudCdsHistoryResponse>(cloudCdsHistoryPath(params), { signal: AbortSignal.timeout(30_000) });
|
|
736
779
|
}
|
|
737
780
|
|
|
781
|
+
/** Every listed issuer's latest 5Y level in one request. */
|
|
782
|
+
async getCloudCdsLevels(): Promise<CloudCdsLevelsResponse> {
|
|
783
|
+
return this.request<CloudCdsLevelsResponse>("/cloud/credit/cds/levels", { signal: AbortSignal.timeout(30_000) });
|
|
784
|
+
}
|
|
785
|
+
|
|
738
786
|
async getCloudCdxBoard(params: CloudCreditBoardParams = {}): Promise<CdxBoardPayload> {
|
|
739
787
|
return this.request<CdxBoardPayload>(cloudCreditBoardPath("cdx", params), { signal: AbortSignal.timeout(30_000) });
|
|
740
788
|
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/** Who publishes the prices; their licence asks for this attribution. */
|
|
2
|
+
interface EuropeEnergySource {
|
|
3
|
+
name: string;
|
|
4
|
+
licence: string;
|
|
5
|
+
url: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/** One market's latest day-ahead price and its context, all as of `date`. */
|
|
9
|
+
export interface PowerPriceRow {
|
|
10
|
+
/** ISO 3166 alpha-2: DE, FR, GB. */
|
|
11
|
+
code: string;
|
|
12
|
+
name: string;
|
|
13
|
+
/** Latest delivery day with a price. */
|
|
14
|
+
date: string | null;
|
|
15
|
+
/** EUR/MWh, the day's load-weighted average of the day-ahead auction. */
|
|
16
|
+
price: number | null;
|
|
17
|
+
previousDate: string | null;
|
|
18
|
+
change: number | null;
|
|
19
|
+
average7: number | null;
|
|
20
|
+
average30: number | null;
|
|
21
|
+
yearAgoDate: string | null;
|
|
22
|
+
yearAgo: number | null;
|
|
23
|
+
low52w: number | null;
|
|
24
|
+
high52w: number | null;
|
|
25
|
+
/** Weekly means over the year to `date`, oldest first. */
|
|
26
|
+
trail: Array<{ date: string; value: number }>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface EuropePowerBoard {
|
|
30
|
+
generatedAt: string;
|
|
31
|
+
status: "available" | "unavailable";
|
|
32
|
+
market: "day-ahead";
|
|
33
|
+
unit: "EUR/MWh";
|
|
34
|
+
source: EuropeEnergySource;
|
|
35
|
+
/** When the published file was last read, and when its publisher last changed it. */
|
|
36
|
+
checkedAt: string | null;
|
|
37
|
+
publishedAt: string | null;
|
|
38
|
+
gaps: string[];
|
|
39
|
+
rows: PowerPriceRow[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface EuropePowerHistory {
|
|
43
|
+
code: string;
|
|
44
|
+
name: string;
|
|
45
|
+
market: "day-ahead";
|
|
46
|
+
unit: "EUR/MWh";
|
|
47
|
+
source: EuropeEnergySource;
|
|
48
|
+
/** Oldest first. */
|
|
49
|
+
points: Array<{ date: string; value: number }>;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** One EU ETS primary-market auction. Prices in EUR/tCO2, volumes in tCO2. */
|
|
53
|
+
interface CarbonAuction {
|
|
54
|
+
date: string;
|
|
55
|
+
auction: string;
|
|
56
|
+
contract: string;
|
|
57
|
+
/** successful, cancelled. */
|
|
58
|
+
status: string;
|
|
59
|
+
/** EU (common platform), DE, PL, XI (Northern Ireland). */
|
|
60
|
+
zone: string | null;
|
|
61
|
+
/** Null when the auction did not clear. */
|
|
62
|
+
price: number | null;
|
|
63
|
+
minBid: number | null;
|
|
64
|
+
maxBid: number | null;
|
|
65
|
+
meanBid: number | null;
|
|
66
|
+
medianBid: number | null;
|
|
67
|
+
volume: number;
|
|
68
|
+
coverRatio: number | null;
|
|
69
|
+
bidders: number | null;
|
|
70
|
+
successfulBidders: number | null;
|
|
71
|
+
/** An aviation allowance (EUAA) auction, which is not the EUA price. */
|
|
72
|
+
aviation: boolean;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** The EUA price as of its latest auction day: the day's cleared auctions, volume-weighted. */
|
|
76
|
+
interface CarbonPriceRow extends Omit<PowerPriceRow, "code"> {
|
|
77
|
+
code: "EUA";
|
|
78
|
+
/** tCO2 auctioned that day, and in how many auctions. */
|
|
79
|
+
volume: number | null;
|
|
80
|
+
auctions: number | null;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface CarbonBoard {
|
|
84
|
+
generatedAt: string;
|
|
85
|
+
status: "available" | "unavailable";
|
|
86
|
+
/** The primary auction clearing price, not a futures settlement. */
|
|
87
|
+
market: "primary auction";
|
|
88
|
+
unit: "EUR/tCO2";
|
|
89
|
+
source: { name: string; url: string };
|
|
90
|
+
checkedAt: string | null;
|
|
91
|
+
publishedAt: string | null;
|
|
92
|
+
gaps: string[];
|
|
93
|
+
row: CarbonPriceRow;
|
|
94
|
+
/** Newest first. */
|
|
95
|
+
auctions: CarbonAuction[];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface CarbonHistory {
|
|
99
|
+
code: "EUA";
|
|
100
|
+
name: string;
|
|
101
|
+
market: "primary auction";
|
|
102
|
+
unit: "EUR/tCO2";
|
|
103
|
+
source: { name: string; url: string };
|
|
104
|
+
/** Each auction day's price, oldest first. */
|
|
105
|
+
points: Array<{ date: string; value: number }>;
|
|
106
|
+
}
|
package/src/api-client/index.ts
CHANGED
|
@@ -643,6 +643,8 @@ class GloomApiClient {
|
|
|
643
643
|
chatAttachmentsSupported = this.chat.attachmentsSupported.bind(this.chat);
|
|
644
644
|
subscribeChatAttachmentSupport = this.chat.subscribeAttachmentSupport.bind(this.chat);
|
|
645
645
|
editMessage = this.chat.editMessage.bind(this.chat);
|
|
646
|
+
setChatReaction = this.chat.setReaction.bind(this.chat);
|
|
647
|
+
subscribeChatReactions = this.chat.subscribeReactions.bind(this.chat);
|
|
646
648
|
connectChannel = this.chat.connectChannel.bind(this.chat);
|
|
647
649
|
subscribeChatNotifications = this.chat.subscribeNotifications.bind(this.chat);
|
|
648
650
|
subscribeChatPresence = this.chat.subscribePresence.bind(this.chat);
|
|
@@ -738,6 +740,7 @@ class GloomApiClient {
|
|
|
738
740
|
getCloudShortInterest = this.data.getCloudShortInterest.bind(this.data);
|
|
739
741
|
getCloudAnalystResearch = this.data.getCloudAnalystResearch.bind(this.data);
|
|
740
742
|
getCloudCorporateActions = this.data.getCloudCorporateActions.bind(this.data);
|
|
743
|
+
getCloudTickerChanges = this.data.getCloudTickerChanges.bind(this.data);
|
|
741
744
|
getCloudHistory = this.data.getCloudHistory.bind(this.data);
|
|
742
745
|
getCloudExchangeRate = this.data.getCloudExchangeRate.bind(this.data);
|
|
743
746
|
getCloudEconomicCalendar = this.data.getCloudEconomicCalendar.bind(this.data);
|
|
@@ -796,6 +799,7 @@ class GloomApiClient {
|
|
|
796
799
|
getCloudPerpsRankings = this.data.getCloudPerpsRankings.bind(this.data);
|
|
797
800
|
getCloudPerpsCompare = this.data.getCloudPerpsCompare.bind(this.data);
|
|
798
801
|
getCloudPerpsEquity = this.data.getCloudPerpsEquity.bind(this.data);
|
|
802
|
+
getCloudPerpsEquities = this.data.getCloudPerpsEquities.bind(this.data);
|
|
799
803
|
getCloudPerpsMarket = this.data.getCloudPerpsMarket.bind(this.data);
|
|
800
804
|
analyzeCloudExposure = this.data.analyzeCloudExposure.bind(this.data);
|
|
801
805
|
getCloudExposureScenarios = this.data.getCloudExposureScenarios.bind(this.data);
|
|
@@ -809,6 +813,10 @@ class GloomApiClient {
|
|
|
809
813
|
getCloudPowerBoard = this.data.getCloudPowerBoard.bind(this.data);
|
|
810
814
|
getCloudPowerHistory = this.data.getCloudPowerHistory.bind(this.data);
|
|
811
815
|
getCloudPowerProject = this.data.getCloudPowerProject.bind(this.data);
|
|
816
|
+
getCloudEuropePower = this.data.getCloudEuropePower.bind(this.data);
|
|
817
|
+
getCloudEuropePowerHistory = this.data.getCloudEuropePowerHistory.bind(this.data);
|
|
818
|
+
getCloudEuropeCarbon = this.data.getCloudEuropeCarbon.bind(this.data);
|
|
819
|
+
getCloudEuropeCarbonHistory = this.data.getCloudEuropeCarbonHistory.bind(this.data);
|
|
812
820
|
getCloudGpuBoard = this.data.getCloudGpuBoard.bind(this.data);
|
|
813
821
|
getCloudGpuHistory = this.data.getCloudGpuHistory.bind(this.data);
|
|
814
822
|
getCloudGpuEvents = this.data.getCloudGpuEvents.bind(this.data);
|
|
@@ -820,6 +828,7 @@ class GloomApiClient {
|
|
|
820
828
|
getCloudWorldCurves = this.data.getCloudWorldCurves.bind(this.data);
|
|
821
829
|
getCloudCds = this.data.getCloudCds.bind(this.data);
|
|
822
830
|
getCloudCdsHistory = this.data.getCloudCdsHistory.bind(this.data);
|
|
831
|
+
getCloudCdsLevels = this.data.getCloudCdsLevels.bind(this.data);
|
|
823
832
|
getCloudCdxBoard = this.data.getCloudCdxBoard.bind(this.data);
|
|
824
833
|
getCloudSovrBoard = this.data.getCloudSovrBoard.bind(this.data);
|
|
825
834
|
getCloudCongressHouse = this.data.getCloudCongressHouse.bind(this.data);
|
|
@@ -86,7 +86,10 @@ export interface MarketMoversPayload {
|
|
|
86
86
|
export interface DividendSummary {
|
|
87
87
|
trailingAnnualDividendRate: number | null;
|
|
88
88
|
trailingAnnualDividendYield: number | null;
|
|
89
|
+
/** The indicated annual rate fundamentals serve: the latest regular distribution annualized. */
|
|
89
90
|
forwardAnnualDividendRate: number | null;
|
|
91
|
+
/** The ex-date of the distribution that rate annualizes, YYYY-MM-DD. */
|
|
92
|
+
forwardRateAsOf?: string | null;
|
|
90
93
|
payoutRatio: number | null;
|
|
91
94
|
exDividendDate: number | null;
|
|
92
95
|
dividendDate: number | null;
|
|
@@ -6,6 +6,8 @@ import type {
|
|
|
6
6
|
ChatMessage,
|
|
7
7
|
ChatMessageOrigin,
|
|
8
8
|
ChatNotification,
|
|
9
|
+
ChatReaction,
|
|
10
|
+
ChatReactionUser,
|
|
9
11
|
ChatStateResponse,
|
|
10
12
|
CloudSavedSearch,
|
|
11
13
|
CloudSearchHit,
|
|
@@ -98,6 +100,7 @@ export function normalizeChatMessage(message: ChatMessage): ChatMessage {
|
|
|
98
100
|
: {}),
|
|
99
101
|
};
|
|
100
102
|
if ("attachments" in message) normalized.attachments = normalizeChatAttachments(message.attachments);
|
|
103
|
+
if ("reactions" in message) normalized.reactions = normalizeChatReactions(message.reactions);
|
|
101
104
|
if (message.origin !== undefined && !CHAT_MESSAGE_ORIGINS.includes(message.origin)) delete normalized.origin;
|
|
102
105
|
if (message.attachmentReview !== "pending" && message.attachmentReview !== "failed") {
|
|
103
106
|
delete normalized.attachmentReview;
|
|
@@ -117,6 +120,35 @@ export function normalizeChatDiscordLink(value: unknown): ChatDiscordLink {
|
|
|
117
120
|
};
|
|
118
121
|
}
|
|
119
122
|
|
|
123
|
+
/** Reactions as the server sent them, dropping anything malformed. */
|
|
124
|
+
export function normalizeChatReactions(value: unknown): ChatReaction[] {
|
|
125
|
+
if (!Array.isArray(value)) return [];
|
|
126
|
+
const reactions: ChatReaction[] = [];
|
|
127
|
+
for (const entry of value) {
|
|
128
|
+
if (!entry || typeof entry !== "object") continue;
|
|
129
|
+
const raw = entry as Record<string, unknown>;
|
|
130
|
+
if (typeof raw.emoji !== "string" || !raw.emoji) continue;
|
|
131
|
+
const count = typeof raw.count === "number" && Number.isFinite(raw.count) ? Math.max(0, Math.floor(raw.count)) : 0;
|
|
132
|
+
if (count === 0) continue;
|
|
133
|
+
const users = Array.isArray(raw.users)
|
|
134
|
+
? raw.users.flatMap((user): ChatReactionUser[] => {
|
|
135
|
+
if (!user || typeof user !== "object") return [];
|
|
136
|
+
const candidate = user as Record<string, unknown>;
|
|
137
|
+
if (typeof candidate.id !== "string") return [];
|
|
138
|
+
const accountType = candidate.accountType;
|
|
139
|
+
return [{
|
|
140
|
+
id: candidate.id,
|
|
141
|
+
username: typeof candidate.username === "string" ? candidate.username : null,
|
|
142
|
+
displayName: typeof candidate.displayName === "string" ? candidate.displayName : "User",
|
|
143
|
+
...(accountType === "human" || accountType === "managed_llm" || accountType === "discord" ? { accountType } : {}),
|
|
144
|
+
}];
|
|
145
|
+
})
|
|
146
|
+
: [];
|
|
147
|
+
reactions.push({ emoji: raw.emoji, count, me: raw.me === true, users });
|
|
148
|
+
}
|
|
149
|
+
return reactions;
|
|
150
|
+
}
|
|
151
|
+
|
|
120
152
|
export function normalizeChatMessages(messages: ChatMessage[]): ChatMessage[] {
|
|
121
153
|
return messages.map((message) => normalizeChatMessage(message));
|
|
122
154
|
}
|
package/src/api-client/perps.ts
CHANGED
|
@@ -147,6 +147,14 @@ export interface PerpBoardPayload {
|
|
|
147
147
|
access: "pro" | "preview"; sources?: unknown[];
|
|
148
148
|
}
|
|
149
149
|
export interface PerpEquityListing { symbol: string; exchange: string }
|
|
150
|
+
/**
|
|
151
|
+
* The batch lookup a watchlist or portfolio makes: one entry per requested listing, in its order, with the contract
|
|
152
|
+
* the single equity lookup would list first, or none. `listing` is null when the server cannot read the listing.
|
|
153
|
+
*/
|
|
154
|
+
export interface PerpEquitiesPayload {
|
|
155
|
+
status: string; asOf: string | null; access: "pro" | "preview"; locked: number;
|
|
156
|
+
results: { listing: PerpEquityListing | null; market: PerpBoardRow | null }[];
|
|
157
|
+
}
|
|
150
158
|
export interface PerpHistoryPayload {
|
|
151
159
|
status: string; marketId: string; rows: PerpHistoryPoint[]; funding: PerpFunding[]; candles: PerpCandle[];
|
|
152
160
|
/** Absent from servers older than the long/short series: read as empty. */
|
|
@@ -408,8 +408,15 @@ export class CloudApiRequestTransport {
|
|
|
408
408
|
// Crash reports, usage counts and command-search reports are background
|
|
409
409
|
// traffic: a rate-limited, timed-out or missing one must not show up as a
|
|
410
410
|
// Cloud outage in the connections pane. Nor must the map's probe for geo
|
|
411
|
-
// layers, which a server without them answers with 404
|
|
412
|
-
|
|
411
|
+
// layers, which a server without them answers with 404, or a ticker
|
|
412
|
+
// change lookup: a note beside a quote, never one of the refused market
|
|
413
|
+
// requests a lookup of many symbols waits out and retries.
|
|
414
|
+
if (
|
|
415
|
+
path.startsWith("/telemetry/")
|
|
416
|
+
|| path === "/assist/searches"
|
|
417
|
+
|| path === "/cloud/geo/layers"
|
|
418
|
+
|| path.startsWith("/market/ticker-changes?")
|
|
419
|
+
) return request();
|
|
413
420
|
return this.connectionHealth.track(
|
|
414
421
|
GLOOM_CLOUD_HTTP_CONNECTION_ID,
|
|
415
422
|
operation,
|
package/src/api-client/socket.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
AuthUser,
|
|
4
4
|
ChatMessage,
|
|
5
5
|
ChatNotification,
|
|
6
|
+
ChatReactionsUpdate,
|
|
6
7
|
CloudQuotePayload,
|
|
7
8
|
QuoteStreamTarget,
|
|
8
9
|
ScannerFeedEvent,
|
|
@@ -12,6 +13,7 @@ import type {
|
|
|
12
13
|
import {
|
|
13
14
|
normalizeChatMessage,
|
|
14
15
|
normalizeChatNotification,
|
|
16
|
+
normalizeChatReactions,
|
|
15
17
|
normalizeTeamNotification,
|
|
16
18
|
} from "./normalizers";
|
|
17
19
|
import { debugLog } from "../utils/debug-log";
|
|
@@ -41,6 +43,7 @@ const cloudApiLog = debugLog.createLogger("cloud-api");
|
|
|
41
43
|
type ChannelListener = (message: ChatMessage) => void;
|
|
42
44
|
type ChatNotificationListener = (notification: ChatNotification) => void;
|
|
43
45
|
type ChatPresenceListener = (onlineCount: number) => void;
|
|
46
|
+
type ChatReactionsListener = (update: ChatReactionsUpdate) => void;
|
|
44
47
|
type TeamNotificationListener = (notification: TeamNotification) => void;
|
|
45
48
|
type CloudEventListener = (data: unknown) => void;
|
|
46
49
|
type QuoteListener = (
|
|
@@ -106,6 +109,7 @@ export class CloudApiSocket {
|
|
|
106
109
|
private readonly chatNotificationListeners =
|
|
107
110
|
new Set<ChatNotificationListener>();
|
|
108
111
|
private readonly chatPresenceListeners = new Set<ChatPresenceListener>();
|
|
112
|
+
private readonly chatReactionsListeners = new Set<ChatReactionsListener>();
|
|
109
113
|
private readonly teamNotificationListeners =
|
|
110
114
|
new Set<TeamNotificationListener>();
|
|
111
115
|
private readonly cloudEventListeners = new Map<
|
|
@@ -245,6 +249,14 @@ export class CloudApiSocket {
|
|
|
245
249
|
};
|
|
246
250
|
}
|
|
247
251
|
|
|
252
|
+
/** A message's reactions changed in a channel this socket reads. */
|
|
253
|
+
subscribeChatReactions(listener: ChatReactionsListener): () => void {
|
|
254
|
+
this.chatReactionsListeners.add(listener);
|
|
255
|
+
return () => {
|
|
256
|
+
this.chatReactionsListeners.delete(listener);
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
|
|
248
260
|
subscribeChatPresence(listener: ChatPresenceListener): () => void {
|
|
249
261
|
this.chatPresenceListeners.add(listener);
|
|
250
262
|
return () => {
|
|
@@ -500,6 +512,7 @@ export class CloudApiSocket {
|
|
|
500
512
|
this.connectionListeners.clear();
|
|
501
513
|
this.chatNotificationListeners.clear();
|
|
502
514
|
this.chatPresenceListeners.clear();
|
|
515
|
+
this.chatReactionsListeners.clear();
|
|
503
516
|
this.teamNotificationListeners.clear();
|
|
504
517
|
this.cloudEventListeners.clear();
|
|
505
518
|
this.quoteSubscriptions.clear();
|
|
@@ -575,6 +588,22 @@ export class CloudApiSocket {
|
|
|
575
588
|
return;
|
|
576
589
|
}
|
|
577
590
|
|
|
591
|
+
if (
|
|
592
|
+
parsed?.type === "chat.reactions" &&
|
|
593
|
+
typeof parsed.channelId === "string" &&
|
|
594
|
+
typeof parsed.data?.messageId === "string"
|
|
595
|
+
) {
|
|
596
|
+
const update: ChatReactionsUpdate = {
|
|
597
|
+
channelId: parsed.channelId,
|
|
598
|
+
messageId: parsed.data.messageId,
|
|
599
|
+
reactions: normalizeChatReactions(parsed.data.reactions),
|
|
600
|
+
};
|
|
601
|
+
for (const listener of this.chatReactionsListeners) {
|
|
602
|
+
listener(update);
|
|
603
|
+
}
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
606
|
+
|
|
578
607
|
if (parsed?.type === "chat.notification" && parsed.data) {
|
|
579
608
|
const notification = normalizeChatNotification(
|
|
580
609
|
parsed.data as ChatNotification,
|
package/src/api-client/themes.ts
CHANGED
|
@@ -15,6 +15,12 @@ export interface ThemeSummary {
|
|
|
15
15
|
worst: { symbol: string; changePercent: number } | null;
|
|
16
16
|
stale: boolean;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* A member's figures. `price`, `changePercent` and the returns are the regular
|
|
20
|
+
* session's: outside it, its close and that close's move. The extended fields
|
|
21
|
+
* are the pre-market or after-hours print measured from that close; a server
|
|
22
|
+
* sends them only when there is one, and older servers never do.
|
|
23
|
+
*/
|
|
18
24
|
export interface ThemeMember extends Record<ThemePeriod | "price", number | null> {
|
|
19
25
|
symbol: string;
|
|
20
26
|
name: string | null;
|
|
@@ -22,7 +28,22 @@ export interface ThemeMember extends Record<ThemePeriod | "price", number | null
|
|
|
22
28
|
present: boolean;
|
|
23
29
|
asOf: Record<ThemePeriod | "price", string | null>;
|
|
24
30
|
stale: boolean;
|
|
31
|
+
extendedSession?: "PRE" | "POST" | null;
|
|
32
|
+
extendedPrice?: number | null;
|
|
33
|
+
extendedChange?: number | null;
|
|
34
|
+
extendedChangePercent?: number | null;
|
|
35
|
+
}
|
|
36
|
+
interface SnapshotMetadata {
|
|
37
|
+
/** When the server put the snapshot together, not a trade time. */
|
|
38
|
+
asOf: string;
|
|
39
|
+
snapshotId: string;
|
|
40
|
+
stale: boolean;
|
|
41
|
+
/** The US market as the server's delayed board reads it. Absent from older servers. */
|
|
42
|
+
session?: "PRE" | "REGULAR" | "POST" | "CLOSED" | null;
|
|
43
|
+
/** Outside the regular session, the completed session every figure describes; null while one trades. */
|
|
44
|
+
regularSessionDate?: string | null;
|
|
45
|
+
/** When that session closed, in epoch milliseconds (13:00 New York on an early close). */
|
|
46
|
+
regularSessionClosedAt?: number | null;
|
|
25
47
|
}
|
|
26
|
-
interface SnapshotMetadata { asOf: string; snapshotId: string; stale: boolean }
|
|
27
48
|
export interface ThemesPayload extends SnapshotMetadata { themes: ThemeSummary[] }
|
|
28
49
|
export interface ThemeMembersPayload extends SnapshotMetadata { theme: ThemeSummary; members: ThemeMember[] }
|
package/src/api-client/types.ts
CHANGED
|
@@ -49,6 +49,33 @@ export interface ChatAttachment {
|
|
|
49
49
|
url: string;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
/** Someone who reacted, as a reaction lists the first few. */
|
|
53
|
+
export interface ChatReactionUser {
|
|
54
|
+
id: string;
|
|
55
|
+
username: string | null;
|
|
56
|
+
displayName: string;
|
|
57
|
+
accountType?: ChatAccountType | null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* One emoji on a message: how many reacted, whether you did, and the first
|
|
62
|
+
* few who did, oldest first. `emoji` is the character, or `:name:` for a
|
|
63
|
+
* custom Discord server emoji.
|
|
64
|
+
*/
|
|
65
|
+
export interface ChatReaction {
|
|
66
|
+
emoji: string;
|
|
67
|
+
count: number;
|
|
68
|
+
me: boolean;
|
|
69
|
+
users?: ChatReactionUser[];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** A message's reactions as they stand after a change, from the `chat.reactions` frame or a reaction request. */
|
|
73
|
+
export interface ChatReactionsUpdate {
|
|
74
|
+
channelId: string;
|
|
75
|
+
messageId: string;
|
|
76
|
+
reactions: ChatReaction[];
|
|
77
|
+
}
|
|
78
|
+
|
|
52
79
|
export interface ChatMessage {
|
|
53
80
|
id: string;
|
|
54
81
|
channelId: string;
|
|
@@ -66,6 +93,12 @@ export interface ChatMessage {
|
|
|
66
93
|
} | null;
|
|
67
94
|
/** Images in display order. A server that predates them leaves this out. */
|
|
68
95
|
attachments?: ChatAttachment[];
|
|
96
|
+
/**
|
|
97
|
+
* Emoji reactions in the order they first appeared. Message lists from a
|
|
98
|
+
* server that knows reactions always carry it; a live copy of a message
|
|
99
|
+
* (an edit) leaves it out, and the reactions held stay.
|
|
100
|
+
*/
|
|
101
|
+
reactions?: ChatReaction[];
|
|
69
102
|
/**
|
|
70
103
|
* Only on the author's copy of a public message whose images are still being
|
|
71
104
|
* checked ("pending") or could not be checked ("failed"). Nobody else has the
|
|
@@ -402,6 +435,10 @@ export interface CloudPricePointPayload {
|
|
|
402
435
|
low?: number;
|
|
403
436
|
close: number;
|
|
404
437
|
volume?: number;
|
|
438
|
+
/** A coin's daily bar for the UTC day still forming when served; it has no volume yet. */
|
|
439
|
+
partial?: boolean;
|
|
440
|
+
/** A coin's daily bar whose prices were rebuilt from hourly bars; a day the source left empty has no volume. */
|
|
441
|
+
filled?: boolean;
|
|
405
442
|
}
|
|
406
443
|
|
|
407
444
|
type CloudEconImpact = "high" | "medium" | "low";
|
|
@@ -432,6 +469,13 @@ export interface CloudMacroReleaseDaysPayload {
|
|
|
432
469
|
export interface CloudFredObservationPayload {
|
|
433
470
|
date: string;
|
|
434
471
|
value: number | null;
|
|
472
|
+
/**
|
|
473
|
+
* Who published a value FRED does not list yet, such as a Treasury yield
|
|
474
|
+
* Gloom Cloud read from the Treasury first. Absent on FRED's own values.
|
|
475
|
+
*/
|
|
476
|
+
publisher?: string;
|
|
477
|
+
/** When that publisher's value was first read, ISO in UTC. */
|
|
478
|
+
publishedAt?: string;
|
|
435
479
|
}
|
|
436
480
|
|
|
437
481
|
export interface CloudFredSeriesInfoPayload {
|
|
@@ -538,6 +582,22 @@ export interface CloudCdsHistoryResponse {
|
|
|
538
582
|
points: CloudCdsHistoryPointPayload[];
|
|
539
583
|
}
|
|
540
584
|
|
|
585
|
+
/** An issuer's latest 5Y level: the last point of its history over the last month. */
|
|
586
|
+
export interface CloudCdsLevelPayload {
|
|
587
|
+
/** The reference entity as the history response names it. */
|
|
588
|
+
issuer: string;
|
|
589
|
+
spreadBp: number;
|
|
590
|
+
date: string;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
export interface CloudCdsLevelsResponse {
|
|
594
|
+
source: string;
|
|
595
|
+
tenor: string;
|
|
596
|
+
asOf: string | null;
|
|
597
|
+
/** Every issuer traded in the last month whose 5Y line has a level in it. */
|
|
598
|
+
levels: CloudCdsLevelPayload[];
|
|
599
|
+
}
|
|
600
|
+
|
|
541
601
|
interface CloudShortInterestPointPayload {
|
|
542
602
|
settlementDate: string;
|
|
543
603
|
shortPercentFloat?: number | null;
|
|
@@ -1098,7 +1158,7 @@ export interface CloudSearchResponse {
|
|
|
1098
1158
|
tookMs: number;
|
|
1099
1159
|
}
|
|
1100
1160
|
|
|
1101
|
-
|
|
1161
|
+
interface CloudSearchDocumentChunk {
|
|
1102
1162
|
id: string;
|
|
1103
1163
|
chunkIndex: number;
|
|
1104
1164
|
body: string;
|