@gzeoneth/gov-tracker 0.2.1 → 0.3.0-beta.3e02aff
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/README.md +129 -72
- package/dist/abis.d.ts +3 -0
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +30 -2
- package/dist/abis.js.map +1 -1
- package/dist/calldata/index.d.ts +1 -1
- package/dist/calldata/index.d.ts.map +1 -1
- package/dist/calldata/index.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +8 -1
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/signature-lookup.d.ts +17 -2
- package/dist/calldata/signature-lookup.d.ts.map +1 -1
- package/dist/calldata/signature-lookup.js +20 -2
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/cli.d.ts +21 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/{monitor.js → cli.js} +372 -73
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/lib/cli.d.ts +54 -3
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +387 -78
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/concurrency.d.ts +20 -0
- package/dist/cli/lib/concurrency.d.ts.map +1 -0
- package/dist/cli/lib/concurrency.js +32 -0
- package/dist/cli/lib/concurrency.js.map +1 -0
- package/dist/cli/lib/json-state.d.ts +23 -0
- package/dist/cli/lib/json-state.d.ts.map +1 -1
- package/dist/cli/lib/json-state.js +51 -4
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/cli/tui/App.d.ts +11 -0
- package/dist/cli/tui/App.d.ts.map +1 -0
- package/dist/cli/tui/App.js +123 -0
- package/dist/cli/tui/App.js.map +1 -0
- package/dist/cli/tui/components/CopyableText.d.ts +23 -0
- package/dist/cli/tui/components/CopyableText.d.ts.map +1 -0
- package/dist/cli/tui/components/CopyableText.js +49 -0
- package/dist/cli/tui/components/CopyableText.js.map +1 -0
- package/dist/cli/tui/components/Header.d.ts +20 -0
- package/dist/cli/tui/components/Header.d.ts.map +1 -0
- package/dist/cli/tui/components/Header.js +47 -0
- package/dist/cli/tui/components/Header.js.map +1 -0
- package/dist/cli/tui/components/KeyHelp.d.ts +19 -0
- package/dist/cli/tui/components/KeyHelp.d.ts.map +1 -0
- package/dist/cli/tui/components/KeyHelp.js +60 -0
- package/dist/cli/tui/components/KeyHelp.js.map +1 -0
- package/dist/cli/tui/components/ProposalRow.d.ts +11 -0
- package/dist/cli/tui/components/ProposalRow.d.ts.map +1 -0
- package/dist/cli/tui/components/ProposalRow.js +92 -0
- package/dist/cli/tui/components/ProposalRow.js.map +1 -0
- package/dist/cli/tui/components/ScrollIndicator.d.ts +19 -0
- package/dist/cli/tui/components/ScrollIndicator.d.ts.map +1 -0
- package/dist/cli/tui/components/ScrollIndicator.js +50 -0
- package/dist/cli/tui/components/ScrollIndicator.js.map +1 -0
- package/dist/cli/tui/components/SearchBar.d.ts +12 -0
- package/dist/cli/tui/components/SearchBar.d.ts.map +1 -0
- package/dist/cli/tui/components/SearchBar.js +36 -0
- package/dist/cli/tui/components/SearchBar.js.map +1 -0
- package/dist/cli/tui/components/Spinner.d.ts +10 -0
- package/dist/cli/tui/components/Spinner.d.ts.map +1 -0
- package/dist/cli/tui/components/Spinner.js +24 -0
- package/dist/cli/tui/components/Spinner.js.map +1 -0
- package/dist/cli/tui/components/StageProgress.d.ts +12 -0
- package/dist/cli/tui/components/StageProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/StageProgress.js +41 -0
- package/dist/cli/tui/components/StageProgress.js.map +1 -0
- package/dist/cli/tui/components/StageRow.d.ts +12 -0
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -0
- package/dist/cli/tui/components/StageRow.js +80 -0
- package/dist/cli/tui/components/StageRow.js.map +1 -0
- package/dist/cli/tui/components/StatusBadge.d.ts +12 -0
- package/dist/cli/tui/components/StatusBadge.d.ts.map +1 -0
- package/dist/cli/tui/components/StatusBadge.js +27 -0
- package/dist/cli/tui/components/StatusBadge.js.map +1 -0
- package/dist/cli/tui/components/ViewLayout.d.ts +22 -0
- package/dist/cli/tui/components/ViewLayout.d.ts.map +1 -0
- package/dist/cli/tui/components/ViewLayout.js +24 -0
- package/dist/cli/tui/components/ViewLayout.js.map +1 -0
- package/dist/cli/tui/components/VotingStats.d.ts +11 -0
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -0
- package/dist/cli/tui/components/VotingStats.js +87 -0
- package/dist/cli/tui/components/VotingStats.js.map +1 -0
- package/dist/cli/tui/hooks/index.d.ts +11 -0
- package/dist/cli/tui/hooks/index.d.ts.map +1 -0
- package/dist/cli/tui/hooks/index.js +18 -0
- package/dist/cli/tui/hooks/index.js.map +1 -0
- package/dist/cli/tui/hooks/useCache.d.ts +12 -0
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useCache.js +52 -0
- package/dist/cli/tui/hooks/useCache.js.map +1 -0
- package/dist/cli/tui/hooks/useElectionData.d.ts +22 -0
- package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useElectionData.js +133 -0
- package/dist/cli/tui/hooks/useElectionData.js.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts +39 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.js +173 -0
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -0
- package/dist/cli/tui/hooks/useProposals.d.ts +10 -0
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useProposals.js +201 -0
- package/dist/cli/tui/hooks/useProposals.js.map +1 -0
- package/dist/cli/tui/hooks/useScrollableInput.d.ts +14 -0
- package/dist/cli/tui/hooks/useScrollableInput.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useScrollableInput.js +44 -0
- package/dist/cli/tui/hooks/useScrollableInput.js.map +1 -0
- package/dist/cli/tui/hooks/useStageCalldata.d.ts +17 -0
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useStageCalldata.js +77 -0
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -0
- package/dist/cli/tui/index.d.ts +13 -0
- package/dist/cli/tui/index.d.ts.map +1 -0
- package/dist/cli/tui/index.js +96 -0
- package/dist/cli/tui/index.js.map +1 -0
- package/dist/cli/tui/ink-wrapper.d.ts +43 -0
- package/dist/cli/tui/ink-wrapper.d.ts.map +1 -0
- package/dist/cli/tui/ink-wrapper.js +41 -0
- package/dist/cli/tui/ink-wrapper.js.map +1 -0
- package/dist/cli/tui/types.d.ts +38 -0
- package/dist/cli/tui/types.d.ts.map +1 -0
- package/dist/cli/tui/types.js +6 -0
- package/dist/cli/tui/types.js.map +1 -0
- package/dist/cli/tui/utils/calldata-formatter.d.ts +7 -0
- package/dist/cli/tui/utils/calldata-formatter.d.ts.map +1 -0
- package/dist/cli/tui/utils/calldata-formatter.js +14 -0
- package/dist/cli/tui/utils/calldata-formatter.js.map +1 -0
- package/dist/cli/tui/utils/clipboard.d.ts +7 -0
- package/dist/cli/tui/utils/clipboard.d.ts.map +1 -0
- package/dist/cli/tui/utils/clipboard.js +46 -0
- package/dist/cli/tui/utils/clipboard.js.map +1 -0
- package/dist/cli/tui/utils/index.d.ts +16 -0
- package/dist/cli/tui/utils/index.d.ts.map +1 -0
- package/dist/cli/tui/utils/index.js +52 -0
- package/dist/cli/tui/utils/index.js.map +1 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts +11 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -0
- package/dist/cli/tui/utils/markdown-parser.js +77 -0
- package/dist/cli/tui/utils/markdown-parser.js.map +1 -0
- package/dist/cli/tui/utils/navigation.d.ts +17 -0
- package/dist/cli/tui/utils/navigation.d.ts.map +1 -0
- package/dist/cli/tui/utils/navigation.js +75 -0
- package/dist/cli/tui/utils/navigation.js.map +1 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.d.ts +9 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.d.ts.map +1 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.js +21 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -0
- package/dist/cli/tui/utils/shortcuts.d.ts +17 -0
- package/dist/cli/tui/utils/shortcuts.d.ts.map +1 -0
- package/dist/cli/tui/utils/shortcuts.js +100 -0
- package/dist/cli/tui/utils/shortcuts.js.map +1 -0
- package/dist/cli/tui/utils/stage-formatter.d.ts +7 -0
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +1 -0
- package/dist/cli/tui/utils/stage-formatter.js +14 -0
- package/dist/cli/tui/utils/stage-formatter.js.map +1 -0
- package/dist/cli/tui/utils/stage-status.d.ts +10 -0
- package/dist/cli/tui/utils/stage-status.d.ts.map +1 -0
- package/dist/cli/tui/utils/stage-status.js +64 -0
- package/dist/cli/tui/utils/stage-status.js.map +1 -0
- package/dist/cli/tui/utils/terminal.d.ts +18 -0
- package/dist/cli/tui/utils/terminal.d.ts.map +1 -0
- package/dist/cli/tui/utils/terminal.js +26 -0
- package/dist/cli/tui/utils/terminal.js.map +1 -0
- package/dist/cli/tui/utils/text.d.ts +7 -0
- package/dist/cli/tui/utils/text.d.ts.map +1 -0
- package/dist/cli/tui/utils/text.js +12 -0
- package/dist/cli/tui/utils/text.js.map +1 -0
- package/dist/cli/tui/utils/time.d.ts +19 -0
- package/dist/cli/tui/utils/time.d.ts.map +1 -0
- package/dist/cli/tui/utils/time.js +43 -0
- package/dist/cli/tui/utils/time.js.map +1 -0
- package/dist/cli/tui/views/CalldataView.d.ts +12 -0
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -0
- package/dist/cli/tui/views/CalldataView.js +110 -0
- package/dist/cli/tui/views/CalldataView.js.map +1 -0
- package/dist/cli/tui/views/DescriptionView.d.ts +12 -0
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -0
- package/dist/cli/tui/views/DescriptionView.js +75 -0
- package/dist/cli/tui/views/DescriptionView.js.map +1 -0
- package/dist/cli/tui/views/ElectionView.d.ts +11 -0
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -0
- package/dist/cli/tui/views/ElectionView.js +193 -0
- package/dist/cli/tui/views/ElectionView.js.map +1 -0
- package/dist/cli/tui/views/HelpView.d.ts +10 -0
- package/dist/cli/tui/views/HelpView.d.ts.map +1 -0
- package/dist/cli/tui/views/HelpView.js +75 -0
- package/dist/cli/tui/views/HelpView.js.map +1 -0
- package/dist/cli/tui/views/ProposalDetail.d.ts +12 -0
- package/dist/cli/tui/views/ProposalDetail.d.ts.map +1 -0
- package/dist/cli/tui/views/ProposalDetail.js +103 -0
- package/dist/cli/tui/views/ProposalDetail.js.map +1 -0
- package/dist/cli/tui/views/ProposalList.d.ts +15 -0
- package/dist/cli/tui/views/ProposalList.d.ts.map +1 -0
- package/dist/cli/tui/views/ProposalList.js +154 -0
- package/dist/cli/tui/views/ProposalList.js.map +1 -0
- package/dist/cli/tui/views/SimulationView.d.ts +12 -0
- package/dist/cli/tui/views/SimulationView.d.ts.map +1 -0
- package/dist/cli/tui/views/SimulationView.js +110 -0
- package/dist/cli/tui/views/SimulationView.js.map +1 -0
- package/dist/cli/tui/views/StageView.d.ts +12 -0
- package/dist/cli/tui/views/StageView.d.ts.map +1 -0
- package/dist/cli/tui/views/StageView.js +109 -0
- package/dist/cli/tui/views/StageView.js.map +1 -0
- package/dist/cli/tui/views/registry.d.ts +18 -0
- package/dist/cli/tui/views/registry.d.ts.map +1 -0
- package/dist/cli/tui/views/registry.js +34 -0
- package/dist/cli/tui/views/registry.js.map +1 -0
- package/dist/constants.d.ts +44 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +52 -1
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +16408 -2561
- package/dist/deduplication.d.ts +132 -0
- package/dist/deduplication.d.ts.map +1 -0
- package/dist/deduplication.js +270 -0
- package/dist/deduplication.js.map +1 -0
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +52 -36
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts +15 -6
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -11
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts +8 -0
- package/dist/election/contracts.d.ts.map +1 -0
- package/dist/election/contracts.js +28 -0
- package/dist/election/contracts.js.map +1 -0
- package/dist/election/details.d.ts +15 -0
- package/dist/election/details.d.ts.map +1 -0
- package/dist/election/details.js +157 -0
- package/dist/election/details.js.map +1 -0
- package/dist/election/index.d.ts +11 -0
- package/dist/election/index.d.ts.map +1 -0
- package/dist/election/index.js +48 -0
- package/dist/election/index.js.map +1 -0
- package/dist/election/params.d.ts +13 -0
- package/dist/election/params.d.ts.map +1 -0
- package/dist/election/params.js +93 -0
- package/dist/election/params.js.map +1 -0
- package/dist/election/participants.d.ts +6 -0
- package/dist/election/participants.d.ts.map +1 -0
- package/dist/election/participants.js +104 -0
- package/dist/election/participants.js.map +1 -0
- package/dist/election/prepare.d.ts +10 -0
- package/dist/election/prepare.d.ts.map +1 -0
- package/dist/election/prepare.js +52 -0
- package/dist/election/prepare.js.map +1 -0
- package/dist/election/proposal-ids.d.ts +18 -0
- package/dist/election/proposal-ids.d.ts.map +1 -0
- package/dist/election/proposal-ids.js +77 -0
- package/dist/election/proposal-ids.js.map +1 -0
- package/dist/election/status.d.ts +15 -0
- package/dist/election/status.d.ts.map +1 -0
- package/dist/election/status.js +105 -0
- package/dist/election/status.js.map +1 -0
- package/dist/election/tracking.d.ts +28 -0
- package/dist/election/tracking.d.ts.map +1 -0
- package/dist/election/tracking.js +412 -0
- package/dist/election/tracking.js.map +1 -0
- package/dist/index.d.ts +32 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +101 -9
- package/dist/index.js.map +1 -1
- package/dist/stages/builder.d.ts +4 -0
- package/dist/stages/builder.d.ts.map +1 -1
- package/dist/stages/builder.js +7 -0
- package/dist/stages/builder.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts +8 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +79 -13
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-created.d.ts +1 -0
- package/dist/stages/proposal-created.d.ts.map +1 -1
- package/dist/stages/proposal-created.js +1 -0
- package/dist/stages/proposal-created.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts +1 -0
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +3 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.js +2 -2
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +3 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +10 -4
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +7 -8
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +40 -27
- package/dist/stages/utils.js.map +1 -1
- package/dist/stages/voting.d.ts.map +1 -1
- package/dist/stages/voting.js +5 -4
- package/dist/stages/voting.js.map +1 -1
- package/dist/tracker/cache.d.ts +10 -6
- package/dist/tracker/cache.d.ts.map +1 -1
- package/dist/tracker/cache.js +39 -15
- package/dist/tracker/cache.js.map +1 -1
- package/dist/tracker/checkpoint-helpers.d.ts +80 -0
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
- package/dist/tracker/checkpoint-helpers.js +200 -0
- package/dist/tracker/checkpoint-helpers.js.map +1 -0
- package/dist/tracker/discovery.d.ts +40 -9
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +152 -15
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +26 -11
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +1 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +14 -61
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +0 -10
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +1 -28
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +100 -8
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +405 -42
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +49 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +4 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/election.d.ts +144 -1
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/stages.d.ts +79 -1
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +34 -4
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/block-cache.d.ts +50 -0
- package/dist/utils/block-cache.d.ts.map +1 -0
- package/dist/utils/block-cache.js +80 -0
- package/dist/utils/block-cache.js.map +1 -0
- package/dist/utils/formatters.d.ts +91 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +327 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/multicall.d.ts +52 -0
- package/dist/utils/multicall.d.ts.map +1 -0
- package/dist/utils/multicall.js +75 -0
- package/dist/utils/multicall.js.map +1 -0
- package/dist/utils/rpc-utils.d.ts +7 -1
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +43 -29
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/salt-computation.d.ts.map +1 -1
- package/dist/utils/salt-computation.js +33 -7
- package/dist/utils/salt-computation.js.map +1 -1
- package/dist/utils/sanitize.d.ts +28 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +55 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/stage-metadata.d.ts +0 -20
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +29 -44
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts +23 -3
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +71 -7
- package/dist/utils/timing.js.map +1 -1
- package/package.json +29 -16
- package/dist/cli/monitor.d.ts +0 -3
- package/dist/cli/monitor.d.ts.map +0 -1
- package/dist/cli/monitor.js.map +0 -1
- package/dist/election.d.ts +0 -172
- package/dist/election.d.ts.map +0 -1
- package/dist/election.js +0 -467
- package/dist/election.js.map +0 -1
- package/dist/types/cross-chain.d.ts +0 -24
- package/dist/types/cross-chain.d.ts.map +0 -1
- package/dist/types/cross-chain.js +0 -6
- package/dist/types/cross-chain.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TUI Module Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Interactive terminal UI for browsing governance proposals from cache.
|
|
6
|
+
* Requires: ink@3.x, react@17.x (CommonJS compatible versions)
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.runTui = runTui;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const ink_wrapper_js_1 = require("./ink-wrapper.js");
|
|
45
|
+
function checkTtySupport() {
|
|
46
|
+
if (!process.stdin.isTTY) {
|
|
47
|
+
console.error("Error: TUI requires an interactive terminal (TTY).");
|
|
48
|
+
console.error("");
|
|
49
|
+
console.error("The TUI cannot run in:");
|
|
50
|
+
console.error(" - Piped input (e.g., echo 'q' | gov-tracker ui)");
|
|
51
|
+
console.error(" - CI/CD environments without TTY allocation");
|
|
52
|
+
console.error(" - Non-interactive shells");
|
|
53
|
+
console.error("");
|
|
54
|
+
console.error("For non-interactive use, try: gov-tracker status");
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function runTui(options) {
|
|
59
|
+
checkTtySupport();
|
|
60
|
+
(0, ink_wrapper_js_1.checkTuiDependencies)();
|
|
61
|
+
// Set up file logging if logFile is specified
|
|
62
|
+
let logStream = null;
|
|
63
|
+
let originalStderrWrite = null;
|
|
64
|
+
if (options.logFile) {
|
|
65
|
+
logStream = fs.createWriteStream(options.logFile, { flags: "a" });
|
|
66
|
+
logStream.write(`\n--- TUI Session Started: ${new Date().toISOString()} ---\n`);
|
|
67
|
+
// Redirect stderr (where debug writes) to file
|
|
68
|
+
originalStderrWrite = process.stderr.write.bind(process.stderr);
|
|
69
|
+
process.stderr.write = ((chunk) => {
|
|
70
|
+
// Write to log file
|
|
71
|
+
logStream?.write(chunk);
|
|
72
|
+
// Don't write debug output to terminal (it would corrupt TUI)
|
|
73
|
+
// Only return true to indicate successful write
|
|
74
|
+
return true;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const { App } = await Promise.resolve().then(() => __importStar(require("./App.js")));
|
|
78
|
+
try {
|
|
79
|
+
const { waitUntilExit } = (0, ink_wrapper_js_1.render)(ink_wrapper_js_1.React.createElement(App, {
|
|
80
|
+
cachePath: options.cachePath,
|
|
81
|
+
verbose: options.verbose,
|
|
82
|
+
}), { fullScreen: true });
|
|
83
|
+
await waitUntilExit();
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
// Restore stderr and close log file
|
|
87
|
+
if (originalStderrWrite) {
|
|
88
|
+
process.stderr.write = originalStderrWrite;
|
|
89
|
+
}
|
|
90
|
+
if (logStream) {
|
|
91
|
+
logStream.write(`--- TUI Session Ended: ${new Date().toISOString()} ---\n`);
|
|
92
|
+
logStream.end();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBH,wBA6CC;AApED,uCAAyB;AACzB,qDAAuE;AAQvE,SAAS,eAAe;IACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,OAAmB;IAC9C,eAAe,EAAE,CAAC;IAClB,IAAA,qCAAoB,GAAE,CAAC;IAEvB,8CAA8C;IAC9C,IAAI,SAAS,GAA0B,IAAI,CAAC;IAC5C,IAAI,mBAAmB,GAAuC,IAAI,CAAC;IAEnE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,SAAS,CAAC,KAAK,CAAC,8BAA8B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEhF,+CAA+C;QAC/C,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;YACrD,oBAAoB;YACpB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,8DAA8D;YAC9D,gDAAgD;YAChD,OAAO,IAAI,CAAC;QACd,CAAC,CAAgC,CAAC;IACpC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,uBAAM,EAC9B,sBAAK,CAAC,aAAa,CAAC,GAAG,EAAE;YACvB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;QAEF,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,oCAAoC;QACpC,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC;QAC7C,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5E,SAAS,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ink wrapper to handle module resolution
|
|
3
|
+
*
|
|
4
|
+
* This module provides type-safe wrappers for ink components
|
|
5
|
+
* that work with the project's CommonJS module resolution.
|
|
6
|
+
*/
|
|
7
|
+
declare let React: any;
|
|
8
|
+
export declare function checkTuiDependencies(): void;
|
|
9
|
+
export { React };
|
|
10
|
+
export declare const useState: typeof import("react").useState;
|
|
11
|
+
export declare const useCallback: typeof import("react").useCallback;
|
|
12
|
+
export declare const useMemo: typeof import("react").useMemo;
|
|
13
|
+
export declare const useEffect: typeof import("react").useEffect;
|
|
14
|
+
export declare const render: any;
|
|
15
|
+
export declare const Box: any;
|
|
16
|
+
export declare const Text: any;
|
|
17
|
+
export declare const useInput: (callback: (input: string, key: KeyInput) => void, options?: {
|
|
18
|
+
isActive?: boolean;
|
|
19
|
+
}) => void;
|
|
20
|
+
export declare const useApp: () => {
|
|
21
|
+
exit: (error?: Error) => void;
|
|
22
|
+
};
|
|
23
|
+
export declare const useStdout: () => {
|
|
24
|
+
stdout: NodeJS.WriteStream;
|
|
25
|
+
write: (data: string) => void;
|
|
26
|
+
};
|
|
27
|
+
export interface KeyInput {
|
|
28
|
+
upArrow: boolean;
|
|
29
|
+
downArrow: boolean;
|
|
30
|
+
leftArrow: boolean;
|
|
31
|
+
rightArrow: boolean;
|
|
32
|
+
pageUp: boolean;
|
|
33
|
+
pageDown: boolean;
|
|
34
|
+
return: boolean;
|
|
35
|
+
escape: boolean;
|
|
36
|
+
tab: boolean;
|
|
37
|
+
backspace: boolean;
|
|
38
|
+
delete: boolean;
|
|
39
|
+
ctrl: boolean;
|
|
40
|
+
meta: boolean;
|
|
41
|
+
shift: boolean;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=ink-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ink-wrapper.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/ink-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,QAAA,IAAI,KAAK,EAAE,GAAG,CAAC;AAWf,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,eAAO,MAAM,QAAQ,EAAsB,cAAc,OAAO,EAAE,QAAQ,CAAC;AAC3E,eAAO,MAAM,WAAW,EAAyB,cAAc,OAAO,EAAE,WAAW,CAAC;AACpF,eAAO,MAAM,OAAO,EAAqB,cAAc,OAAO,EAAE,OAAO,CAAC;AACxE,eAAO,MAAM,SAAS,EAAuB,cAAc,OAAO,EAAE,SAAS,CAAC;AAC9E,eAAO,MAAM,MAAM,KAAc,CAAC;AAClC,eAAO,MAAM,GAAG,KAAW,CAAC;AAC5B,eAAO,MAAM,IAAI,KAAY,CAAC;AAC9B,eAAO,MAAM,QAAQ,EAAoB,CACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,EAChD,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7B,IAAI,CAAC;AACV,eAAO,MAAM,MAAM,EAAkB,MAAM;IAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;CAAE,CAAC;AAC7E,eAAO,MAAM,SAAS,EAAqB,MAAM;IAC/C,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ink wrapper to handle module resolution
|
|
4
|
+
*
|
|
5
|
+
* This module provides type-safe wrappers for ink components
|
|
6
|
+
* that work with the project's CommonJS module resolution.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.useStdout = exports.useApp = exports.useInput = exports.Text = exports.Box = exports.render = exports.useEffect = exports.useMemo = exports.useCallback = exports.useState = exports.React = void 0;
|
|
10
|
+
exports.checkTuiDependencies = checkTuiDependencies;
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
let ink;
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
let React;
|
|
15
|
+
try {
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
17
|
+
ink = require("ink");
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
19
|
+
exports.React = React = require("react");
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Dependencies loaded lazily - will be checked at runtime
|
|
23
|
+
}
|
|
24
|
+
function checkTuiDependencies() {
|
|
25
|
+
if (!ink || !React) {
|
|
26
|
+
console.error("Error: TUI requires 'ink' and 'react' packages.");
|
|
27
|
+
console.error("Install them with: yarn add ink@^3.2.0 react@^17.0.2");
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.useState = React?.useState;
|
|
32
|
+
exports.useCallback = React?.useCallback;
|
|
33
|
+
exports.useMemo = React?.useMemo;
|
|
34
|
+
exports.useEffect = React?.useEffect;
|
|
35
|
+
exports.render = ink?.render;
|
|
36
|
+
exports.Box = ink?.Box;
|
|
37
|
+
exports.Text = ink?.Text;
|
|
38
|
+
exports.useInput = ink?.useInput;
|
|
39
|
+
exports.useApp = ink?.useApp;
|
|
40
|
+
exports.useStdout = ink?.useStdout;
|
|
41
|
+
//# sourceMappingURL=ink-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ink-wrapper.js","sourceRoot":"","sources":["../../../src/cli/tui/ink-wrapper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAgBH,oDAMC;AApBD,8DAA8D;AAC9D,IAAI,GAAQ,CAAC;AACb,8DAA8D;AAC9D,IAAI,KAAU,CAAC;AAEf,IAAI,CAAC;IACH,iEAAiE;IACjE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,iEAAiE;IACjE,gBAAA,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAAC,MAAM,CAAC;IACP,0DAA0D;AAC5D,CAAC;AAED,SAAgB,oBAAoB;IAClC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAGY,QAAA,QAAQ,GAAG,KAAK,EAAE,QAA2C,CAAC;AAC9D,QAAA,WAAW,GAAG,KAAK,EAAE,WAAiD,CAAC;AACvE,QAAA,OAAO,GAAG,KAAK,EAAE,OAAyC,CAAC;AAC3D,QAAA,SAAS,GAAG,KAAK,EAAE,SAA6C,CAAC;AACjE,QAAA,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;AACrB,QAAA,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;AACf,QAAA,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;AACjB,QAAA,QAAQ,GAAG,GAAG,EAAE,QAGpB,CAAC;AACG,QAAA,MAAM,GAAG,GAAG,EAAE,MAAiD,CAAC;AAChE,QAAA,SAAS,GAAG,GAAG,EAAE,SAG7B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI-specific types
|
|
3
|
+
*/
|
|
4
|
+
import type { TrackingCheckpoint, TrackerStats, StageType } from "../../types/index.js";
|
|
5
|
+
export type ViewType = "list" | "detail" | "calldata" | "stage" | "simulation" | "description" | "election" | "help";
|
|
6
|
+
export type FilterType = "all" | "active" | "complete" | "timelocks";
|
|
7
|
+
export type SortType = "newest" | "oldest" | "progress" | "status";
|
|
8
|
+
export interface ProposalListItem {
|
|
9
|
+
key: string;
|
|
10
|
+
title: string;
|
|
11
|
+
type: "governor" | "timelock" | "election";
|
|
12
|
+
proposalType?: string;
|
|
13
|
+
status: "active" | "complete" | "failed";
|
|
14
|
+
stageProgress: string;
|
|
15
|
+
currentStage: StageType | null;
|
|
16
|
+
hasExecutable: boolean;
|
|
17
|
+
createdAt: number | null;
|
|
18
|
+
checkpoint: TrackingCheckpoint;
|
|
19
|
+
}
|
|
20
|
+
export interface NavigationState {
|
|
21
|
+
view: ViewType;
|
|
22
|
+
previousView: ViewType | null;
|
|
23
|
+
filter: FilterType;
|
|
24
|
+
sort: SortType;
|
|
25
|
+
selectedIndex: number;
|
|
26
|
+
selectedProposal: ProposalListItem | null;
|
|
27
|
+
selectedStageIndex: number;
|
|
28
|
+
calldataActionIndex: number;
|
|
29
|
+
scrollOffset: number;
|
|
30
|
+
searchQuery: string;
|
|
31
|
+
isSearching: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface CacheData {
|
|
34
|
+
checkpoints: Map<string, TrackingCheckpoint>;
|
|
35
|
+
elections: Map<number, TrackingCheckpoint>;
|
|
36
|
+
stats: TrackerStats;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAExF,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,YAAY,GACZ,aAAa,GACb,UAAU,GACV,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC3C,KAAK,EAAE,YAAY,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/tui/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calldata formatting utilities for TUI display
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from core SDK formatters for backward compatibility.
|
|
5
|
+
*/
|
|
6
|
+
export { type FormattedLine, formatDecodedCalldata, filterVisibleLines, getAllFoldableKeys, toggleFoldKey, } from "../../../utils/formatters.js";
|
|
7
|
+
//# sourceMappingURL=calldata-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata-formatter.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/calldata-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Calldata formatting utilities for TUI display
|
|
4
|
+
*
|
|
5
|
+
* Re-exports from core SDK formatters for backward compatibility.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.toggleFoldKey = exports.getAllFoldableKeys = exports.filterVisibleLines = exports.formatDecodedCalldata = void 0;
|
|
9
|
+
var formatters_js_1 = require("../../../utils/formatters.js");
|
|
10
|
+
Object.defineProperty(exports, "formatDecodedCalldata", { enumerable: true, get: function () { return formatters_js_1.formatDecodedCalldata; } });
|
|
11
|
+
Object.defineProperty(exports, "filterVisibleLines", { enumerable: true, get: function () { return formatters_js_1.filterVisibleLines; } });
|
|
12
|
+
Object.defineProperty(exports, "getAllFoldableKeys", { enumerable: true, get: function () { return formatters_js_1.getAllFoldableKeys; } });
|
|
13
|
+
Object.defineProperty(exports, "toggleFoldKey", { enumerable: true, get: function () { return formatters_js_1.toggleFoldKey; } });
|
|
14
|
+
//# sourceMappingURL=calldata-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calldata-formatter.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/calldata-formatter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,8DAMsC;AAJpC,sHAAA,qBAAqB,OAAA;AACrB,mHAAA,kBAAkB,OAAA;AAClB,mHAAA,kBAAkB,OAAA;AAClB,8GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clipboard utilities for TUI
|
|
3
|
+
* Uses native OS clipboard commands via safe execFile
|
|
4
|
+
*/
|
|
5
|
+
export declare function copyToClipboard(text: string): boolean;
|
|
6
|
+
export declare function formatForCopy(value: string, type: "hash" | "address" | "id"): string;
|
|
7
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuBrD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAUpF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Clipboard utilities for TUI
|
|
4
|
+
* Uses native OS clipboard commands via safe execFile
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.copyToClipboard = copyToClipboard;
|
|
8
|
+
exports.formatForCopy = formatForCopy;
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
function copyToClipboard(text) {
|
|
11
|
+
try {
|
|
12
|
+
const platform = process.platform;
|
|
13
|
+
if (platform === "darwin") {
|
|
14
|
+
(0, child_process_1.execFileSync)("pbcopy", [], { input: text });
|
|
15
|
+
}
|
|
16
|
+
else if (platform === "linux") {
|
|
17
|
+
// Try xclip first, then xsel
|
|
18
|
+
try {
|
|
19
|
+
(0, child_process_1.execFileSync)("xclip", ["-selection", "clipboard"], { input: text });
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
(0, child_process_1.execFileSync)("xsel", ["--clipboard", "--input"], { input: text });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (platform === "win32") {
|
|
26
|
+
(0, child_process_1.execFileSync)("clip", [], { input: text });
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function formatForCopy(value, type) {
|
|
38
|
+
// Remove any display formatting
|
|
39
|
+
const cleaned = value.replace(/\s+/g, "").trim();
|
|
40
|
+
// Ensure proper prefix for addresses and hashes
|
|
41
|
+
if ((type === "hash" || type === "address") && !cleaned.startsWith("0x")) {
|
|
42
|
+
return `0x${cleaned}`;
|
|
43
|
+
}
|
|
44
|
+
return cleaned;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/clipboard.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,0CAuBC;AAED,sCAUC;AArCD,iDAA6C;AAE7C,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAA,4BAAY,EAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,6BAA6B;YAC7B,IAAI,CAAC;gBACH,IAAA,4BAAY,EAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,4BAAY,EAAC,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAA,4BAAY,EAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa,EAAE,IAA+B;IAC1E,gCAAgC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,gDAAgD;IAChD,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { wrapText, truncate } from "./text.js";
|
|
2
|
+
export { getTerminalSize, getVisibleRows } from "./terminal.js";
|
|
3
|
+
export type { TerminalSize } from "./terminal.js";
|
|
4
|
+
export { copyToClipboard, formatForCopy } from "./clipboard.js";
|
|
5
|
+
export { formatDecodedCalldata, filterVisibleLines, getAllFoldableKeys, toggleFoldKey, } from "./calldata-formatter.js";
|
|
6
|
+
export type { FormattedLine } from "./calldata-formatter.js";
|
|
7
|
+
export { CHAIN_TO_CHAIN_ID, safeStringify, formatValue, formatStageData, } from "./stage-formatter.js";
|
|
8
|
+
export type { StageDataItem } from "./stage-formatter.js";
|
|
9
|
+
export { parseMarkdown } from "./markdown-parser.js";
|
|
10
|
+
export type { MarkdownLine, MarkdownLineType } from "./markdown-parser.js";
|
|
11
|
+
export { formatDate, getTxHash, getProposalIdDisplay, getStages, buildBreadcrumb, } from "./proposal-detail-helpers.js";
|
|
12
|
+
export { clamp, cycleArray, getNavigationAction, applyNavigation, parseProgress, SORT_LABELS, SORT_LABELS_SHORT, } from "./navigation.js";
|
|
13
|
+
export type { NavigationAction } from "./navigation.js";
|
|
14
|
+
export { STAGE_TYPES, getStatusIcon, getStatusColor, ELECTION_PHASE_COLORS, ELECTION_PHASE_ICONS, } from "./stage-status.js";
|
|
15
|
+
export { MS_PER_MINUTE, MS_PER_HOUR, MS_PER_DAY, formatDurationMs, formatElapsedMs, formatDurationSec, } from "./time.js";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,eAAe,GAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,KAAK,EACL,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDurationSec = exports.formatElapsedMs = exports.formatDurationMs = exports.MS_PER_DAY = exports.MS_PER_HOUR = exports.MS_PER_MINUTE = exports.ELECTION_PHASE_ICONS = exports.ELECTION_PHASE_COLORS = exports.getStatusColor = exports.getStatusIcon = exports.STAGE_TYPES = exports.SORT_LABELS_SHORT = exports.SORT_LABELS = exports.parseProgress = exports.applyNavigation = exports.getNavigationAction = exports.cycleArray = exports.clamp = exports.buildBreadcrumb = exports.getStages = exports.getProposalIdDisplay = exports.getTxHash = exports.formatDate = exports.parseMarkdown = exports.formatStageData = exports.formatValue = exports.safeStringify = exports.CHAIN_TO_CHAIN_ID = exports.toggleFoldKey = exports.getAllFoldableKeys = exports.filterVisibleLines = exports.formatDecodedCalldata = exports.formatForCopy = exports.copyToClipboard = exports.getVisibleRows = exports.getTerminalSize = exports.truncate = exports.wrapText = void 0;
|
|
4
|
+
var text_js_1 = require("./text.js");
|
|
5
|
+
Object.defineProperty(exports, "wrapText", { enumerable: true, get: function () { return text_js_1.wrapText; } });
|
|
6
|
+
Object.defineProperty(exports, "truncate", { enumerable: true, get: function () { return text_js_1.truncate; } });
|
|
7
|
+
var terminal_js_1 = require("./terminal.js");
|
|
8
|
+
Object.defineProperty(exports, "getTerminalSize", { enumerable: true, get: function () { return terminal_js_1.getTerminalSize; } });
|
|
9
|
+
Object.defineProperty(exports, "getVisibleRows", { enumerable: true, get: function () { return terminal_js_1.getVisibleRows; } });
|
|
10
|
+
var clipboard_js_1 = require("./clipboard.js");
|
|
11
|
+
Object.defineProperty(exports, "copyToClipboard", { enumerable: true, get: function () { return clipboard_js_1.copyToClipboard; } });
|
|
12
|
+
Object.defineProperty(exports, "formatForCopy", { enumerable: true, get: function () { return clipboard_js_1.formatForCopy; } });
|
|
13
|
+
var calldata_formatter_js_1 = require("./calldata-formatter.js");
|
|
14
|
+
Object.defineProperty(exports, "formatDecodedCalldata", { enumerable: true, get: function () { return calldata_formatter_js_1.formatDecodedCalldata; } });
|
|
15
|
+
Object.defineProperty(exports, "filterVisibleLines", { enumerable: true, get: function () { return calldata_formatter_js_1.filterVisibleLines; } });
|
|
16
|
+
Object.defineProperty(exports, "getAllFoldableKeys", { enumerable: true, get: function () { return calldata_formatter_js_1.getAllFoldableKeys; } });
|
|
17
|
+
Object.defineProperty(exports, "toggleFoldKey", { enumerable: true, get: function () { return calldata_formatter_js_1.toggleFoldKey; } });
|
|
18
|
+
var stage_formatter_js_1 = require("./stage-formatter.js");
|
|
19
|
+
Object.defineProperty(exports, "CHAIN_TO_CHAIN_ID", { enumerable: true, get: function () { return stage_formatter_js_1.CHAIN_TO_CHAIN_ID; } });
|
|
20
|
+
Object.defineProperty(exports, "safeStringify", { enumerable: true, get: function () { return stage_formatter_js_1.safeStringify; } });
|
|
21
|
+
Object.defineProperty(exports, "formatValue", { enumerable: true, get: function () { return stage_formatter_js_1.formatValue; } });
|
|
22
|
+
Object.defineProperty(exports, "formatStageData", { enumerable: true, get: function () { return stage_formatter_js_1.formatStageData; } });
|
|
23
|
+
var markdown_parser_js_1 = require("./markdown-parser.js");
|
|
24
|
+
Object.defineProperty(exports, "parseMarkdown", { enumerable: true, get: function () { return markdown_parser_js_1.parseMarkdown; } });
|
|
25
|
+
var proposal_detail_helpers_js_1 = require("./proposal-detail-helpers.js");
|
|
26
|
+
Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return proposal_detail_helpers_js_1.formatDate; } });
|
|
27
|
+
Object.defineProperty(exports, "getTxHash", { enumerable: true, get: function () { return proposal_detail_helpers_js_1.getTxHash; } });
|
|
28
|
+
Object.defineProperty(exports, "getProposalIdDisplay", { enumerable: true, get: function () { return proposal_detail_helpers_js_1.getProposalIdDisplay; } });
|
|
29
|
+
Object.defineProperty(exports, "getStages", { enumerable: true, get: function () { return proposal_detail_helpers_js_1.getStages; } });
|
|
30
|
+
Object.defineProperty(exports, "buildBreadcrumb", { enumerable: true, get: function () { return proposal_detail_helpers_js_1.buildBreadcrumb; } });
|
|
31
|
+
var navigation_js_1 = require("./navigation.js");
|
|
32
|
+
Object.defineProperty(exports, "clamp", { enumerable: true, get: function () { return navigation_js_1.clamp; } });
|
|
33
|
+
Object.defineProperty(exports, "cycleArray", { enumerable: true, get: function () { return navigation_js_1.cycleArray; } });
|
|
34
|
+
Object.defineProperty(exports, "getNavigationAction", { enumerable: true, get: function () { return navigation_js_1.getNavigationAction; } });
|
|
35
|
+
Object.defineProperty(exports, "applyNavigation", { enumerable: true, get: function () { return navigation_js_1.applyNavigation; } });
|
|
36
|
+
Object.defineProperty(exports, "parseProgress", { enumerable: true, get: function () { return navigation_js_1.parseProgress; } });
|
|
37
|
+
Object.defineProperty(exports, "SORT_LABELS", { enumerable: true, get: function () { return navigation_js_1.SORT_LABELS; } });
|
|
38
|
+
Object.defineProperty(exports, "SORT_LABELS_SHORT", { enumerable: true, get: function () { return navigation_js_1.SORT_LABELS_SHORT; } });
|
|
39
|
+
var stage_status_js_1 = require("./stage-status.js");
|
|
40
|
+
Object.defineProperty(exports, "STAGE_TYPES", { enumerable: true, get: function () { return stage_status_js_1.STAGE_TYPES; } });
|
|
41
|
+
Object.defineProperty(exports, "getStatusIcon", { enumerable: true, get: function () { return stage_status_js_1.getStatusIcon; } });
|
|
42
|
+
Object.defineProperty(exports, "getStatusColor", { enumerable: true, get: function () { return stage_status_js_1.getStatusColor; } });
|
|
43
|
+
Object.defineProperty(exports, "ELECTION_PHASE_COLORS", { enumerable: true, get: function () { return stage_status_js_1.ELECTION_PHASE_COLORS; } });
|
|
44
|
+
Object.defineProperty(exports, "ELECTION_PHASE_ICONS", { enumerable: true, get: function () { return stage_status_js_1.ELECTION_PHASE_ICONS; } });
|
|
45
|
+
var time_js_1 = require("./time.js");
|
|
46
|
+
Object.defineProperty(exports, "MS_PER_MINUTE", { enumerable: true, get: function () { return time_js_1.MS_PER_MINUTE; } });
|
|
47
|
+
Object.defineProperty(exports, "MS_PER_HOUR", { enumerable: true, get: function () { return time_js_1.MS_PER_HOUR; } });
|
|
48
|
+
Object.defineProperty(exports, "MS_PER_DAY", { enumerable: true, get: function () { return time_js_1.MS_PER_DAY; } });
|
|
49
|
+
Object.defineProperty(exports, "formatDurationMs", { enumerable: true, get: function () { return time_js_1.formatDurationMs; } });
|
|
50
|
+
Object.defineProperty(exports, "formatElapsedMs", { enumerable: true, get: function () { return time_js_1.formatElapsedMs; } });
|
|
51
|
+
Object.defineProperty(exports, "formatDurationSec", { enumerable: true, get: function () { return time_js_1.formatDurationSec; } });
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/index.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAAtC,mGAAA,QAAQ,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAC3B,6CAAgE;AAAvD,8GAAA,eAAe,OAAA;AAAE,6GAAA,cAAc,OAAA;AAExC,+CAAgE;AAAvD,+GAAA,eAAe,OAAA;AAAE,6GAAA,aAAa,OAAA;AACvC,iEAKiC;AAJ/B,8HAAA,qBAAqB,OAAA;AACrB,2HAAA,kBAAkB,OAAA;AAClB,2HAAA,kBAAkB,OAAA;AAClB,sHAAA,aAAa,OAAA;AAGf,2DAK8B;AAJ5B,uHAAA,iBAAiB,OAAA;AACjB,mHAAA,aAAa,OAAA;AACb,iHAAA,WAAW,OAAA;AACX,qHAAA,eAAe,OAAA;AAGjB,2DAAqD;AAA5C,mHAAA,aAAa,OAAA;AAEtB,2EAMsC;AALpC,wHAAA,UAAU,OAAA;AACV,uHAAA,SAAS,OAAA;AACT,kIAAA,oBAAoB,OAAA;AACpB,uHAAA,SAAS,OAAA;AACT,6HAAA,eAAe,OAAA;AAEjB,iDAQyB;AAPvB,sGAAA,KAAK,OAAA;AACL,2GAAA,UAAU,OAAA;AACV,oHAAA,mBAAmB,OAAA;AACnB,gHAAA,eAAe,OAAA;AACf,8GAAA,aAAa,OAAA;AACb,4GAAA,WAAW,OAAA;AACX,kHAAA,iBAAiB,OAAA;AAGnB,qDAM2B;AALzB,8GAAA,WAAW,OAAA;AACX,gHAAA,aAAa,OAAA;AACb,iHAAA,cAAc,OAAA;AACd,wHAAA,qBAAqB,OAAA;AACrB,uHAAA,oBAAoB,OAAA;AAEtB,qCAOmB;AANjB,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,qGAAA,UAAU,OAAA;AACV,2GAAA,gBAAgB,OAAA;AAChB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal markdown parsing for TUI display
|
|
3
|
+
*/
|
|
4
|
+
export type MarkdownLineType = "normal" | "h1" | "h2" | "h3" | "bullet" | "separator";
|
|
5
|
+
export interface MarkdownLine {
|
|
6
|
+
text: string;
|
|
7
|
+
type: MarkdownLineType;
|
|
8
|
+
indent: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function parseMarkdown(text: string, width: number): MarkdownLine[];
|
|
11
|
+
//# sourceMappingURL=markdown-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/markdown-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAuDzE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal markdown parsing for TUI display
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseMarkdown = parseMarkdown;
|
|
7
|
+
function wrapText(text, width, type, indent, result) {
|
|
8
|
+
const safeWidth = Math.max(10, width);
|
|
9
|
+
const words = text.split(/\s+/);
|
|
10
|
+
let line = "";
|
|
11
|
+
let lineIndent = indent;
|
|
12
|
+
for (const word of words) {
|
|
13
|
+
if (!line) {
|
|
14
|
+
line = word;
|
|
15
|
+
}
|
|
16
|
+
else if (line.length + 1 + word.length <= safeWidth) {
|
|
17
|
+
line += " " + word;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
result.push({ text: line, type, indent: lineIndent });
|
|
21
|
+
line = word;
|
|
22
|
+
if (type === "bullet" && lineIndent === 2)
|
|
23
|
+
lineIndent = 4;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (line)
|
|
27
|
+
result.push({ text: line, type, indent: lineIndent });
|
|
28
|
+
}
|
|
29
|
+
function parseMarkdown(text, width) {
|
|
30
|
+
const result = [];
|
|
31
|
+
const safeWidth = Math.max(20, width);
|
|
32
|
+
for (const rawLine of text.split("\n")) {
|
|
33
|
+
const line = rawLine.trim();
|
|
34
|
+
if (!line) {
|
|
35
|
+
result.push({ text: "", type: "normal", indent: 0 });
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (/^[-*_]{3,}$/.test(line)) {
|
|
39
|
+
result.push({ text: "─".repeat(Math.min(safeWidth - 4, 60)), type: "separator", indent: 0 });
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (line.startsWith("### ")) {
|
|
43
|
+
result.push({ text: line.slice(4), type: "h3", indent: 0 });
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (line.startsWith("## ")) {
|
|
47
|
+
result.push({ text: line.slice(3), type: "h2", indent: 0 });
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (line.startsWith("# ")) {
|
|
51
|
+
result.push({ text: line.slice(2), type: "h1", indent: 0 });
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (/^[-*+] /.test(line)) {
|
|
55
|
+
wrapText(line.slice(2), safeWidth - 6, "bullet", 2, result);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const numMatch = line.match(/^(\d+)\. /);
|
|
59
|
+
if (numMatch) {
|
|
60
|
+
const content = line.slice(numMatch[0].length);
|
|
61
|
+
result.push({
|
|
62
|
+
text: `${numMatch[1]}. ${content.slice(0, safeWidth - 6)}`,
|
|
63
|
+
type: "bullet",
|
|
64
|
+
indent: 0,
|
|
65
|
+
});
|
|
66
|
+
if (content.length > safeWidth - 6)
|
|
67
|
+
wrapText(content.slice(safeWidth - 6), safeWidth - 6, "normal", 3, result);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (line.startsWith("```"))
|
|
71
|
+
continue;
|
|
72
|
+
const processed = line.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1");
|
|
73
|
+
wrapText(processed, safeWidth - 4, "normal", 0, result);
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=markdown-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/markdown-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared navigation utilities for TUI views
|
|
3
|
+
*/
|
|
4
|
+
import type { KeyInput } from "../ink-wrapper.js";
|
|
5
|
+
import type { SortType } from "../types.js";
|
|
6
|
+
export type NavigationAction = "up" | "down" | "pageUp" | "pageDown" | "top" | "bottom" | null;
|
|
7
|
+
export declare const SORT_LABELS: Record<SortType, string>;
|
|
8
|
+
export declare const SORT_LABELS_SHORT: Record<SortType, string>;
|
|
9
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
10
|
+
export declare function getNavigationAction(input: string, key: KeyInput): NavigationAction;
|
|
11
|
+
export declare function applyNavigation(current: number, action: NavigationAction, max: number): number;
|
|
12
|
+
export declare function cycleArray<T>(array: readonly T[], current: T): T;
|
|
13
|
+
export declare function parseProgress(stageProgress: string): {
|
|
14
|
+
current: number;
|
|
15
|
+
total: number;
|
|
16
|
+
} | null;
|
|
17
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/navigation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE/F,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKtD,CAAC;AAIF,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CAQlF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB9F;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAGhE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO9F"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared navigation utilities for TUI views
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SORT_LABELS_SHORT = exports.SORT_LABELS = void 0;
|
|
7
|
+
exports.clamp = clamp;
|
|
8
|
+
exports.getNavigationAction = getNavigationAction;
|
|
9
|
+
exports.applyNavigation = applyNavigation;
|
|
10
|
+
exports.cycleArray = cycleArray;
|
|
11
|
+
exports.parseProgress = parseProgress;
|
|
12
|
+
exports.SORT_LABELS = {
|
|
13
|
+
newest: "Newest",
|
|
14
|
+
oldest: "Oldest",
|
|
15
|
+
progress: "Progress",
|
|
16
|
+
status: "Status",
|
|
17
|
+
};
|
|
18
|
+
exports.SORT_LABELS_SHORT = {
|
|
19
|
+
newest: "↓New",
|
|
20
|
+
oldest: "↑Old",
|
|
21
|
+
progress: "↓Prog",
|
|
22
|
+
status: "Status",
|
|
23
|
+
};
|
|
24
|
+
const PAGE_SIZE = 10;
|
|
25
|
+
function clamp(value, min, max) {
|
|
26
|
+
return Math.max(min, Math.min(max, value));
|
|
27
|
+
}
|
|
28
|
+
function getNavigationAction(input, key) {
|
|
29
|
+
if (key.upArrow || input === "k")
|
|
30
|
+
return "up";
|
|
31
|
+
if (key.downArrow || input === "j")
|
|
32
|
+
return "down";
|
|
33
|
+
if (key.pageUp || (key.ctrl && input === "u"))
|
|
34
|
+
return "pageUp";
|
|
35
|
+
if (key.pageDown || (key.ctrl && input === "d"))
|
|
36
|
+
return "pageDown";
|
|
37
|
+
if (input === "g")
|
|
38
|
+
return "top";
|
|
39
|
+
if (input === "G")
|
|
40
|
+
return "bottom";
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
function applyNavigation(current, action, max) {
|
|
44
|
+
switch (action) {
|
|
45
|
+
case "up":
|
|
46
|
+
return clamp(current - 1, 0, max);
|
|
47
|
+
case "down":
|
|
48
|
+
return clamp(current + 1, 0, max);
|
|
49
|
+
case "pageUp":
|
|
50
|
+
return clamp(current - PAGE_SIZE, 0, max);
|
|
51
|
+
case "pageDown":
|
|
52
|
+
return clamp(current + PAGE_SIZE, 0, max);
|
|
53
|
+
case "top":
|
|
54
|
+
return 0;
|
|
55
|
+
case "bottom":
|
|
56
|
+
return max;
|
|
57
|
+
default:
|
|
58
|
+
return current;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function cycleArray(array, current) {
|
|
62
|
+
const nextIndex = (array.indexOf(current) + 1) % array.length;
|
|
63
|
+
return array[nextIndex];
|
|
64
|
+
}
|
|
65
|
+
function parseProgress(stageProgress) {
|
|
66
|
+
const match = stageProgress.match(/(\d+)\/(\d+)/);
|
|
67
|
+
if (!match)
|
|
68
|
+
return null;
|
|
69
|
+
const current = parseInt(match[1], 10);
|
|
70
|
+
const total = parseInt(match[2], 10);
|
|
71
|
+
if (total <= 0 || current < 0)
|
|
72
|
+
return null;
|
|
73
|
+
return { current, total };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=navigation.js.map
|