@mks2508/mks-ui 0.5.7 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react-ui/index.js +2 -2
- package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts +2 -0
- package/dist/react-ui/primitives/waapi/Gooey/Gooey.types.d.ts.map +1 -1
- package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts +1 -1
- package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.d.ts.map +1 -1
- package/dist/react-ui/primitives/waapi/Gooey/GooeyCanvas.js +173 -43
- package/dist/react-ui/ui/Dialog/Dialog.styles.d.ts.map +1 -1
- package/dist/react-ui/ui/Dialog/Dialog.styles.js +1 -0
- package/dist/react-ui/ui/Dialog/Dialog.types.d.ts +20 -1
- package/dist/react-ui/ui/Dialog/Dialog.types.d.ts.map +1 -1
- package/dist/react-ui/ui/Dialog/index.d.ts +28 -7
- package/dist/react-ui/ui/Dialog/index.d.ts.map +1 -1
- package/dist/react-ui/ui/Dialog/index.js +32 -5
- package/dist/react-ui/ui/DynamicToggle/{DynamicToggle-DOR3Ld-k.css → DynamicToggle-DJLwEkHr.css} +12 -19
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +12 -20
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts +1 -0
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.styles.js +7 -1
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts +55 -31
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.types.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/index.d.ts +9 -3
- package/dist/react-ui/ui/DynamicToggle/index.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/index.js +47 -34
- package/dist/react-ui/ui/index.js +1 -1
- package/package.json +52 -13
- package/src/assets/react.svg +0 -1
- package/src/core/index.ts +0 -7
- package/src/core/types.ts +0 -82
- package/src/css.d.ts +0 -7
- package/src/index.css +0 -129
- package/src/index.ts +0 -29
- package/src/react-ui/blocks/Terminal/ResttyAdapter.ts +0 -278
- package/src/react-ui/blocks/Terminal/Terminal.adapter.ts +0 -97
- package/src/react-ui/blocks/Terminal/Terminal.theme.restty.ts +0 -155
- package/src/react-ui/blocks/Terminal/Terminal.theme.ts +0 -80
- package/src/react-ui/blocks/Terminal/Terminal.types.ts +0 -438
- package/src/react-ui/blocks/Terminal/TerminalDisplay.styles.ts +0 -38
- package/src/react-ui/blocks/Terminal/TerminalDisplay.tsx +0 -254
- package/src/react-ui/blocks/Terminal/TerminalDisplay.types.ts +0 -73
- package/src/react-ui/blocks/Terminal/TerminalPanel.tsx +0 -269
- package/src/react-ui/blocks/Terminal/TerminalRestty.tsx +0 -326
- package/src/react-ui/blocks/Terminal/TerminalXterm.tsx +0 -230
- package/src/react-ui/blocks/Terminal/XTermAdapter.ts +0 -163
- package/src/react-ui/blocks/Terminal/chrome.ts +0 -25
- package/src/react-ui/blocks/Terminal/components/LogLineBadges.tsx +0 -316
- package/src/react-ui/blocks/Terminal/components/SpecializedSyntaxHighlighter.tsx +0 -218
- package/src/react-ui/blocks/Terminal/components/SyntaxHighlight.tsx +0 -386
- package/src/react-ui/blocks/Terminal/components/TerminalLogBadge.tsx +0 -67
- package/src/react-ui/blocks/Terminal/components/index.ts +0 -10
- package/src/react-ui/blocks/Terminal/display.ts +0 -46
- package/src/react-ui/blocks/Terminal/hooks/index.ts +0 -22
- package/src/react-ui/blocks/Terminal/hooks/useTerminalSettings.ts +0 -229
- package/src/react-ui/blocks/Terminal/hooks/useTerminalWebSocket.ts +0 -292
- package/src/react-ui/blocks/Terminal/index.ts +0 -111
- package/src/react-ui/blocks/Terminal/panel/LogLinesViewer.tsx +0 -330
- package/src/react-ui/blocks/Terminal/panel/TerminalDebugPanel.tsx +0 -242
- package/src/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.tsx +0 -202
- package/src/react-ui/blocks/Terminal/panel/TerminalFilterTabs.tsx +0 -140
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.tsx +0 -68
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.ts +0 -85
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.tsx +0 -383
- package/src/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.tsx +0 -439
- package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.tsx +0 -550
- package/src/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.ts +0 -259
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.ts +0 -75
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx +0 -266
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts +0 -82
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelFooter.tsx +0 -112
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelHeader.tsx +0 -178
- package/src/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.tsx +0 -203
- package/src/react-ui/blocks/Terminal/panel/TerminalSessionControl.tsx +0 -252
- package/src/react-ui/blocks/Terminal/panel/TerminalSessionTabs.tsx +0 -334
- package/src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.tsx +0 -261
- package/src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx +0 -248
- package/src/react-ui/blocks/Terminal/panel/index.ts +0 -72
- package/src/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.css +0 -59
- package/src/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.css +0 -59
- package/src/react-ui/blocks/Terminal/parsing/BadgeFormatter.ts +0 -180
- package/src/react-ui/blocks/Terminal/parsing/HttpLogParser.ts +0 -248
- package/src/react-ui/blocks/Terminal/parsing/LogParser.types.ts +0 -283
- package/src/react-ui/blocks/Terminal/parsing/LogParserService.ts +0 -686
- package/src/react-ui/blocks/Terminal/parsing/MultilineAggregator.ts +0 -466
- package/src/react-ui/blocks/Terminal/parsing/PersistentLogBuffer.ts +0 -343
- package/src/react-ui/blocks/Terminal/parsing/SyntaxHighlighter.ts +0 -167
- package/src/react-ui/blocks/Terminal/parsing/TableParser.ts +0 -348
- package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiColorMapper.ts +0 -251
- package/src/react-ui/blocks/Terminal/parsing/ansi/AnsiParser.ts +0 -390
- package/src/react-ui/blocks/Terminal/parsing/ansi/ansi.constants.ts +0 -320
- package/src/react-ui/blocks/Terminal/parsing/ansi/index.ts +0 -20
- package/src/react-ui/blocks/Terminal/parsing/index.ts +0 -69
- package/src/react-ui/blocks/Terminal/parsing/levels/LogLevel.types.ts +0 -68
- package/src/react-ui/blocks/Terminal/parsing/levels/LogLevelDetector.ts +0 -436
- package/src/react-ui/blocks/Terminal/parsing/levels/index.ts +0 -14
- package/src/react-ui/blocks/index.ts +0 -11
- package/src/react-ui/components/MorphingPopover/MorphingPopover.types.ts +0 -49
- package/src/react-ui/components/MorphingPopover/index.tsx +0 -186
- package/src/react-ui/components/MorphingPopover/morphing-popover.module.css +0 -153
- package/src/react-ui/components/index.ts +0 -9
- package/src/react-ui/hooks/Animation/UseAutoHeight.tsx +0 -123
- package/src/react-ui/hooks/DOM/UseIsInView.tsx +0 -44
- package/src/react-ui/hooks/Formatting/UseListFormat.ts +0 -134
- package/src/react-ui/hooks/State/UseControlledState.tsx +0 -57
- package/src/react-ui/hooks/State/UseDataState.tsx +0 -76
- package/src/react-ui/hooks/index.ts +0 -20
- package/src/react-ui/icons/index.ts +0 -12
- package/src/react-ui/icons/lucide-animated/activity.tsx +0 -109
- package/src/react-ui/icons/lucide-animated/arrow-down-to-line.tsx +0 -51
- package/src/react-ui/icons/lucide-animated/arrow-up.tsx +0 -50
- package/src/react-ui/icons/lucide-animated/bell-electric.tsx +0 -124
- package/src/react-ui/icons/lucide-animated/bell.tsx +0 -93
- package/src/react-ui/icons/lucide-animated/bot.tsx +0 -122
- package/src/react-ui/icons/lucide-animated/box.tsx +0 -117
- package/src/react-ui/icons/lucide-animated/check.tsx +0 -21
- package/src/react-ui/icons/lucide-animated/circle-check.tsx +0 -107
- package/src/react-ui/icons/lucide-animated/delete.tsx +0 -133
- package/src/react-ui/icons/lucide-animated/download.tsx +0 -99
- package/src/react-ui/icons/lucide-animated/edit-2.tsx +0 -21
- package/src/react-ui/icons/lucide-animated/globe.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/home.tsx +0 -103
- package/src/react-ui/icons/lucide-animated/index.ts +0 -38
- package/src/react-ui/icons/lucide-animated/layers.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/layout-panel-top.tsx +0 -143
- package/src/react-ui/icons/lucide-animated/list.tsx +0 -54
- package/src/react-ui/icons/lucide-animated/package.tsx +0 -24
- package/src/react-ui/icons/lucide-animated/palette.tsx +0 -25
- package/src/react-ui/icons/lucide-animated/plus.tsx +0 -92
- package/src/react-ui/icons/lucide-animated/refresh-cw.tsx +0 -24
- package/src/react-ui/icons/lucide-animated/rocket.tsx +0 -24
- package/src/react-ui/icons/lucide-animated/save.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/search.tsx +0 -94
- package/src/react-ui/icons/lucide-animated/settings.tsx +0 -92
- package/src/react-ui/icons/lucide-animated/terminal.tsx +0 -46
- package/src/react-ui/icons/lucide-animated/trash-2.tsx +0 -25
- package/src/react-ui/icons/lucide-animated/trending-down.tsx +0 -151
- package/src/react-ui/icons/lucide-animated/trending-up.tsx +0 -150
- package/src/react-ui/icons/lucide-animated/type.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/upload.tsx +0 -23
- package/src/react-ui/icons/lucide-animated/x.tsx +0 -102
- package/src/react-ui/index.ts +0 -30
- package/src/react-ui/lib/get-strict-context.tsx +0 -56
- package/src/react-ui/lib/icon-wrapper.tsx +0 -70
- package/src/react-ui/lib/index.ts +0 -9
- package/src/react-ui/lib/utils.ts +0 -24
- package/src/react-ui/primitives/AutoHeight/index.tsx +0 -74
- package/src/react-ui/primitives/CountingNumber/index.tsx +0 -147
- package/src/react-ui/primitives/Highlight/Highlight.types.ts +0 -136
- package/src/react-ui/primitives/Highlight/index.tsx +0 -577
- package/src/react-ui/primitives/Slot/index.tsx +0 -128
- package/src/react-ui/primitives/index.ts +0 -16
- package/src/react-ui/primitives/waapi/Gooey/Gooey.types.ts +0 -141
- package/src/react-ui/primitives/waapi/Gooey/GooeyCanvas.tsx +0 -217
- package/src/react-ui/primitives/waapi/Gooey/GooeyFilter.tsx +0 -77
- package/src/react-ui/primitives/waapi/Gooey/MorphPath.tsx +0 -58
- package/src/react-ui/primitives/waapi/Gooey/gooey-utils.ts +0 -253
- package/src/react-ui/primitives/waapi/Gooey/index.ts +0 -50
- package/src/react-ui/primitives/waapi/Gooey/useMorphPath.ts +0 -48
- package/src/react-ui/primitives/waapi/Morph/Morph.types.ts +0 -106
- package/src/react-ui/primitives/waapi/Morph/MorphContext.tsx +0 -21
- package/src/react-ui/primitives/waapi/Morph/index.tsx +0 -56
- package/src/react-ui/primitives/waapi/Morph/techniques/index.ts +0 -12
- package/src/react-ui/primitives/waapi/Morph/techniques/useCSSGridMorph.ts +0 -89
- package/src/react-ui/primitives/waapi/Morph/techniques/useFLIPClipPath.ts +0 -176
- package/src/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.ts +0 -87
- package/src/react-ui/primitives/waapi/Morph/useMorph.ts +0 -101
- package/src/react-ui/primitives/waapi/Reorder/Reorder.types.ts +0 -177
- package/src/react-ui/primitives/waapi/Reorder/index.tsx +0 -260
- package/src/react-ui/primitives/waapi/Reorder/useReorder.ts +0 -47
- package/src/react-ui/primitives/waapi/Reorder/useReorderPresence.ts +0 -209
- package/src/react-ui/primitives/waapi/Reorder/utils/separatorCoordination.ts +0 -104
- package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.styles.ts +0 -14
- package/src/react-ui/primitives/waapi/SlidingNumber/SlidingNumber.types.ts +0 -84
- package/src/react-ui/primitives/waapi/SlidingNumber/index.tsx +0 -474
- package/src/react-ui/primitives/waapi/SlidingText/SlidingText.styles.ts +0 -32
- package/src/react-ui/primitives/waapi/SlidingText/SlidingText.types.ts +0 -69
- package/src/react-ui/primitives/waapi/SlidingText/index.tsx +0 -140
- package/src/react-ui/primitives/waapi/core/animationConstants.ts +0 -215
- package/src/react-ui/primitives/waapi/core/index.ts +0 -53
- package/src/react-ui/primitives/waapi/core/types.ts +0 -200
- package/src/react-ui/primitives/waapi/core/useAnimationOrchestrator.ts +0 -430
- package/src/react-ui/primitives/waapi/core/useElementRegistry.ts +0 -81
- package/src/react-ui/primitives/waapi/core/useFLIPAnimation.ts +0 -138
- package/src/react-ui/primitives/waapi/core/usePositionCapture.ts +0 -106
- package/src/react-ui/primitives/waapi/index.ts +0 -139
- package/src/react-ui/styles/animations.css +0 -369
- package/src/react-ui/ui/Accordion/Accordion.styles.ts +0 -72
- package/src/react-ui/ui/Accordion/Accordion.types.ts +0 -199
- package/src/react-ui/ui/Accordion/index.tsx +0 -362
- package/src/react-ui/ui/AlertDialog/AlertDialog.styles.ts +0 -38
- package/src/react-ui/ui/AlertDialog/AlertDialog.types.ts +0 -296
- package/src/react-ui/ui/AlertDialog/index.tsx +0 -540
- package/src/react-ui/ui/Badge/Badge.styles.ts +0 -43
- package/src/react-ui/ui/Badge/Badge.types.ts +0 -26
- package/src/react-ui/ui/Badge/index.tsx +0 -34
- package/src/react-ui/ui/Button/Button.styles.ts +0 -57
- package/src/react-ui/ui/Button/Button.types.ts +0 -63
- package/src/react-ui/ui/Button/index.tsx +0 -155
- package/src/react-ui/ui/Card/Card.styles.ts +0 -32
- package/src/react-ui/ui/Card/Card.types.ts +0 -39
- package/src/react-ui/ui/Card/index.tsx +0 -130
- package/src/react-ui/ui/Checkbox/Checkbox.styles.ts +0 -40
- package/src/react-ui/ui/Checkbox/Checkbox.types.ts +0 -98
- package/src/react-ui/ui/Checkbox/index.tsx +0 -233
- package/src/react-ui/ui/Combobox/Combobox.styles.ts +0 -34
- package/src/react-ui/ui/Combobox/Combobox.types.ts +0 -89
- package/src/react-ui/ui/Combobox/index.tsx +0 -331
- package/src/react-ui/ui/CornerBracket/CornerBracket.styles.ts +0 -38
- package/src/react-ui/ui/CornerBracket/CornerBracket.types.ts +0 -15
- package/src/react-ui/ui/CornerBracket/index.tsx +0 -49
- package/src/react-ui/ui/DataCard/DataCard.styles.ts +0 -94
- package/src/react-ui/ui/DataCard/DataCard.types.ts +0 -125
- package/src/react-ui/ui/DataCard/index.tsx +0 -340
- package/src/react-ui/ui/Dialog/Dialog.styles.ts +0 -59
- package/src/react-ui/ui/Dialog/Dialog.types.ts +0 -284
- package/src/react-ui/ui/Dialog/index.tsx +0 -452
- package/src/react-ui/ui/DropdownMenu/DropdownMenu.styles.ts +0 -35
- package/src/react-ui/ui/DropdownMenu/DropdownMenu.types.ts +0 -81
- package/src/react-ui/ui/DropdownMenu/index.tsx +0 -300
- package/src/react-ui/ui/DynamicToggle/DynamicToggle.css +0 -376
- package/src/react-ui/ui/DynamicToggle/DynamicToggle.styles.ts +0 -85
- package/src/react-ui/ui/DynamicToggle/DynamicToggle.types.ts +0 -180
- package/src/react-ui/ui/DynamicToggle/index.tsx +0 -316
- package/src/react-ui/ui/DynamicToggle/prototype-v7-ios.html +0 -413
- package/src/react-ui/ui/DynamicToggle/prototype-v7.html +0 -615
- package/src/react-ui/ui/DynamicToggle/prototype-v8-gooey-safari.html +0 -560
- package/src/react-ui/ui/DynamicToggle/prototype-v8b-react-structure.html +0 -227
- package/src/react-ui/ui/DynamicToggle/prototype.html +0 -419
- package/src/react-ui/ui/Field/Field.styles.ts +0 -47
- package/src/react-ui/ui/Field/Field.types.ts +0 -60
- package/src/react-ui/ui/Field/index.tsx +0 -254
- package/src/react-ui/ui/Input/Input.styles.ts +0 -11
- package/src/react-ui/ui/Input/Input.types.ts +0 -10
- package/src/react-ui/ui/Input/index.tsx +0 -32
- package/src/react-ui/ui/InputGroup/InputGroup.styles.ts +0 -53
- package/src/react-ui/ui/InputGroup/InputGroup.types.ts +0 -44
- package/src/react-ui/ui/InputGroup/index.tsx +0 -149
- package/src/react-ui/ui/Label/Label.styles.ts +0 -10
- package/src/react-ui/ui/Label/Label.types.ts +0 -9
- package/src/react-ui/ui/Label/index.tsx +0 -27
- package/src/react-ui/ui/Menu/Menu.styles.ts +0 -71
- package/src/react-ui/ui/Menu/Menu.types.ts +0 -425
- package/src/react-ui/ui/Menu/index.tsx +0 -900
- package/src/react-ui/ui/Popover/Popover.styles.ts +0 -55
- package/src/react-ui/ui/Popover/Popover.types.ts +0 -261
- package/src/react-ui/ui/Popover/index.tsx +0 -422
- package/src/react-ui/ui/Progress/Progress.styles.ts +0 -36
- package/src/react-ui/ui/Progress/Progress.types.ts +0 -162
- package/src/react-ui/ui/Progress/index.tsx +0 -254
- package/src/react-ui/ui/Select/Select.styles.ts +0 -30
- package/src/react-ui/ui/Select/Select.types.ts +0 -51
- package/src/react-ui/ui/Select/index.tsx +0 -225
- package/src/react-ui/ui/Separator/Separator.styles.ts +0 -10
- package/src/react-ui/ui/Separator/Separator.types.ts +0 -10
- package/src/react-ui/ui/Separator/index.tsx +0 -37
- package/src/react-ui/ui/Switch/Switch.styles.ts +0 -50
- package/src/react-ui/ui/Switch/Switch.types.ts +0 -155
- package/src/react-ui/ui/Switch/index.tsx +0 -253
- package/src/react-ui/ui/Tabs/Tabs.css +0 -39
- package/src/react-ui/ui/Tabs/Tabs.styles.ts +0 -148
- package/src/react-ui/ui/Tabs/Tabs.types.ts +0 -255
- package/src/react-ui/ui/Tabs/index.tsx +0 -529
- package/src/react-ui/ui/TextFlow/TextFlow.styles.ts +0 -36
- package/src/react-ui/ui/TextFlow/TextFlow.types.ts +0 -118
- package/src/react-ui/ui/TextFlow/index.tsx +0 -276
- package/src/react-ui/ui/Textarea/Textarea.styles.ts +0 -10
- package/src/react-ui/ui/Textarea/Textarea.types.ts +0 -9
- package/src/react-ui/ui/Textarea/index.tsx +0 -27
- package/src/react-ui/ui/Tooltip/Tooltip.styles.ts +0 -43
- package/src/react-ui/ui/Tooltip/Tooltip.types.ts +0 -253
- package/src/react-ui/ui/Tooltip/index.tsx +0 -394
- package/src/react-ui/ui/index.ts +0 -41
- package/src/types/css-modules.d.ts +0 -18
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ANSI parsing module barrel export.
|
|
3
|
-
*
|
|
4
|
-
* Exports ANSI escape code parsing utilities for terminal log
|
|
5
|
-
* colorization with Synthwave theme integration.
|
|
6
|
-
*
|
|
7
|
-
* @module components/devenv/terminal/parsing/ansi
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export { AnsiParser } from './AnsiParser';
|
|
11
|
-
export { AnsiColorMapper } from './AnsiColorMapper';
|
|
12
|
-
export {
|
|
13
|
-
ANSI_INTRODUCERS,
|
|
14
|
-
SGR_CODES,
|
|
15
|
-
ANSI_PATTERNS,
|
|
16
|
-
ANSI_COLOR_MAP,
|
|
17
|
-
ANSI_MODIFIERS,
|
|
18
|
-
SYNTHWAVE_ANSI_COLORS,
|
|
19
|
-
LOG_LEVEL_ANSI_COLORS,
|
|
20
|
-
} from './ansi.constants';
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log parsing module barrel export.
|
|
3
|
-
*
|
|
4
|
-
* Exports log parsing utilities for terminal log processing.
|
|
5
|
-
*
|
|
6
|
-
* @module components/devenv/terminal/parsing
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export { LogParserService } from './LogParserService';
|
|
10
|
-
export { SyntaxHighlighter } from './SyntaxHighlighter';
|
|
11
|
-
export { BadgeFormatter } from './BadgeFormatter';
|
|
12
|
-
export { MultilineAggregator, type IMultilineState } from './MultilineAggregator';
|
|
13
|
-
|
|
14
|
-
// New v6 parsers
|
|
15
|
-
export { PersistentLogBuffer, createPersistentLogBuffer } from './PersistentLogBuffer';
|
|
16
|
-
export type {
|
|
17
|
-
IPersistentLogBufferConfig,
|
|
18
|
-
IBufferStats,
|
|
19
|
-
ISearchOptions,
|
|
20
|
-
} from './PersistentLogBuffer';
|
|
21
|
-
|
|
22
|
-
export { HttpLogParser } from './HttpLogParser';
|
|
23
|
-
export type {
|
|
24
|
-
THttpMethod,
|
|
25
|
-
IHttpParsedData,
|
|
26
|
-
} from './HttpLogParser';
|
|
27
|
-
|
|
28
|
-
export { TableParser, createTableParser, TABLE_CHARS } from './TableParser';
|
|
29
|
-
export type {
|
|
30
|
-
TTableRowType,
|
|
31
|
-
ITableRow,
|
|
32
|
-
ITableData,
|
|
33
|
-
} from './TableParser';
|
|
34
|
-
|
|
35
|
-
export {
|
|
36
|
-
ANSI_INTRODUCERS,
|
|
37
|
-
SGR_CODES,
|
|
38
|
-
ANSI_PATTERNS,
|
|
39
|
-
ANSI_COLOR_MAP,
|
|
40
|
-
ANSI_MODIFIERS,
|
|
41
|
-
SYNTHWAVE_ANSI_COLORS,
|
|
42
|
-
LOG_LEVEL_ANSI_COLORS,
|
|
43
|
-
} from './ansi/ansi.constants';
|
|
44
|
-
export { AnsiParser } from './ansi/AnsiParser';
|
|
45
|
-
export { AnsiColorMapper } from './ansi/AnsiColorMapper';
|
|
46
|
-
export { LogLevelDetector } from './levels/LogLevelDetector';
|
|
47
|
-
|
|
48
|
-
// Core types
|
|
49
|
-
export type {
|
|
50
|
-
TLogLevel,
|
|
51
|
-
TLogLevelFilter,
|
|
52
|
-
TContentType,
|
|
53
|
-
IParsedLogEntry,
|
|
54
|
-
IParserState,
|
|
55
|
-
IAnsiStyle,
|
|
56
|
-
IAnsiParseResult,
|
|
57
|
-
ILogLevelDetection,
|
|
58
|
-
ILogParserOptions,
|
|
59
|
-
ILogFilterOptions,
|
|
60
|
-
ILogStats,
|
|
61
|
-
TTimestampFormat,
|
|
62
|
-
ILogExportOptions,
|
|
63
|
-
} from './LogParser.types';
|
|
64
|
-
|
|
65
|
-
// Level detector types
|
|
66
|
-
export type {
|
|
67
|
-
ILogLevelPattern,
|
|
68
|
-
ILogLevelDetectorOptions,
|
|
69
|
-
} from './levels/LogLevel.types';
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log level detection types.
|
|
3
|
-
*
|
|
4
|
-
* Provides interfaces for log level pattern matching and detection.
|
|
5
|
-
*
|
|
6
|
-
* @module components/devenv/terminal/parsing/levels/types
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import type { TLogLevel } from '../LogParser.types';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Log level detection result with confidence scoring.
|
|
13
|
-
*
|
|
14
|
-
* Provides the detected level along with metadata about
|
|
15
|
-
* the match for filtering and display purposes.
|
|
16
|
-
*/
|
|
17
|
-
export interface ILogLevelDetection {
|
|
18
|
-
/** Detected log level */
|
|
19
|
-
level: TLogLevel;
|
|
20
|
-
|
|
21
|
-
/** Confidence score (0-1, higher = more certain) */
|
|
22
|
-
confidence: number;
|
|
23
|
-
|
|
24
|
-
/** Matched string that triggered the detection */
|
|
25
|
-
matched: string;
|
|
26
|
-
|
|
27
|
-
/** Position of match in the string (0-indexed) */
|
|
28
|
-
position: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Log level pattern definition.
|
|
33
|
-
*
|
|
34
|
-
* Associates a regex pattern with a log level and optional
|
|
35
|
-
* confidence score for custom pattern matching.
|
|
36
|
-
*/
|
|
37
|
-
export interface ILogLevelPattern {
|
|
38
|
-
/** Regex pattern to match */
|
|
39
|
-
regex: RegExp;
|
|
40
|
-
|
|
41
|
-
/** Log level this pattern indicates */
|
|
42
|
-
level: TLogLevel;
|
|
43
|
-
|
|
44
|
-
/** Base confidence for this pattern (0-1, default: 0.8) */
|
|
45
|
-
confidence?: number;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Log level detection options.
|
|
50
|
-
*
|
|
51
|
-
* Configuration options for customizing log level detection.
|
|
52
|
-
*/
|
|
53
|
-
export interface ILogLevelDetectorOptions {
|
|
54
|
-
/** Custom patterns to add to default patterns */
|
|
55
|
-
custom_patterns?: ILogLevelPattern[];
|
|
56
|
-
|
|
57
|
-
/** Whether to use emoji detection (default: true) */
|
|
58
|
-
enable_emoji?: boolean;
|
|
59
|
-
|
|
60
|
-
/** Whether to use bracket detection (default: true) */
|
|
61
|
-
enable_brackets?: boolean;
|
|
62
|
-
|
|
63
|
-
/** Whether to use word detection (default: true) */
|
|
64
|
-
enable_words?: boolean;
|
|
65
|
-
|
|
66
|
-
/** Minimum confidence threshold (default: 0.5) */
|
|
67
|
-
min_confidence?: number;
|
|
68
|
-
}
|
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log level detector using regex pattern matching.
|
|
3
|
-
*
|
|
4
|
-
* Detects log levels from text using multiple strategies:
|
|
5
|
-
* - Emoji indicators: ℹ️ INFO, ⚠️ WARN, ❌ ERROR
|
|
6
|
-
* - Bracketed formats: [INFO], (WARN), <ERROR>
|
|
7
|
-
* - Uppercase keywords: INFO, WARN, ERROR
|
|
8
|
-
* - Framework-specific: pino, winston, bunyan
|
|
9
|
-
*
|
|
10
|
-
* @module components/devenv/terminal/parsing/levels/detector
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import type { TLogLevel } from '../LogParser.types';
|
|
14
|
-
import type { ILogLevelDetection, ILogLevelDetectorOptions, ILogLevelPattern } from './LogLevel.types';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Default log level patterns.
|
|
18
|
-
*
|
|
19
|
-
* Predefined patterns for common log formats and frameworks.
|
|
20
|
-
* Includes support for:
|
|
21
|
-
* - better-logger format (ℹ️ INFO)
|
|
22
|
-
* - Supervisord format (INFO, CRIT)
|
|
23
|
-
* - Next.js symbols (▲ ✓)
|
|
24
|
-
* - ContainerLogs prefix
|
|
25
|
-
*/
|
|
26
|
-
const DEFAULT_PATTERNS: Record<TLogLevel, RegExp[]> = {
|
|
27
|
-
info: [
|
|
28
|
-
// Emoji + text (better-logger)
|
|
29
|
-
/ℹ️\s+INFO/i,
|
|
30
|
-
// Emoji only
|
|
31
|
-
/ℹ️|🔵|💙|📖|📝/i,
|
|
32
|
-
// Next.js symbols
|
|
33
|
-
/▲|✓|ℹ/,
|
|
34
|
-
// Bracketed
|
|
35
|
-
/\[INFO\]|\(INFO\)|<INFO>|{INFO}/i,
|
|
36
|
-
// Uppercase word
|
|
37
|
-
/\bINFO(?:RMATION)?\b/i,
|
|
38
|
-
// Framework-specific
|
|
39
|
-
/\binfo\b/i,
|
|
40
|
-
// With colon
|
|
41
|
-
/^\s*(?:INFO|Information):\s*/i,
|
|
42
|
-
// ContainerLogs prefix (treat as info by default)
|
|
43
|
-
/\[ContainerLogs\]/i,
|
|
44
|
-
// Next.js "Ready in", "Starting", "Local:"
|
|
45
|
-
/Ready in|Starting|Local:/i,
|
|
46
|
-
],
|
|
47
|
-
warn: [
|
|
48
|
-
// Emoji + text (better-logger)
|
|
49
|
-
/⚠️\s+WARN/i,
|
|
50
|
-
// Emoji only
|
|
51
|
-
/⚠️|🟡|⚡|🔶/i,
|
|
52
|
-
// Next.js symbols
|
|
53
|
-
/⚡|⚠/,
|
|
54
|
-
// Bracketed
|
|
55
|
-
/\[WARN(?:ING)?\]|\(WARN(?:ING)?\)|<WARN(?:ING)?>|{WARN(?:ING)?}/i,
|
|
56
|
-
// Uppercase word
|
|
57
|
-
/\bWARN(?:ING)?\b/i,
|
|
58
|
-
// Framework-specific
|
|
59
|
-
/\bwarn\b/i,
|
|
60
|
-
// With colon
|
|
61
|
-
/^\s*(?:WARN|WARNING):\s*/i,
|
|
62
|
-
// Common warning messages
|
|
63
|
-
/deprecated|warning/i,
|
|
64
|
-
],
|
|
65
|
-
error: [
|
|
66
|
-
// Emoji + text (better-logger)
|
|
67
|
-
/❌\s+ERROR/i,
|
|
68
|
-
// Emoji only
|
|
69
|
-
/❌|🔴|❗|🚨|⛔|💀/i,
|
|
70
|
-
// NextJS symbols
|
|
71
|
-
/✗|✖/,
|
|
72
|
-
// Bracketed
|
|
73
|
-
/\[ERROR\]|\(ERROR\)|<ERROR>|{ERROR}/i,
|
|
74
|
-
// Uppercase word
|
|
75
|
-
/\bERROR\b/i,
|
|
76
|
-
// Framework-specific
|
|
77
|
-
/\berr(?:or)?\b/i,
|
|
78
|
-
// With colon
|
|
79
|
-
/^\s*ERROR:\s*/i,
|
|
80
|
-
// Common error patterns
|
|
81
|
-
/failed|failure|exception|panic/i,
|
|
82
|
-
],
|
|
83
|
-
debug: [
|
|
84
|
-
// Emoji + text (better-logger)
|
|
85
|
-
/🐛\s+DEBUG/i,
|
|
86
|
-
// Emoji only
|
|
87
|
-
/🐛|🔍|🔬|⚙️/i,
|
|
88
|
-
// Bracketed
|
|
89
|
-
/\[DEBUG\]|\(DEBUG\)|<DEBUG>|{DEBUG}/i,
|
|
90
|
-
// Uppercase word
|
|
91
|
-
/\bDEBUG\b/i,
|
|
92
|
-
// Framework-specific
|
|
93
|
-
/\bdebug\b/i,
|
|
94
|
-
// With colon
|
|
95
|
-
/^\s*DEBUG:\s*/i,
|
|
96
|
-
],
|
|
97
|
-
trace: [
|
|
98
|
-
// Bracketed
|
|
99
|
-
/\[TRACE\]|\(TRACE\)|<TRACE>|{TRACE}/i,
|
|
100
|
-
// Uppercase word
|
|
101
|
-
/\bTRACE\b/i,
|
|
102
|
-
// Framework-specific
|
|
103
|
-
/\btrace\b/i,
|
|
104
|
-
// With colon
|
|
105
|
-
/^\s*TRACE:\s*/i,
|
|
106
|
-
],
|
|
107
|
-
fatal: [
|
|
108
|
-
// Emoji + text (better-logger)
|
|
109
|
-
/🚨\s+CRITICAL/i,
|
|
110
|
-
// Emoji only
|
|
111
|
-
/💀|🔥|☠️|⚰️|🚨/i,
|
|
112
|
-
// Bracketed
|
|
113
|
-
/\[FATAL\]|\(FATAL\)|<FATAL>|{FATAL}/i,
|
|
114
|
-
/\[CRITICAL\]|\(CRITICAL\)|<CRITICAL>|{CRITICAL}/i,
|
|
115
|
-
// Uppercase word
|
|
116
|
-
/\bFATAL\b/i,
|
|
117
|
-
/\bCRITICAL\b/i,
|
|
118
|
-
// Supervisord CRIT
|
|
119
|
-
/\bCRIT\b/i,
|
|
120
|
-
// With colon
|
|
121
|
-
/^\s*(?:FATAL|CRITICAL):\s*/i,
|
|
122
|
-
// Fatal messages
|
|
123
|
-
/fatal|critical|emergency/i,
|
|
124
|
-
],
|
|
125
|
-
unknown: [],
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Log level detector class.
|
|
130
|
-
*
|
|
131
|
-
* Detects log levels from text using pattern matching with
|
|
132
|
-
* confidence scoring. Supports custom patterns and configurable
|
|
133
|
-
* detection strategies.
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* ```ts
|
|
137
|
-
* const detector = new LogLevelDetector();
|
|
138
|
-
* const result = detector.detect('21:35:28.944 ℹ️ INFO ⦗COMPONENT⦘ Message');
|
|
139
|
-
* // { level: 'info', confidence: 0.9, matched: 'INFO', position: 12 }
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
export class LogLevelDetector {
|
|
143
|
-
/** Combined patterns from defaults and custom additions */
|
|
144
|
-
private patterns: Map<TLogLevel, ILogLevelPattern[]>;
|
|
145
|
-
|
|
146
|
-
/** Detection options */
|
|
147
|
-
private options: Required<ILogLevelDetectorOptions>;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Create a new log level detector.
|
|
151
|
-
*
|
|
152
|
-
* @param options - Detection options
|
|
153
|
-
*/
|
|
154
|
-
constructor(options: ILogLevelDetectorOptions = {}) {
|
|
155
|
-
this.options = {
|
|
156
|
-
custom_patterns: [],
|
|
157
|
-
enable_emoji: true,
|
|
158
|
-
enable_brackets: true,
|
|
159
|
-
enable_words: true,
|
|
160
|
-
min_confidence: 0.5,
|
|
161
|
-
...options,
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
this.patterns = new Map();
|
|
165
|
-
|
|
166
|
-
// Initialize with default patterns
|
|
167
|
-
for (const [level, regexes] of Object.entries(DEFAULT_PATTERNS)) {
|
|
168
|
-
const patterns: ILogLevelPattern[] = regexes.map((regex) => ({
|
|
169
|
-
regex,
|
|
170
|
-
level: level as TLogLevel,
|
|
171
|
-
confidence: 0.8,
|
|
172
|
-
}));
|
|
173
|
-
this.patterns.set(level as TLogLevel, patterns);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// Add custom patterns
|
|
177
|
-
for (const pattern of this.options.custom_patterns ?? []) {
|
|
178
|
-
this.addPattern(pattern);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Detect log level from text string.
|
|
184
|
-
*
|
|
185
|
-
* Scans text for log level patterns and returns the detection
|
|
186
|
-
* with highest confidence score.
|
|
187
|
-
*
|
|
188
|
-
* @param text - Text to analyze
|
|
189
|
-
* @returns Detection result or level 'unknown' with low confidence
|
|
190
|
-
*
|
|
191
|
-
* @example
|
|
192
|
-
* ```ts
|
|
193
|
-
* const result = detector.detect('[INFO] Server started');
|
|
194
|
-
* // { level: 'info', confidence: 0.9, matched: '[INFO]', position: 0 }
|
|
195
|
-
* ```
|
|
196
|
-
*/
|
|
197
|
-
detect(text: string): ILogLevelDetection {
|
|
198
|
-
let bestMatch: ILogLevelDetection = {
|
|
199
|
-
level: 'unknown',
|
|
200
|
-
confidence: 0,
|
|
201
|
-
matched: '',
|
|
202
|
-
position: 0,
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
// Check each level's patterns
|
|
206
|
-
for (const [level, patterns] of this.patterns.entries()) {
|
|
207
|
-
for (const pattern of patterns) {
|
|
208
|
-
const match = text.match(pattern.regex);
|
|
209
|
-
|
|
210
|
-
if (match) {
|
|
211
|
-
const position = match.index ?? 0;
|
|
212
|
-
const matched = match[0] ?? match[1] ?? '';
|
|
213
|
-
|
|
214
|
-
// Boost confidence for exact word matches
|
|
215
|
-
let confidence = pattern.confidence ?? 0.8;
|
|
216
|
-
if (matched.length <= 5 && matched === matched.toUpperCase()) {
|
|
217
|
-
confidence = Math.min(1, confidence + 0.1);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// Prefer earlier matches (near beginning of line)
|
|
221
|
-
const positionBoost = Math.max(0, 1 - position / 100);
|
|
222
|
-
confidence *= positionBoost;
|
|
223
|
-
|
|
224
|
-
if (confidence > bestMatch.confidence) {
|
|
225
|
-
bestMatch = {
|
|
226
|
-
level,
|
|
227
|
-
confidence,
|
|
228
|
-
matched,
|
|
229
|
-
position,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
return bestMatch;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Detect log level with default fallback.
|
|
241
|
-
*
|
|
242
|
-
* Returns 'info' as default level instead of 'unknown' for
|
|
243
|
-
* logs without a clear level indicator.
|
|
244
|
-
*
|
|
245
|
-
* @param text - Text to analyze
|
|
246
|
-
* @returns Detected level (defaults to 'info' if unknown)
|
|
247
|
-
*/
|
|
248
|
-
detectOrDefault(text: string): TLogLevel {
|
|
249
|
-
const result = this.detect(text);
|
|
250
|
-
return result.confidence >= this.options.min_confidence ? result.level : 'info';
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* Add a custom pattern for a log level.
|
|
255
|
-
*
|
|
256
|
-
* @param pattern - Pattern to add
|
|
257
|
-
*
|
|
258
|
-
* @example
|
|
259
|
-
* ```ts
|
|
260
|
-
* detector.addPattern({
|
|
261
|
-
* regex: /\[CUSTOM\]/i,
|
|
262
|
-
* level: 'info',
|
|
263
|
-
* confidence: 0.9
|
|
264
|
-
* });
|
|
265
|
-
* ```
|
|
266
|
-
*/
|
|
267
|
-
addPattern(pattern: ILogLevelPattern): void {
|
|
268
|
-
const existing = this.patterns.get(pattern.level) ?? [];
|
|
269
|
-
existing.push(pattern);
|
|
270
|
-
this.patterns.set(pattern.level, existing);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Remove pattern for a level.
|
|
275
|
-
*
|
|
276
|
-
* Removes all patterns matching the given regex for the specified
|
|
277
|
-
* log level.
|
|
278
|
-
*
|
|
279
|
-
* @param level - Log level
|
|
280
|
-
* @param regex - Regex pattern to remove
|
|
281
|
-
* @returns true if pattern was found and removed
|
|
282
|
-
*/
|
|
283
|
-
removePattern(level: TLogLevel, regex: RegExp): boolean {
|
|
284
|
-
const existing = this.patterns.get(level);
|
|
285
|
-
if (!existing) return false;
|
|
286
|
-
|
|
287
|
-
const filtered = existing.filter((p) => p.regex !== regex);
|
|
288
|
-
|
|
289
|
-
if (filtered.length < existing.length) {
|
|
290
|
-
this.patterns.set(level, filtered);
|
|
291
|
-
return true;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
return false;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Get all patterns for a log level.
|
|
299
|
-
*
|
|
300
|
-
* @param level - Log level
|
|
301
|
-
* @returns Array of patterns for the level
|
|
302
|
-
*/
|
|
303
|
-
getPatterns(level: TLogLevel): ILogLevelPattern[] {
|
|
304
|
-
return this.patterns.get(level) ?? [];
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Clear all custom patterns.
|
|
309
|
-
*
|
|
310
|
-
* Removes all custom patterns and resets to defaults.
|
|
311
|
-
*/
|
|
312
|
-
clearCustomPatterns(): void {
|
|
313
|
-
// Reinitialize with defaults only
|
|
314
|
-
this.patterns.clear();
|
|
315
|
-
|
|
316
|
-
for (const [level, regexes] of Object.entries(DEFAULT_PATTERNS)) {
|
|
317
|
-
const patterns: ILogLevelPattern[] = regexes.map((regex) => ({
|
|
318
|
-
regex,
|
|
319
|
-
level: level as TLogLevel,
|
|
320
|
-
confidence: 0.8,
|
|
321
|
-
}));
|
|
322
|
-
this.patterns.set(level as TLogLevel, patterns);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Detect log level from multiple lines and return consensus.
|
|
328
|
-
*
|
|
329
|
-
* Useful for determining the overall level of a multiline
|
|
330
|
-
* log entry or buffer.
|
|
331
|
-
*
|
|
332
|
-
* @param lines - Array of text lines
|
|
333
|
-
* @returns Consensus level with aggregated confidence
|
|
334
|
-
*/
|
|
335
|
-
detectFromLines(lines: string[]): ILogLevelDetection {
|
|
336
|
-
if (lines.length === 0) {
|
|
337
|
-
return {
|
|
338
|
-
level: 'unknown',
|
|
339
|
-
confidence: 0,
|
|
340
|
-
matched: '',
|
|
341
|
-
position: 0,
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
const votes: Map<TLogLevel, number> = new Map();
|
|
346
|
-
let bestMatch: ILogLevelDetection = {
|
|
347
|
-
level: 'unknown',
|
|
348
|
-
confidence: 0,
|
|
349
|
-
matched: '',
|
|
350
|
-
position: 0,
|
|
351
|
-
};
|
|
352
|
-
|
|
353
|
-
for (const line of lines) {
|
|
354
|
-
const result = this.detect(line);
|
|
355
|
-
if (result.confidence >= this.options.min_confidence) {
|
|
356
|
-
votes.set(result.level, (votes.get(result.level) ?? 0) + 1);
|
|
357
|
-
|
|
358
|
-
if (result.confidence > bestMatch.confidence) {
|
|
359
|
-
bestMatch = result;
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
// Return most voted level, or best match if tie
|
|
365
|
-
if (votes.size === 0) {
|
|
366
|
-
return {
|
|
367
|
-
level: 'info',
|
|
368
|
-
confidence: 0.3,
|
|
369
|
-
matched: '',
|
|
370
|
-
position: 0,
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
// Find most voted
|
|
375
|
-
let maxVotes = 0;
|
|
376
|
-
let consensusLevel: TLogLevel = 'info';
|
|
377
|
-
|
|
378
|
-
for (const [level, count] of votes.entries()) {
|
|
379
|
-
if (count > maxVotes) {
|
|
380
|
-
maxVotes = count;
|
|
381
|
-
consensusLevel = level;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
return {
|
|
386
|
-
level: consensusLevel,
|
|
387
|
-
confidence: Math.min(1, bestMatch.confidence + 0.1),
|
|
388
|
-
matched: bestMatch.matched,
|
|
389
|
-
position: bestMatch.position,
|
|
390
|
-
};
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/**
|
|
394
|
-
* Check if text contains a specific log level.
|
|
395
|
-
*
|
|
396
|
-
* @param text - Text to check
|
|
397
|
-
* @param level - Log level to look for
|
|
398
|
-
* @returns true if level is detected with minimum confidence
|
|
399
|
-
*/
|
|
400
|
-
hasLevel(text: string, level: TLogLevel): boolean {
|
|
401
|
-
const result = this.detect(text);
|
|
402
|
-
return result.level === level && result.confidence >= this.options.min_confidence;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/**
|
|
406
|
-
* Get severity score for a log level.
|
|
407
|
-
*
|
|
408
|
-
* Returns numeric severity (0-6) for comparison and filtering.
|
|
409
|
-
*
|
|
410
|
-
* @param level - Log level
|
|
411
|
-
* @returns Severity score (0=trace, 6=fatal)
|
|
412
|
-
*/
|
|
413
|
-
static getSeverity(level: TLogLevel): number {
|
|
414
|
-
const severity: Record<TLogLevel, number> = {
|
|
415
|
-
trace: 0,
|
|
416
|
-
debug: 1,
|
|
417
|
-
info: 2,
|
|
418
|
-
warn: 3,
|
|
419
|
-
error: 4,
|
|
420
|
-
fatal: 5,
|
|
421
|
-
unknown: 2, // Default to info level
|
|
422
|
-
};
|
|
423
|
-
return severity[level] ?? 2;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
/**
|
|
427
|
-
* Compare two log levels by severity.
|
|
428
|
-
*
|
|
429
|
-
* @param level1 - First log level
|
|
430
|
-
* @param level2 - Second log level
|
|
431
|
-
* @returns Negative if level1 < level2, positive if level1 > level2, 0 if equal
|
|
432
|
-
*/
|
|
433
|
-
static compareSeverity(level1: TLogLevel, level2: TLogLevel): number {
|
|
434
|
-
return LogLevelDetector.getSeverity(level1) - LogLevelDetector.getSeverity(level2);
|
|
435
|
-
}
|
|
436
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Log level detection module barrel export.
|
|
3
|
-
*
|
|
4
|
-
* Exports log level pattern matching utilities.
|
|
5
|
-
*
|
|
6
|
-
* @module components/devenv/terminal/parsing/levels
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export { LogLevelDetector } from './LogLevelDetector';
|
|
10
|
-
export type {
|
|
11
|
-
ILogLevelDetection,
|
|
12
|
-
ILogLevelPattern,
|
|
13
|
-
ILogLevelDetectorOptions,
|
|
14
|
-
} from './LogLevel.types';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Blocks barrel export.
|
|
3
|
-
*
|
|
4
|
-
* Blocks are high-level, ready-to-use components with full functionality,
|
|
5
|
-
* similar to Shadcn blocks. They compose primitives, UI components, and hooks
|
|
6
|
-
* into complete features.
|
|
7
|
-
*
|
|
8
|
-
* @module @mks2508/mks-ui/react/blocks
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export * from './Terminal';
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Props for the MorphingPopover component.
|
|
3
|
-
*
|
|
4
|
-
* @interface IMorphingPopoverProps
|
|
5
|
-
*/
|
|
6
|
-
interface IMorphingPopoverProps {
|
|
7
|
-
/** Content to display in popover. */
|
|
8
|
-
content: React.ReactNode;
|
|
9
|
-
/** Trigger button text or icon. */
|
|
10
|
-
trigger?: React.ReactNode;
|
|
11
|
-
/** Additional CSS classes for trigger button. */
|
|
12
|
-
triggerClassName?: string;
|
|
13
|
-
/** Additional CSS classes for popover. */
|
|
14
|
-
popoverClassName?: string;
|
|
15
|
-
/** Target dimensions for the expanded popover. */
|
|
16
|
-
targetSize?: { width?: number; height?: number };
|
|
17
|
-
/** Callback when popover opens. */
|
|
18
|
-
onOpen?: () => void;
|
|
19
|
-
/** Callback when popover closes. */
|
|
20
|
-
onClose?: () => void;
|
|
21
|
-
/** Popover HTML ID. */
|
|
22
|
-
popoverId?: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** Extended button props to support the Popover API attributes. */
|
|
26
|
-
interface IMorphingButtonProps
|
|
27
|
-
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
28
|
-
popovertarget?: string;
|
|
29
|
-
popoverTargetAction?: 'toggle' | 'show' | 'hide';
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Props for the MorphingPopoverWithTarget variant.
|
|
34
|
-
*
|
|
35
|
-
* @interface IMorphingPopoverWithTargetProps
|
|
36
|
-
*/
|
|
37
|
-
interface IMorphingPopoverWithTargetProps
|
|
38
|
-
extends Omit<IMorphingPopoverProps, 'popoverId' | 'targetSize'> {
|
|
39
|
-
/** Reference to target element to anchor to. */
|
|
40
|
-
targetRef: React.RefObject<HTMLElement>;
|
|
41
|
-
/** Popover HTML ID. */
|
|
42
|
-
popoverId?: string;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export type {
|
|
46
|
-
IMorphingPopoverProps,
|
|
47
|
-
IMorphingButtonProps,
|
|
48
|
-
IMorphingPopoverWithTargetProps,
|
|
49
|
-
};
|