gloomberb 0.16.5 → 0.17.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.
- package/package.json +3 -1
- package/src/api-client/central-bank-rates.ts +6 -1
- package/src/api-client/chat-pane-link.ts +47 -0
- package/src/api-client/chat.ts +35 -1
- package/src/api-client/credit-boards.ts +2 -0
- package/src/api-client/data.ts +85 -1
- package/src/api-client/equity-screener.ts +3 -0
- package/src/api-client/europe-energy.ts +197 -0
- package/src/api-client/index.ts +15 -0
- package/src/api-client/letters.ts +41 -0
- package/src/api-client/market-discovery.ts +3 -0
- package/src/api-client/normalizers.ts +68 -6
- package/src/api-client/organization-tickers.ts +44 -0
- package/src/api-client/perps.ts +8 -0
- package/src/api-client/request.ts +11 -2
- package/src/api-client/socket.ts +29 -0
- package/src/api-client/themes.ts +22 -1
- package/src/api-client/types.ts +88 -2
- 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 +58 -20
- package/src/app/runtime/startup.ts +1 -1
- package/src/app.tsx +6 -0
- package/src/architecture/core-builtin-allowlist.json +5 -14
- package/src/architecture/dom-cell-metrics-allowlist.json +28 -0
- package/src/ask-gloom/pane-context.ts +118 -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 +155 -4
- package/src/cli/commands/market.ts +175 -35
- package/src/cli/commands/overview.ts +62 -20
- package/src/cli/commands/search.ts +254 -23
- package/src/cli/commands/ticker.ts +137 -24
- package/src/cli/desktop-pane-shot-view.ts +114 -0
- package/src/cli/desktop-pane-shot.ts +53 -37
- package/src/cli/entry.ts +7 -0
- package/src/cli/errors.ts +7 -5
- package/src/cli/exit-codes.ts +8 -0
- package/src/cli/export-source.ts +101 -0
- package/src/cli/freshness.ts +18 -3
- package/src/cli/glossary.ts +79 -8
- package/src/cli/help.ts +10 -0
- package/src/cli/helpers.ts +2 -5
- package/src/cli/history-rows.ts +244 -13
- package/src/cli/index.ts +9 -3
- package/src/cli/known-gaps.ts +76 -8
- package/src/cli/listing-arg.ts +201 -90
- package/src/cli/listing-suggestion.ts +159 -0
- package/src/cli/native-smoke.ts +13 -0
- package/src/cli/not-a-ticker.ts +24 -4
- package/src/cli/pane-functions/access-gate.ts +8 -2
- package/src/cli/pane-functions/capabilities.ts +17 -9
- 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 +44 -14
- package/src/cli/pane-functions/freshness.ts +48 -24
- package/src/cli/pane-functions/function-help.ts +66 -12
- package/src/cli/pane-functions/headless.ts +81 -22
- package/src/cli/pane-functions/index.ts +90 -18
- package/src/cli/pane-functions/options.ts +8 -0
- package/src/cli/pane-functions/report-notices.ts +6 -3
- package/src/cli/pane-functions/report.ts +16 -2
- package/src/cli/pane-functions/resolver.ts +32 -11
- 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 +53 -13
- package/src/cli/result.ts +91 -17
- 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 +171 -0
- package/src/cli/ticker-resolution.ts +99 -8
- package/src/components/chart/composite/axis-overlays.tsx +10 -1
- package/src/components/chart/composite/composite-chart.tsx +24 -15
- 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 +57 -33
- 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/price-axis-labels.tsx +1 -0
- 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/list/model.ts +2 -0
- package/src/components/command-bar/pane-templates/items.ts +1 -1
- package/src/components/command-bar/routes/root/plugin-install.ts +4 -4
- package/src/components/command-bar/routes/ticker-search/actions.ts +1 -0
- package/src/components/command-bar/routes/ticker-search/results.ts +3 -1
- package/src/components/command-bar/routing/actions.ts +1 -1
- package/src/components/command-bar/workflow/ops.ts +8 -97
- package/src/components/command-bar/workflow/pane-reuse.ts +177 -0
- package/src/components/command-bar/workflow/tickers.ts +35 -29
- package/src/components/data-table/view.tsx +1 -0
- package/src/components/feed-data-table/stack-view.tsx +18 -42
- 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 +5 -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 +62 -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 +136 -0
- package/src/components/layout/shell/pane/capture.ts +136 -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/markdown-text.tsx +37 -6
- package/src/components/metric-treemap/heat-surface.tsx +1 -3
- package/src/components/reader/article-reader.tsx +467 -0
- package/src/components/reader/article-text.ts +527 -0
- package/src/components/reader/detail-reader.tsx +210 -0
- package/src/components/reader/reader-text.tsx +239 -0
- package/src/components/table-view-shared.tsx +8 -4
- package/src/components/ticker/badge/list.tsx +15 -4
- package/src/components/ticker/list-table-view.tsx +19 -1
- package/src/components/ui/choice-dialog.tsx +3 -0
- package/src/components/ui/data-table/index.tsx +1 -0
- package/src/components/ui/data-table/types.ts +7 -0
- package/src/components/ui/detail-scroll-body.tsx +31 -4
- package/src/components/ui/display.tsx +46 -1
- package/src/components/ui/icon.tsx +14 -1
- package/src/components/ui/list-view.tsx +3 -1
- package/src/components/ui/query-bar-keys.tsx +2 -0
- package/src/components/ui/query-bar.tsx +18 -1
- package/src/components/ui/select-button.tsx +3 -0
- package/src/data/config/store/fold-panes.ts +202 -11
- package/src/data/config/store/migrations.ts +20 -1
- package/src/data/config/store/portfolio-as-of-column.ts +57 -0
- package/src/docs/snapshot.json +191 -23
- package/src/i18n/es.ts +18 -1
- package/src/i18n/ja.ts +18 -1
- package/src/i18n/ko.ts +18 -1
- package/src/i18n/zh-cn.ts +18 -1
- package/src/i18n/zh-tw.ts +18 -1
- package/src/layout/desk-keys.ts +7 -0
- package/src/layout/desks.ts +2 -2
- 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/market/status.ts +67 -6
- package/src/market-data/quotes/contributions.ts +17 -0
- package/src/market-data/quotes/metadata.ts +12 -0
- package/src/market-data/quotes/regular-session-valuation.ts +131 -0
- package/src/market-data/quotes/resolution.ts +7 -0
- package/src/market-data/snapshot-provider.ts +6 -3
- package/src/notifications/app-badge.ts +30 -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/calendar-tab.tsx +1 -1
- package/src/plugins/builtin/account-management/form-components.tsx +53 -1
- package/src/plugins/builtin/account-management/index.tsx +1 -0
- package/src/plugins/builtin/account-management/keyboard.ts +5 -0
- package/src/plugins/builtin/account-management/model.ts +27 -0
- package/src/plugins/builtin/account-management/pane.tsx +62 -2
- package/src/plugins/builtin/alerts/catalysts.ts +1 -1
- package/src/plugins/builtin/alerts/cli.ts +6 -4
- 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 +5 -2
- 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 +48 -30
- package/src/plugins/builtin/backtest/headless.ts +2 -2
- package/src/plugins/builtin/backtest/pane.tsx +2 -1
- package/src/plugins/builtin/bond-calculator/index.tsx +3 -5
- package/src/plugins/builtin/broker-manager/index.tsx +1 -0
- package/src/plugins/builtin/buildout/detail/company.tsx +7 -4
- package/src/plugins/builtin/builtin-plugin-meta.ts +5 -4
- package/src/plugins/builtin/catalysts/headless.ts +1 -1
- package/src/plugins/builtin/catalysts/model.ts +92 -10
- package/src/plugins/builtin/catalysts/pane.tsx +6 -4
- package/src/plugins/builtin/cds/client.ts +11 -31
- package/src/plugins/builtin/cds/headless.ts +5 -2
- package/src/plugins/builtin/cds/index.tsx +21 -30
- 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/changelog/index.tsx +11 -12
- package/src/plugins/builtin/chart-composer/catalog-inventory.ts +1 -0
- package/src/plugins/builtin/chart-composer/headless-schema.ts +3 -1
- package/src/plugins/builtin/chart-composer/headless.ts +151 -9
- package/src/plugins/builtin/chart-composer/index.tsx +6 -1
- package/src/plugins/builtin/chart-composer/pane.tsx +84 -40
- package/src/plugins/builtin/chart-composer/session-history.ts +20 -5
- package/src/plugins/builtin/chat/command-bar.ts +6 -8
- package/src/plugins/builtin/chat/content/composer-runtime.ts +6 -1
- package/src/plugins/builtin/chat/content/composer.tsx +15 -2
- package/src/plugins/builtin/chat/content/footer.tsx +27 -5
- package/src/plugins/builtin/chat/content/handle-prompt.tsx +326 -0
- package/src/plugins/builtin/chat/content/index.tsx +201 -13
- package/src/plugins/builtin/chat/content/layout-metrics.ts +4 -0
- package/src/plugins/builtin/chat/content/new-messages.tsx +89 -0
- package/src/plugins/builtin/chat/content/open-targets.ts +20 -4
- package/src/plugins/builtin/chat/content/row-activity.ts +132 -0
- package/src/plugins/builtin/chat/content/scroll.ts +133 -28
- package/src/plugins/builtin/chat/content/shortcuts.ts +2 -2
- package/src/plugins/builtin/chat/content/transcript.tsx +155 -79
- 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/handle-prompt.ts +128 -0
- package/src/plugins/builtin/chat/index.tsx +66 -25
- package/src/plugins/builtin/chat/layout.ts +84 -18
- package/src/plugins/builtin/chat/message/desktop.tsx +111 -14
- package/src/plugins/builtin/chat/message/header.tsx +81 -21
- package/src/plugins/builtin/chat/message/pane-chip.tsx +223 -0
- package/src/plugins/builtin/chat/message/person-icons.tsx +53 -0
- package/src/plugins/builtin/chat/message/profile-popover.tsx +77 -9
- package/src/plugins/builtin/chat/message/reactions.tsx +210 -0
- package/src/plugins/builtin/chat/message/render-state.ts +33 -4
- package/src/plugins/builtin/chat/message/terminal.tsx +72 -8
- package/src/plugins/builtin/chat/message/types.ts +15 -0
- package/src/plugins/builtin/chat/pane-links/model.ts +149 -0
- package/src/plugins/builtin/chat/pane-links/open.ts +29 -0
- package/src/plugins/builtin/chat/pane-links/previews.ts +119 -0
- package/src/plugins/builtin/chat/pane-state.ts +5 -8
- package/src/plugins/builtin/chat/people.ts +202 -0
- package/src/plugins/builtin/chat/profile-popover.ts +18 -2
- 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 +7 -9
- package/src/plugins/builtin/chat/unread-badge.ts +65 -0
- package/src/plugins/builtin/chat/unread-inbox-pane.tsx +151 -27
- package/src/plugins/builtin/chat/unread-inbox.ts +22 -0
- package/src/plugins/builtin/clinical-trials/client.ts +26 -1
- package/src/plugins/builtin/clinical-trials/index.tsx +10 -2
- package/src/plugins/builtin/clinical-trials/model.ts +269 -0
- package/src/plugins/builtin/clinical-trials/pane.tsx +247 -62
- package/src/plugins/builtin/clinical-trials/sponsor-tickers.ts +156 -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/mcp-connect/dialog.tsx +1 -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/comment-letters/pane.tsx +30 -11
- package/src/plugins/builtin/commodities-energy/index.tsx +179 -0
- package/src/plugins/builtin/commodity-balances/client.ts +208 -0
- package/src/plugins/builtin/commodity-balances/headless.ts +66 -0
- package/src/plugins/builtin/commodity-balances/index.tsx +32 -0
- package/src/plugins/builtin/commodity-balances/model.ts +261 -0
- package/src/plugins/builtin/commodity-balances/pane.tsx +227 -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/composite-plugins.ts +26 -1
- 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/index.tsx +21 -42
- package/src/plugins/builtin/credit-boards/model.ts +11 -3
- 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 +20 -22
- 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/credit-documents/index.tsx +27 -10
- package/src/plugins/builtin/debt-maturities/headless.ts +17 -11
- package/src/plugins/builtin/debt-maturities/index.tsx +3 -17
- package/src/plugins/builtin/debug/index.tsx +2 -2
- package/src/plugins/builtin/dividend-yield/client.ts +6 -1
- package/src/plugins/builtin/dividend-yield/headless.ts +8 -3
- package/src/plugins/builtin/dividend-yield/index.tsx +1 -1
- package/src/plugins/builtin/dividend-yield/pane.tsx +6 -2
- package/src/plugins/builtin/dividend-yield/provider-client.ts +3 -1
- package/src/plugins/builtin/dividend-yield/types.ts +2 -0
- package/src/plugins/builtin/docs/blocks.tsx +4 -3
- package/src/plugins/builtin/docs/pane.tsx +16 -8
- package/src/plugins/builtin/doe/headless.ts +12 -8
- package/src/plugins/builtin/earnings/index.tsx +11 -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-calls/pane.tsx +2 -12
- 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/client.ts +1 -1
- package/src/plugins/builtin/equity-screener/headless.ts +39 -5
- package/src/plugins/builtin/equity-screener/model.ts +121 -68
- package/src/plugins/builtin/estimate-revisions/headless.ts +3 -3
- package/src/plugins/builtin/executives/pane.tsx +3 -1
- 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/filing-events/index.tsx +20 -0
- package/src/plugins/builtin/fixed-income/index.tsx +46 -0
- package/src/plugins/builtin/fixed-income/model.ts +27 -0
- package/src/plugins/builtin/fixed-income/pane.tsx +162 -0
- package/src/plugins/builtin/fixed-income/shortcut.ts +52 -0
- package/src/plugins/builtin/futures/index.tsx +24 -7
- package/src/plugins/builtin/futures/series.ts +23 -2
- package/src/plugins/builtin/futures/use-front-returns.ts +3 -2
- package/src/plugins/builtin/futures-curve/headless.ts +1 -1
- package/src/plugins/builtin/futures-curve/index.tsx +1 -1
- package/src/plugins/builtin/futures-curve/pane.tsx +6 -4
- 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/help/shortcut-table.tsx +4 -2
- package/src/plugins/builtin/insider/detail.tsx +20 -12
- package/src/plugins/builtin/insider/index.tsx +2 -2
- 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/index.tsx +3 -0
- package/src/plugins/builtin/iv-history/model.ts +35 -4
- package/src/plugins/builtin/iv-history/screen-pane.tsx +13 -5
- package/src/plugins/builtin/jobs/headless.ts +6 -8
- package/src/plugins/builtin/jodi/client.ts +220 -0
- package/src/plugins/builtin/jodi/headless.ts +63 -0
- package/src/plugins/builtin/jodi/index.tsx +32 -0
- package/src/plugins/builtin/jodi/model.ts +75 -0
- package/src/plugins/builtin/jodi/pane.tsx +141 -0
- package/src/plugins/builtin/kelly-sizer/index.tsx +2 -0
- package/src/plugins/builtin/market-heatmap/evidence.ts +13 -4
- package/src/plugins/builtin/market-heatmap/headless.ts +22 -7
- package/src/plugins/builtin/market-heatmap/index.tsx +47 -23
- package/src/plugins/builtin/market-heatmap/live.ts +2 -1
- package/src/plugins/builtin/market-heatmap/portfolio.ts +67 -21
- package/src/plugins/builtin/market-movers/table.ts +2 -2
- package/src/plugins/builtin/market-valuation/align.ts +10 -9
- 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/distress/model.ts +52 -1
- package/src/plugins/builtin/mna/distress/pane.tsx +17 -12
- package/src/plugins/builtin/mna/headless.ts +3 -3
- package/src/plugins/builtin/mna/index.tsx +2 -0
- 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/index.tsx +2 -2
- package/src/plugins/builtin/news/wire/industry-pane.tsx +28 -14
- package/src/plugins/builtin/news/wire/letters/client.ts +108 -0
- package/src/plugins/builtin/news/wire/letters/model.ts +69 -0
- package/src/plugins/builtin/news/wire/letters/pane.tsx +155 -0
- package/src/plugins/builtin/news/wire/mutes.ts +2 -1
- 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/news/wire/news/query-presets.ts +4 -1
- package/src/plugins/builtin/notes/index.tsx +1 -0
- package/src/plugins/builtin/openfda/client.ts +123 -15
- package/src/plugins/builtin/openfda/model.ts +163 -0
- package/src/plugins/builtin/openfda/pane.tsx +109 -65
- package/src/plugins/builtin/openfda/types.ts +25 -0
- package/src/plugins/builtin/options/index.tsx +3 -0
- package/src/plugins/builtin/options/view.tsx +1 -1
- package/src/plugins/builtin/options-positioning/headless.ts +3 -3
- package/src/plugins/builtin/pe-band/model.ts +3 -2
- 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 +7 -7
- package/src/plugins/builtin/plugin-module.ts +3 -1
- 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 +24 -136
- package/src/plugins/builtin/portfolio-list/cli/portfolio-command.ts +78 -19
- package/src/plugins/builtin/portfolio-list/cli/render.ts +249 -52
- package/src/plugins/builtin/portfolio-list/cli/shared.ts +44 -12
- package/src/plugins/builtin/portfolio-list/cli/watchlist-command.ts +21 -7
- 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/live-valuation.ts +25 -13
- 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 +86 -8
- package/src/plugins/builtin/power/gas-client.ts +110 -0
- package/src/plugins/builtin/power/gas-model.ts +194 -0
- package/src/plugins/builtin/power/gas.tsx +145 -0
- package/src/plugins/builtin/power/headless.ts +9 -2
- package/src/plugins/builtin/power/index.tsx +35 -3
- package/src/plugins/builtin/power/model.ts +2 -2
- package/src/plugins/builtin/power/pane.tsx +7 -3
- package/src/plugins/builtin/power/prices-client.ts +139 -0
- package/src/plugins/builtin/power/prices-headless.ts +205 -0
- package/src/plugins/builtin/power/prices-model.ts +103 -0
- package/src/plugins/builtin/power/prices.tsx +202 -0
- package/src/plugins/builtin/primary-dealers/client.ts +108 -0
- package/src/plugins/builtin/primary-dealers/headless.ts +53 -0
- package/src/plugins/builtin/primary-dealers/index.tsx +17 -0
- package/src/plugins/builtin/primary-dealers/model.ts +206 -0
- package/src/plugins/builtin/primary-dealers/pane.tsx +149 -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/relative-rotation/index.tsx +3 -0
- package/src/plugins/builtin/research/analyst-model.ts +9 -5
- package/src/plugins/builtin/research/headless-schema.ts +2 -1
- package/src/plugins/builtin/research/index.tsx +2 -0
- package/src/plugins/builtin/research/relative-valuation-headless.ts +68 -32
- package/src/plugins/builtin/research/relative-valuation-model.ts +45 -24
- package/src/plugins/builtin/research/relative-valuation-pane.tsx +39 -4
- 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/scanner/flow-pane.tsx +8 -1
- package/src/plugins/builtin/sec/filing-display.tsx +3 -36
- package/src/plugins/builtin/sec/headless.ts +25 -3
- package/src/plugins/builtin/sec/index.tsx +133 -44
- package/src/plugins/builtin/sec/model.ts +148 -2
- package/src/plugins/builtin/sec/row-summaries.ts +105 -0
- package/src/plugins/builtin/sectors/index.tsx +2 -0
- package/src/plugins/builtin/sectors/sector-model.ts +2 -2
- package/src/plugins/builtin/series-inventory.ts +3 -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/locked-rows.tsx +1 -1
- package/src/plugins/builtin/shared/report-freshness.ts +3 -1
- package/src/plugins/builtin/shared/use-quote-board.ts +179 -43
- package/src/plugins/builtin/shared/volatility/options.ts +4 -1
- package/src/plugins/builtin/shared/wall-teaser.tsx +2 -2
- package/src/plugins/builtin/shared/zip-text.ts +46 -0
- package/src/plugins/builtin/short-interest/watch-headless.ts +2 -2
- package/src/plugins/builtin/short-interest/watch-model.ts +11 -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/financials/aggregation.ts +11 -0
- package/src/plugins/builtin/ticker-detail/financials/ratios.ts +81 -19
- package/src/plugins/builtin/ticker-detail/financials/tab.tsx +1 -1
- package/src/plugins/builtin/ticker-detail/headless-schema.ts +30 -0
- package/src/plugins/builtin/ticker-detail/headless.ts +88 -2
- package/src/plugins/builtin/ticker-detail/index.tsx +23 -11
- package/src/plugins/builtin/ticker-detail/overview/model.ts +3 -1
- package/src/plugins/builtin/ticker-detail/overview-tab.tsx +8 -6
- package/src/plugins/builtin/ticker-detail/quote-monitor/card.tsx +8 -6
- package/src/plugins/builtin/time-sales/headless.ts +23 -1
- package/src/plugins/builtin/time-sales/index.tsx +2 -1
- package/src/plugins/builtin/trace-bonds/client.ts +196 -0
- package/src/plugins/builtin/trace-bonds/headless.ts +69 -0
- package/src/plugins/builtin/trace-bonds/index.tsx +33 -0
- package/src/plugins/builtin/trace-bonds/model.ts +115 -0
- package/src/plugins/builtin/trace-bonds/pane.tsx +191 -0
- package/src/plugins/builtin/treasury-auctions/index.tsx +33 -47
- package/src/plugins/builtin/treasury-daily/client.ts +96 -0
- package/src/plugins/builtin/treasury-daily/headless.ts +69 -0
- package/src/plugins/builtin/treasury-daily/index.tsx +17 -0
- package/src/plugins/builtin/treasury-daily/model.ts +69 -0
- package/src/plugins/builtin/treasury-daily/pane.tsx +140 -0
- 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/entity-detail.tsx +15 -2
- 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 +145 -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/builtin-editorial.ts +1 -1
- package/src/plugins/catalog-browser.ts +25 -2
- 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 +63 -27
- 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/build-assets.ts +14 -5
- package/src/renderers/dom/data-table/index.tsx +5 -3
- package/src/renderers/dom/data-table/row.tsx +3 -0
- package/src/renderers/dom/desktop/controls.tsx +2 -1
- package/src/renderers/dom/desktop/icons.tsx +34 -0
- package/src/renderers/dom/desktop/list-view.tsx +1 -1
- package/src/renderers/dom/desktop/menu.tsx +1 -1
- package/src/renderers/dom/desktop/query-bar.tsx +3 -1
- 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 +34 -2
- package/src/renderers/dom/host/resize-rows.ts +111 -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 +147 -0
- package/src/renderers/dom/host/style.ts +15 -1
- package/src/renderers/dom/host/surface-3d.tsx +15 -7
- package/src/renderers/dom/host/surface-fit.ts +410 -0
- package/src/renderers/dom/host/text.tsx +2 -2
- package/src/renderers/dom/input-host.tsx +1 -0
- package/src/renderers/dom/styles.css +109 -16
- package/src/renderers/electrobun/bun/application-menu/click.ts +18 -0
- package/src/renderers/electrobun/bun/desktop/app-badge.ts +37 -0
- package/src/renderers/electrobun/bun/desktop/backend.ts +1 -0
- package/src/renderers/electrobun/bun/desktop/host-requests.ts +8 -0
- package/src/renderers/electrobun/bun/desktop/macos-dock-badge.ts +37 -0
- package/src/renderers/electrobun/bun/desktop/macos-dock-icon.ts +2 -40
- package/src/renderers/electrobun/bun/desktop/macos-objc.ts +41 -0
- package/src/renderers/electrobun/bun/index.ts +3 -2
- package/src/renderers/electrobun/bun/tui-entry.ts +18 -1
- package/src/renderers/electrobun/shared/protocol.ts +3 -1
- package/src/renderers/electrobun/view/app-badge-host.ts +17 -0
- package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +20 -3
- package/src/renderers/electrobun/view/cli-pane-shot-frame.tsx +59 -24
- package/src/renderers/electrobun/view/main.tsx +5 -3
- package/src/renderers/electrobun/view/remote/asset-data-client.ts +7 -1
- 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 +2 -2
- package/src/shares/api.ts +5 -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/location.ts +31 -0
- package/src/shares/open.ts +26 -0
- package/src/shares/pane-image.ts +164 -0
- package/src/shares/personal-pane.ts +52 -0
- package/src/shares/portable-layout.ts +4 -2
- package/src/shares/prepare.ts +20 -0
- package/src/sources/gloomberb-cloud/index.ts +109 -5
- package/src/sources/gloomberb-cloud/normalizers.ts +7 -0
- package/src/sources/gloomberb-cloud/perpetuals.ts +249 -0
- package/src/sources/history-coverage.ts +22 -4
- package/src/sources/history-result.ts +3 -1
- package/src/sources/history-retention.ts +11 -0
- package/src/sources/listing-target.ts +4 -0
- package/src/sources/provider-errors.ts +2 -1
- package/src/sources/provider-router/batches.ts +18 -2
- package/src/sources/provider-router/index.ts +16 -1
- package/src/state/app/context/index.tsx +3 -2
- package/src/state/hooks/inline-tickers.ts +49 -11
- package/src/test-support/builtin-panes.ts +31 -0
- 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 +154 -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 +34 -6
- package/src/tickers/search/ranking.ts +85 -4
- package/src/tickers/ticker-changes.ts +213 -0
- package/src/time-series/chart-data.ts +2 -0
- package/src/time-series/economic.ts +2 -6
- package/src/time-series/ice-credit.ts +39 -0
- package/src/time-series/parsed-history-cache.ts +41 -11
- package/src/time-series/resolve.ts +163 -28
- 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 +19 -1
- package/src/types/financials.ts +23 -0
- package/src/types/headless.ts +74 -0
- package/src/types/instrument.ts +4 -0
- package/src/types/plugin.ts +60 -2
- package/src/types/price-history.ts +2 -0
- package/src/types/ticker-changes.ts +26 -0
- package/src/ui/context-menu.tsx +13 -1
- package/src/ui/host.tsx +49 -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/crypto-pair.ts +1 -1
- package/src/utils/currency-pair.ts +66 -0
- package/src/utils/currency-units.ts +11 -0
- package/src/utils/datetime-format.ts +27 -6
- package/src/utils/decimal-comma.ts +57 -0
- 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/guards.ts +25 -0
- package/src/utils/inline-content-tokenizer.ts +22 -3
- package/src/utils/local-utc-offset.ts +37 -0
- 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/plugin-proxy-hosts.json +8 -1
- package/src/utils/utc-time.ts +12 -0
- package/src/plugins/builtin/credit-boards/pane.tsx +0 -30
- 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.
|
|
3
|
+
"version": "0.17.0",
|
|
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",
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
"check:pane-chrome": "bun run scripts/pane-chrome/checks.ts",
|
|
85
86
|
"check:pane-screenshot": "bun run scripts/pane-chrome/screenshot.ts",
|
|
86
87
|
"check:pane-rest": "bun run scripts/pane-chrome/rest-diff.ts",
|
|
88
|
+
"check:pane-layout": "bun run scripts/pane-chrome/layout-sweep.ts",
|
|
87
89
|
"benchmark:pane-drag:compare": "bun run scripts/pane-chrome/frame-budget.ts",
|
|
88
90
|
"test:global-upgrade": "bun run scripts/smoke-global-upgrade.ts",
|
|
89
91
|
"release": "./scripts/release.sh"
|
|
@@ -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 {
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a chat message opens in the terminal beside its text, as the server
|
|
3
|
+
* sends it: the news story a Gloom Wire headline names, the calendar a morning
|
|
4
|
+
* post reads from. Only the server writes it, from ids it already resolved.
|
|
5
|
+
* A kind this version does not know, or a malformed one, reads as absent and
|
|
6
|
+
* the message is plain text, as it is for a server that predates the field.
|
|
7
|
+
*/
|
|
8
|
+
export type ChatPaneLink =
|
|
9
|
+
| { kind: "news-story"; storyId: string }
|
|
10
|
+
| { kind: "economic-calendar"; date: string }
|
|
11
|
+
| { kind: "earnings-calendar"; date: string }
|
|
12
|
+
| { kind: "ipo-calendar"; date: string }
|
|
13
|
+
| { kind: "energy-report"; report: "petroleum" | "gas"; weekEnding: string };
|
|
14
|
+
|
|
15
|
+
const STORY_ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
|
|
16
|
+
const DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
17
|
+
const DATED_KINDS: ReadonlySet<string> = new Set(["economic-calendar", "earnings-calendar", "ipo-calendar"]);
|
|
18
|
+
|
|
19
|
+
function isCalendarDate(value: unknown): value is string {
|
|
20
|
+
if (typeof value !== "string" || !DATE.test(value)) return false;
|
|
21
|
+
const date = new Date(`${value}T00:00:00Z`);
|
|
22
|
+
return Number.isFinite(date.getTime()) && date.toISOString().startsWith(value);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function parseChatPaneLink(value: unknown): ChatPaneLink | null {
|
|
26
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
27
|
+
const link = value as Record<string, unknown>;
|
|
28
|
+
const keys = Object.keys(link).sort().join(",");
|
|
29
|
+
if (link.kind === "news-story") {
|
|
30
|
+
return keys === "kind,storyId" && typeof link.storyId === "string" && STORY_ID.test(link.storyId)
|
|
31
|
+
? { kind: "news-story", storyId: link.storyId }
|
|
32
|
+
: null;
|
|
33
|
+
}
|
|
34
|
+
if (typeof link.kind === "string" && DATED_KINDS.has(link.kind)) {
|
|
35
|
+
return keys === "date,kind" && isCalendarDate(link.date)
|
|
36
|
+
? { kind: link.kind, date: link.date } as ChatPaneLink
|
|
37
|
+
: null;
|
|
38
|
+
}
|
|
39
|
+
if (link.kind === "energy-report") {
|
|
40
|
+
return keys === "kind,report,weekEnding"
|
|
41
|
+
&& (link.report === "petroleum" || link.report === "gas")
|
|
42
|
+
&& isCalendarDate(link.weekEnding)
|
|
43
|
+
? { kind: "energy-report", report: link.report, weekEnding: link.weekEnding }
|
|
44
|
+
: null;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
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,9 +15,11 @@ 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";
|
|
22
|
+
import { localUtcOffsetMinutes } from "../utils/local-utc-offset";
|
|
20
23
|
type ChatNotificationListener = (notification: ChatNotification) => void;
|
|
21
24
|
type ChatPresenceListener = (onlineCount: number) => void;
|
|
22
25
|
|
|
@@ -125,8 +128,15 @@ export class CloudChatApi {
|
|
|
125
128
|
return this.request<{ onlineCount: number }>("/chat/presence");
|
|
126
129
|
}
|
|
127
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Channels, unread counts and pending notifications. It also reports this
|
|
133
|
+
* machine's current offset from UTC, so the card others open on you shows
|
|
134
|
+
* your local time; a server that predates it ignores the parameter.
|
|
135
|
+
*/
|
|
128
136
|
async getState(): Promise<ChatStateResponse> {
|
|
129
|
-
const
|
|
137
|
+
const offset = localUtcOffsetMinutes();
|
|
138
|
+
const query = offset === null ? "" : `?${new URLSearchParams({ utcOffset: String(offset) })}`;
|
|
139
|
+
const state = await this.request<ChatStateResponse>(`/chat/state${query}`);
|
|
130
140
|
this.noteMessages((state.notifications ?? []).map((notification) => notification?.message));
|
|
131
141
|
return normalizeChatState(state);
|
|
132
142
|
}
|
|
@@ -258,6 +268,30 @@ export class CloudChatApi {
|
|
|
258
268
|
return normalizeChatMessage(message);
|
|
259
269
|
}
|
|
260
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Sets your reaction with one emoji on a message; setting what is already
|
|
273
|
+
* there changes nothing. Answers the message's reactions as they stand.
|
|
274
|
+
*/
|
|
275
|
+
async setReaction(
|
|
276
|
+
channelId: string,
|
|
277
|
+
messageId: string,
|
|
278
|
+
emoji: string,
|
|
279
|
+
reacted: boolean,
|
|
280
|
+
): Promise<ChatReactionsUpdate> {
|
|
281
|
+
const answer = await this.request<{ reactions?: unknown }>(
|
|
282
|
+
`/chat/channels/${channelId}/messages/${messageId}/reactions`,
|
|
283
|
+
{
|
|
284
|
+
method: "PUT",
|
|
285
|
+
body: JSON.stringify({ emoji, reacted }),
|
|
286
|
+
},
|
|
287
|
+
);
|
|
288
|
+
return { channelId, messageId, reactions: normalizeChatReactions(answer?.reactions) };
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
subscribeReactions(listener: (update: ChatReactionsUpdate) => void): () => void {
|
|
292
|
+
return this.options.socket.subscribeChatReactions(listener);
|
|
293
|
+
}
|
|
294
|
+
|
|
261
295
|
/** Whether this account is tied to a Discord person. Throws a 404 or 501 `ApiRequestError` on a server without Discord sync. */
|
|
262
296
|
async getDiscordLink(): Promise<ChatDiscordLink> {
|
|
263
297
|
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";
|
|
@@ -22,7 +23,10 @@ import {
|
|
|
22
23
|
type GoingConcernParams,
|
|
23
24
|
type InsolvencyNoticesParams,
|
|
24
25
|
} from "./distress";
|
|
26
|
+
import type { LettersParams } from "./letters";
|
|
25
27
|
import type { IpoCalendarParams, IpoCalendarPayload } from "./ipo";
|
|
28
|
+
import type { TickerChanges } from "../types/ticker-changes";
|
|
29
|
+
import type { OrganizationTickersResponse } from "./organization-tickers";
|
|
26
30
|
import type { CryptoMarketsPayload } from "./crypto-markets";
|
|
27
31
|
import type { CentralBankRatesPayload } from "./central-bank-rates";
|
|
28
32
|
import type { EstimateRevisionsPayload } from "./estimate-revisions";
|
|
@@ -35,6 +39,7 @@ import type { SocialMentionDayPosts, SocialMentionsPayload, SocialMentionsRange
|
|
|
35
39
|
import type { FuturesContractTermsPayload, FuturesCurveAsOfPayload, FuturesCurvePayload } from "./futures-curve";
|
|
36
40
|
import type { CotBoardPayload, CotContractPayload, CotFamily, CotClass } from "./cot";
|
|
37
41
|
import type { DoeBoardPayload } from "./doe";
|
|
42
|
+
import type { CarbonBoard, CarbonHistory, EuropePowerBoard, EuropePowerHistory, GasStorageBoard, GasStorageHistory, GasStorageSeasonal } from "./europe-energy";
|
|
38
43
|
import type { GpuBoardPayload, GpuEventsPayload, GpuHistoryPayload, GpuHistoryQuery } from "./gpu";
|
|
39
44
|
import type { CpiBoardPayload } from "./cpi";
|
|
40
45
|
import type { TapeSnapshot } from "./tape";
|
|
@@ -110,6 +115,7 @@ import type {
|
|
|
110
115
|
CloudAnalystResearchPayload,
|
|
111
116
|
CloudShortInterestPayload,
|
|
112
117
|
CloudCdsHistoryResponse,
|
|
118
|
+
CloudCdsLevelsResponse,
|
|
113
119
|
CloudCdsResponse,
|
|
114
120
|
CloudCongressHousePayload,
|
|
115
121
|
CloudEarningsCallListPayload,
|
|
@@ -373,6 +379,26 @@ export class CloudDataApi {
|
|
|
373
379
|
);
|
|
374
380
|
}
|
|
375
381
|
|
|
382
|
+
/** Where the issuer that held a US symbol trades now, or what the symbol's holder was called before. */
|
|
383
|
+
async getCloudTickerChanges(
|
|
384
|
+
symbol: string,
|
|
385
|
+
options: { signal?: AbortSignal } = {},
|
|
386
|
+
): Promise<CloudMarketResponse<TickerChanges>> {
|
|
387
|
+
return this.request<CloudMarketResponse<TickerChanges>>(
|
|
388
|
+
`/market/ticker-changes?${new URLSearchParams({ symbol: symbol.trim().toUpperCase() })}`,
|
|
389
|
+
options.signal ? { signal: options.signal } : undefined,
|
|
390
|
+
);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/** The listed company each organization name resolves to, if any: a trial's lead sponsors, a page at a time. */
|
|
394
|
+
async getCloudOrganizationTickers(names: readonly string[], signal?: AbortSignal): Promise<OrganizationTickersResponse> {
|
|
395
|
+
return this.request<OrganizationTickersResponse>("/market/organization-tickers", {
|
|
396
|
+
method: "POST",
|
|
397
|
+
body: JSON.stringify({ names }),
|
|
398
|
+
signal,
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
|
|
376
402
|
async getCloudHistory(
|
|
377
403
|
symbol: string,
|
|
378
404
|
exchange: string,
|
|
@@ -518,6 +544,9 @@ export class CloudDataApi {
|
|
|
518
544
|
const query = exchange === undefined ? "" : `?${new URLSearchParams({ identity: "listing", exchange })}`;
|
|
519
545
|
return this.request(`/cloud/perps/equity/${encodeURIComponent(symbol)}${query}`);
|
|
520
546
|
}
|
|
547
|
+
async getCloudPerpsEquities(listings: readonly PerpEquityListing[]): Promise<PerpEquitiesPayload> {
|
|
548
|
+
return this.request("/cloud/perps/equities", { method: "POST", body: JSON.stringify({ listings }) });
|
|
549
|
+
}
|
|
521
550
|
async getCloudPerpsMarket(marketId: string): Promise<PerpMarketPayload> { return this.request(`/cloud/perps/market?${new URLSearchParams({ marketId })}`); }
|
|
522
551
|
|
|
523
552
|
async analyzeCloudExposure(request: ExposureRequest): Promise<ExposurePayload> {
|
|
@@ -577,6 +606,50 @@ export class CloudDataApi {
|
|
|
577
606
|
return this.request<PowerDetail>(`/cloud/power/projects/${encodeURIComponent(id)}?${params}`, { signal });
|
|
578
607
|
}
|
|
579
608
|
|
|
609
|
+
/** European day-ahead power prices by country, latest day first per market. */
|
|
610
|
+
async getCloudEuropePower(): Promise<EuropePowerBoard> {
|
|
611
|
+
return this.request<EuropePowerBoard>("/cloud/europe-energy/power", { signal: AbortSignal.timeout(30_000) });
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/** One market's daily day-ahead prices from `from` (all of them without one), oldest first. */
|
|
615
|
+
async getCloudEuropePowerHistory(code: string, from?: string | null): Promise<EuropePowerHistory> {
|
|
616
|
+
const query = from ? `?${new URLSearchParams({ from })}` : "";
|
|
617
|
+
return this.request<EuropePowerHistory>(
|
|
618
|
+
`/cloud/europe-energy/power/${encodeURIComponent(code)}/history${query}`,
|
|
619
|
+
{ signal: AbortSignal.timeout(30_000) },
|
|
620
|
+
);
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/** The EU carbon allowance (EUA) auction price as of its latest auction day, with the latest auctions. */
|
|
624
|
+
async getCloudEuropeCarbon(): Promise<CarbonBoard> {
|
|
625
|
+
return this.request<CarbonBoard>("/cloud/europe-energy/carbon", { signal: AbortSignal.timeout(30_000) });
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
/** The daily EUA auction price from `from` (every auction day since 2020 without one), oldest first. */
|
|
629
|
+
async getCloudEuropeCarbonHistory(from?: string | null): Promise<CarbonHistory> {
|
|
630
|
+
const query = from ? `?${new URLSearchParams({ from })}` : "";
|
|
631
|
+
return this.request<CarbonHistory>(`/cloud/europe-energy/carbon/history${query}`, { signal: AbortSignal.timeout(30_000) });
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
/** European gas storage: the EU aggregate and each member state as of its latest gas day. */
|
|
635
|
+
async getCloudEuropeGas(): Promise<GasStorageBoard> {
|
|
636
|
+
return this.request<GasStorageBoard>("/cloud/europe-energy/gas", { signal: AbortSignal.timeout(30_000) });
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
/** One area's gas days from `from` (all kept without one), oldest first. */
|
|
640
|
+
async getCloudEuropeGasHistory(code: string, from?: string | null): Promise<GasStorageHistory> {
|
|
641
|
+
const query = from ? `?${new URLSearchParams({ from })}` : "";
|
|
642
|
+
return this.request<GasStorageHistory>(
|
|
643
|
+
`/cloud/europe-energy/gas/${encodeURIComponent(code)}/history${query}`,
|
|
644
|
+
{ signal: AbortSignal.timeout(30_000) },
|
|
645
|
+
);
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
/** One area's latest year against last year and its five-year range, day by day. */
|
|
649
|
+
async getCloudEuropeGasSeasonal(code: string): Promise<GasStorageSeasonal> {
|
|
650
|
+
return this.request<GasStorageSeasonal>(`/cloud/europe-energy/gas/${encodeURIComponent(code)}/seasonal`, { signal: AbortSignal.timeout(30_000) });
|
|
651
|
+
}
|
|
652
|
+
|
|
580
653
|
async getCloudGpuBoard(): Promise<GpuBoardPayload> {
|
|
581
654
|
return this.request<GpuBoardPayload>("/cloud/gpu/board");
|
|
582
655
|
}
|
|
@@ -684,6 +757,12 @@ export class CloudDataApi {
|
|
|
684
757
|
return this.request<unknown>(`/public/insolvency-notices${distressQuery(params)}`, { signal: signalWithTimeout(options?.signal, 30_000) });
|
|
685
758
|
}
|
|
686
759
|
|
|
760
|
+
async getPublicLetters(params: LettersParams = {}, options?: { signal?: AbortSignal }): Promise<unknown> {
|
|
761
|
+
const { kinds, ...rest } = params;
|
|
762
|
+
const query = distressQuery({ kind: kinds?.length ? kinds.join(",") : undefined, ...rest });
|
|
763
|
+
return this.request<unknown>(`/public/letters${query}`, { signal: signalWithTimeout(options?.signal, 30_000) });
|
|
764
|
+
}
|
|
765
|
+
|
|
687
766
|
async getCloudIpoCalendar(params: IpoCalendarParams = {}, options?: { signal?: AbortSignal }): Promise<IpoCalendarPayload> {
|
|
688
767
|
const query = new URLSearchParams();
|
|
689
768
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -735,6 +814,11 @@ export class CloudDataApi {
|
|
|
735
814
|
return this.request<CloudCdsHistoryResponse>(cloudCdsHistoryPath(params), { signal: AbortSignal.timeout(30_000) });
|
|
736
815
|
}
|
|
737
816
|
|
|
817
|
+
/** Every listed issuer's latest 5Y level in one request. */
|
|
818
|
+
async getCloudCdsLevels(): Promise<CloudCdsLevelsResponse> {
|
|
819
|
+
return this.request<CloudCdsLevelsResponse>("/cloud/credit/cds/levels", { signal: AbortSignal.timeout(30_000) });
|
|
820
|
+
}
|
|
821
|
+
|
|
738
822
|
async getCloudCdxBoard(params: CloudCreditBoardParams = {}): Promise<CdxBoardPayload> {
|
|
739
823
|
return this.request<CdxBoardPayload>(cloudCreditBoardPath("cdx", params), { signal: AbortSignal.timeout(30_000) });
|
|
740
824
|
}
|
|
@@ -38,6 +38,7 @@ export const NUMERIC_FIELDS = [
|
|
|
38
38
|
"return1YPercent",
|
|
39
39
|
"fromHigh52WPercent",
|
|
40
40
|
"beta",
|
|
41
|
+
"atrPercent",
|
|
41
42
|
"priceToBook",
|
|
42
43
|
"evToEbitda",
|
|
43
44
|
"roePercent",
|
|
@@ -58,6 +59,8 @@ export const RESEARCH_FIELDS = [
|
|
|
58
59
|
"return1WPercent", "return1MPercent", "return3MPercent", "returnYtdPercent", "return1YPercent", "fromHigh52WPercent",
|
|
59
60
|
"beta", "priceToBook", "evToEbitda", "roePercent", "epsRevision30dPercent", "analystUpsidePercent", "ivRank", "ivToHv",
|
|
60
61
|
] as const;
|
|
62
|
+
/** Average true range as a percent of price; listed only when asked (`include=volatility`), and omitted by a server from before it. */
|
|
63
|
+
export const VOLATILITY_FIELDS = ["atrPercent"] as const;
|
|
61
64
|
export const CATEGORY_FIELDS = [
|
|
62
65
|
"symbol",
|
|
63
66
|
"exchange",
|
|
@@ -0,0 +1,197 @@
|
|
|
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
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Percent full, TWh in storage, GWh/day flows: as GIE AGSI+ publishes them. */
|
|
109
|
+
interface GasStorageUnits {
|
|
110
|
+
full: "%";
|
|
111
|
+
storage: "TWh";
|
|
112
|
+
flow: "GWh/day";
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** The platform's own flag for a gas day. */
|
|
116
|
+
type GasReadingStatus = "estimated" | "confirmed";
|
|
117
|
+
|
|
118
|
+
/** Fullness on the same calendar day in the five years before the gas day's own; fewer where history is short. */
|
|
119
|
+
interface GasFiveYear {
|
|
120
|
+
years: number[];
|
|
121
|
+
min: number;
|
|
122
|
+
max: number;
|
|
123
|
+
average: number;
|
|
124
|
+
/** Percentage points against the average. */
|
|
125
|
+
vsAverage: number;
|
|
126
|
+
/** 0 at the low, 100 at the high, beyond either outside the range; null under two years. */
|
|
127
|
+
position: number | null;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** One area's latest gas day with a reading: the EU aggregate or a member state. */
|
|
131
|
+
export interface GasStorageRow {
|
|
132
|
+
/** EU, or ISO 3166 alpha-2. */
|
|
133
|
+
code: string;
|
|
134
|
+
name: string;
|
|
135
|
+
/** The gas day, dated by its start. */
|
|
136
|
+
gasDay: string | null;
|
|
137
|
+
status: GasReadingStatus | null;
|
|
138
|
+
/** Percent of working gas volume. */
|
|
139
|
+
full: number | null;
|
|
140
|
+
/** TWh. */
|
|
141
|
+
gasInStorage: number | null;
|
|
142
|
+
workingGasVolume: number | null;
|
|
143
|
+
/** GWh/day. */
|
|
144
|
+
injection: number | null;
|
|
145
|
+
withdrawal: number | null;
|
|
146
|
+
previousGasDay: string | null;
|
|
147
|
+
/** Percentage points against the gas day before. */
|
|
148
|
+
change: number | null;
|
|
149
|
+
yearAgo: { gasDay: string; full: number; gasInStorage: number | null; change: number } | null;
|
|
150
|
+
fiveYear: GasFiveYear | null;
|
|
151
|
+
/** Fullness at the end of each week of the year to `gasDay`, oldest first. */
|
|
152
|
+
trail: Array<{ date: string; value: number }>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface GasStorageBoard {
|
|
156
|
+
generatedAt: string;
|
|
157
|
+
status: "available" | "unavailable";
|
|
158
|
+
units: GasStorageUnits;
|
|
159
|
+
source: { name: string; url: string };
|
|
160
|
+
/** When every area was last read from the platform. */
|
|
161
|
+
checkedAt: string | null;
|
|
162
|
+
gaps: string[];
|
|
163
|
+
/** The EU aggregate first, then the member states by name. */
|
|
164
|
+
rows: GasStorageRow[];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface GasStorageHistory {
|
|
168
|
+
code: string;
|
|
169
|
+
name: string;
|
|
170
|
+
units: GasStorageUnits;
|
|
171
|
+
source: { name: string; url: string };
|
|
172
|
+
/** Every gas day with a reading, oldest first; a missing figure is null, never zero. */
|
|
173
|
+
points: Array<{
|
|
174
|
+
date: string;
|
|
175
|
+
status: GasReadingStatus;
|
|
176
|
+
full: number | null;
|
|
177
|
+
gasInStorage: number | null;
|
|
178
|
+
workingGasVolume: number | null;
|
|
179
|
+
injection: number | null;
|
|
180
|
+
withdrawal: number | null;
|
|
181
|
+
}>;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** The latest gas day's calendar year against last year and the five years before, on that year's calendar. */
|
|
185
|
+
export interface GasStorageSeasonal {
|
|
186
|
+
code: string;
|
|
187
|
+
name: string;
|
|
188
|
+
unit: "%";
|
|
189
|
+
source: { name: string; url: string };
|
|
190
|
+
year: number | null;
|
|
191
|
+
/** The band years holding any reading. */
|
|
192
|
+
years: number[];
|
|
193
|
+
current: Array<[string, number]>;
|
|
194
|
+
previous: Array<[string, number]>;
|
|
195
|
+
/** [date, min, average, max, years with a reading]. */
|
|
196
|
+
band: Array<[string, number | null, number | null, number | null, number]>;
|
|
197
|
+
}
|
package/src/api-client/index.ts
CHANGED
|
@@ -40,6 +40,7 @@ import type {
|
|
|
40
40
|
|
|
41
41
|
export { setCloudApiFetchTransport, setCloudApiUploadTransport } from "./request";
|
|
42
42
|
export type { ChatAttachmentUpload } from "./chat";
|
|
43
|
+
export type { ChatPaneLink } from "./chat-pane-link";
|
|
43
44
|
export { NoteConflictError } from "./notes";
|
|
44
45
|
export { ThesisConflictError, ThesisGoalpostError } from "./theses";
|
|
45
46
|
export { TeamRevisionConflictError } from "./views";
|
|
@@ -643,6 +644,8 @@ class GloomApiClient {
|
|
|
643
644
|
chatAttachmentsSupported = this.chat.attachmentsSupported.bind(this.chat);
|
|
644
645
|
subscribeChatAttachmentSupport = this.chat.subscribeAttachmentSupport.bind(this.chat);
|
|
645
646
|
editMessage = this.chat.editMessage.bind(this.chat);
|
|
647
|
+
setChatReaction = this.chat.setReaction.bind(this.chat);
|
|
648
|
+
subscribeChatReactions = this.chat.subscribeReactions.bind(this.chat);
|
|
646
649
|
connectChannel = this.chat.connectChannel.bind(this.chat);
|
|
647
650
|
subscribeChatNotifications = this.chat.subscribeNotifications.bind(this.chat);
|
|
648
651
|
subscribeChatPresence = this.chat.subscribePresence.bind(this.chat);
|
|
@@ -738,6 +741,8 @@ class GloomApiClient {
|
|
|
738
741
|
getCloudShortInterest = this.data.getCloudShortInterest.bind(this.data);
|
|
739
742
|
getCloudAnalystResearch = this.data.getCloudAnalystResearch.bind(this.data);
|
|
740
743
|
getCloudCorporateActions = this.data.getCloudCorporateActions.bind(this.data);
|
|
744
|
+
getCloudTickerChanges = this.data.getCloudTickerChanges.bind(this.data);
|
|
745
|
+
getCloudOrganizationTickers = this.data.getCloudOrganizationTickers.bind(this.data);
|
|
741
746
|
getCloudHistory = this.data.getCloudHistory.bind(this.data);
|
|
742
747
|
getCloudExchangeRate = this.data.getCloudExchangeRate.bind(this.data);
|
|
743
748
|
getCloudEconomicCalendar = this.data.getCloudEconomicCalendar.bind(this.data);
|
|
@@ -769,6 +774,7 @@ class GloomApiClient {
|
|
|
769
774
|
getPublicGoingConcern = this.data.getPublicGoingConcern.bind(this.data);
|
|
770
775
|
getPublicDistressDesignations = this.data.getPublicDistressDesignations.bind(this.data);
|
|
771
776
|
getPublicInsolvencyNotices = this.data.getPublicInsolvencyNotices.bind(this.data);
|
|
777
|
+
getPublicLetters = this.data.getPublicLetters.bind(this.data);
|
|
772
778
|
getCloudIpoCalendar = this.data.getCloudIpoCalendar.bind(this.data);
|
|
773
779
|
getCloudShortVolume = this.data.getCloudShortVolume.bind(this.data);
|
|
774
780
|
getCloudSocialMentions = this.data.getCloudSocialMentions.bind(this.data);
|
|
@@ -796,6 +802,7 @@ class GloomApiClient {
|
|
|
796
802
|
getCloudPerpsRankings = this.data.getCloudPerpsRankings.bind(this.data);
|
|
797
803
|
getCloudPerpsCompare = this.data.getCloudPerpsCompare.bind(this.data);
|
|
798
804
|
getCloudPerpsEquity = this.data.getCloudPerpsEquity.bind(this.data);
|
|
805
|
+
getCloudPerpsEquities = this.data.getCloudPerpsEquities.bind(this.data);
|
|
799
806
|
getCloudPerpsMarket = this.data.getCloudPerpsMarket.bind(this.data);
|
|
800
807
|
analyzeCloudExposure = this.data.analyzeCloudExposure.bind(this.data);
|
|
801
808
|
getCloudExposureScenarios = this.data.getCloudExposureScenarios.bind(this.data);
|
|
@@ -809,6 +816,13 @@ class GloomApiClient {
|
|
|
809
816
|
getCloudPowerBoard = this.data.getCloudPowerBoard.bind(this.data);
|
|
810
817
|
getCloudPowerHistory = this.data.getCloudPowerHistory.bind(this.data);
|
|
811
818
|
getCloudPowerProject = this.data.getCloudPowerProject.bind(this.data);
|
|
819
|
+
getCloudEuropePower = this.data.getCloudEuropePower.bind(this.data);
|
|
820
|
+
getCloudEuropePowerHistory = this.data.getCloudEuropePowerHistory.bind(this.data);
|
|
821
|
+
getCloudEuropeCarbon = this.data.getCloudEuropeCarbon.bind(this.data);
|
|
822
|
+
getCloudEuropeCarbonHistory = this.data.getCloudEuropeCarbonHistory.bind(this.data);
|
|
823
|
+
getCloudEuropeGas = this.data.getCloudEuropeGas.bind(this.data);
|
|
824
|
+
getCloudEuropeGasHistory = this.data.getCloudEuropeGasHistory.bind(this.data);
|
|
825
|
+
getCloudEuropeGasSeasonal = this.data.getCloudEuropeGasSeasonal.bind(this.data);
|
|
812
826
|
getCloudGpuBoard = this.data.getCloudGpuBoard.bind(this.data);
|
|
813
827
|
getCloudGpuHistory = this.data.getCloudGpuHistory.bind(this.data);
|
|
814
828
|
getCloudGpuEvents = this.data.getCloudGpuEvents.bind(this.data);
|
|
@@ -820,6 +834,7 @@ class GloomApiClient {
|
|
|
820
834
|
getCloudWorldCurves = this.data.getCloudWorldCurves.bind(this.data);
|
|
821
835
|
getCloudCds = this.data.getCloudCds.bind(this.data);
|
|
822
836
|
getCloudCdsHistory = this.data.getCloudCdsHistory.bind(this.data);
|
|
837
|
+
getCloudCdsLevels = this.data.getCloudCdsLevels.bind(this.data);
|
|
823
838
|
getCloudCdxBoard = this.data.getCloudCdxBoard.bind(this.data);
|
|
824
839
|
getCloudSovrBoard = this.data.getCloudSovrBoard.bind(this.data);
|
|
825
840
|
getCloudCongressHouse = this.data.getCloudCongressHouse.bind(this.data);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public fund and investor letters: a link-only list of each letter's title,
|
|
3
|
+
* who wrote it, when, what kind it is and where its publisher keeps it. The
|
|
4
|
+
* route is anonymous; the Letters code of Topic News parses the answer before
|
|
5
|
+
* drawing anything.
|
|
6
|
+
*/
|
|
7
|
+
export type LetterKind = "shareholder_letter" | "memo" | "commentary" | "annual_report";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* What a letter's date is: the date its publisher states, its EDGAR filing
|
|
11
|
+
* date, or the last change of its document file (for publishers whose pages
|
|
12
|
+
* give no date), which is not a publication date.
|
|
13
|
+
*/
|
|
14
|
+
export type LetterDateBasis = "published" | "filed" | "file_modified";
|
|
15
|
+
|
|
16
|
+
export interface LettersParams {
|
|
17
|
+
/** Any of these kinds, sent as one comma-separated `kind`; every kind when absent. */
|
|
18
|
+
kinds?: readonly LetterKind[];
|
|
19
|
+
/** 1 to 200. */
|
|
20
|
+
limit?: number;
|
|
21
|
+
offset?: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface Letter {
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
entity: string;
|
|
28
|
+
kind: LetterKind;
|
|
29
|
+
/** `YYYY-MM-DD`; `date_basis` says what it is. */
|
|
30
|
+
date: string;
|
|
31
|
+
date_basis: LetterDateBasis;
|
|
32
|
+
/** The publisher's own page or file. */
|
|
33
|
+
url: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface LettersPayload {
|
|
37
|
+
items: Letter[];
|
|
38
|
+
hasMore: boolean;
|
|
39
|
+
limit: number;
|
|
40
|
+
offset: number;
|
|
41
|
+
}
|
|
@@ -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;
|