@burdenoff/microfe-bigconsole 2026.1004.7 → 2026.1004.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -1
  2. package/dist/bigconsole/BigConsoleRoutes.js +35 -31
  3. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  4. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +11 -0
  5. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +1 -0
  6. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +248 -0
  7. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +1 -0
  8. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +23 -0
  9. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +1 -0
  10. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +357 -0
  11. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +1 -0
  12. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +146 -0
  13. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +1 -0
  14. package/dist/bigconsole/hooks/useDataSinkAlerts.js +221 -0
  15. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +1 -0
  16. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +2 -0
  17. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +1 -0
  18. package/dist/bigconsole/pages/DataSinkAlertsPage.js +422 -0
  19. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +1 -0
  20. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -1
  21. package/dist/bigconsole/pages/DataSinkViewPage.js +235 -229
  22. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  23. package/dist/bigconsole/utils/alertRules.d.ts +40 -0
  24. package/dist/bigconsole/utils/alertRules.d.ts.map +1 -0
  25. package/dist/bigconsole/utils/alertRules.js +83 -0
  26. package/dist/bigconsole/utils/alertRules.js.map +1 -0
  27. package/dist/generated/wspace-operations.d.ts +376 -0
  28. package/dist/generated/wspace-operations.d.ts.map +1 -1
  29. package/dist/generated/wspace-operations.js +321 -200
  30. package/dist/generated/wspace-operations.js.map +1 -1
  31. package/dist/generated/wspace-types.d.ts +122 -0
  32. package/dist/generated/wspace-types.d.ts.map +1 -1
  33. package/dist/generated/wspace-types.js +7 -1
  34. package/dist/generated/wspace-types.js.map +1 -1
  35. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSinkAlertsPage.js","names":[],"sources":["../../../src/bigconsole/pages/DataSinkAlertsPage.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { Button, Switch } from '@burdenoff/fe-libs/ui';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { AccessDenied } from '@burdenoff/fe-libs/shared/components';\nimport { ArrowLeft, Bell, Loader2, Plus, RefreshCw, Trash2 } from 'lucide-react';\nimport { BIGCONSOLE_PERMISSIONS } from '../../constants/permissions';\nimport { useBigConsole } from '../context';\nimport { useAppNavigate } from '../contexts';\nimport { Section, SECTION_FOCUS_RING } from '../components/common';\nimport { AlertRuleEditor } from '../components/datasink/AlertRuleEditor';\nimport { AlertExecutionHistory } from '../components/datasink/AlertExecutionHistory';\nimport { useDataSinkAlerts, alertErrorMessage, type AlertRule, type AlertPreview } from '../hooks/useDataSinkAlerts';\nimport {\n alertDraft,\n alertDraftInput,\n validateAlertDraft,\n ALERT_VALIDATION_MESSAGES,\n type AlertDraft,\n} from '../utils/alertRules';\nimport { nativeConfirm } from '../../utils/nativeBridge';\n\ninterface EditingRule {\n draft: AlertDraft;\n original: string;\n version: number;\n selection: number;\n}\ninterface PreviewResult {\n condition: string;\n conditionType: string;\n result: AlertPreview;\n}\n\nexport default function DataSinkAlertsPage() {\n const { dataSinkId = '' } = useParams<{ dataSinkId: string }>();\n const { currentUser, workspaceId } = useBigConsole();\n return (\n <DataSinkAlertsContent\n key={`${currentUser?.id ?? ''}|${workspaceId ?? ''}|${dataSinkId}`}\n dataSinkId={dataSinkId}\n />\n );\n}\n\nfunction DataSinkAlertsContent({ dataSinkId }: { dataSinkId: string }) {\n const { t } = useI18n();\n const navigate = useAppNavigate();\n const { currentUser, workspaceId } = useBigConsole();\n const { hasPermission, isLoading: permissionsLoading } = usePermissions();\n const canRead = hasPermission(BIGCONSOLE_PERMISSIONS.DATASINK_READ);\n const canUpdate = !permissionsLoading && hasPermission(BIGCONSOLE_PERMISSIONS.DATASINK_UPDATE);\n const operations = useDataSinkAlerts(\n dataSinkId,\n !permissionsLoading && canRead && !!workspaceId && !!currentUser?.id\n );\n const sink = operations.sink;\n const rules = sink?.alerts ?? [];\n const [search, setSearch] = useState('');\n const [editing, setEditing] = useState<EditingRule | null>(null);\n const [pending, setPending] = useState(false);\n const mutationActive = useRef(false);\n const opener = useRef<HTMLElement | null>(null);\n const [error, setError] = useState<string | null>(null);\n const [status, setStatus] = useState<string | null>(null);\n const [previewing, setPreviewing] = useState(false);\n const [previewError, setPreviewError] = useState<string | null>(null);\n const [preview, setPreview] = useState<PreviewResult | null>(null);\n const [historyVersion, setHistoryVersion] = useState(0);\n const previewRequest = useRef(0);\n const selectionCounter = useRef(0);\n const editingSelection = editing?.selection;\n useEffect(() => {\n if (editingSelection !== undefined) document.getElementById('alert-name')?.focus();\n }, [editingSelection]);\n const dirty = !!editing && JSON.stringify(editing.draft) !== editing.original;\n const confirm = async (message: string) => {\n const native = await nativeConfirm({\n title: t('bigconsole.alerts.confirm.title', 'Confirm alert change'),\n message,\n okButtonTitle: t('bigconsole.alerts.confirm.continue', 'Continue'),\n cancelButtonTitle: t('bigconsole.alerts.rule.cancel', 'Cancel'),\n });\n return native ?? window.confirm(message);\n };\n const discard = () => !dirty || confirm(t('bigconsole.alerts.confirm.discard', 'Discard your unsaved rule changes?'));\n const selectRule = async (rule?: AlertRule) => {\n if (pending || !sink || !(await discard())) return;\n if (document.activeElement instanceof HTMLElement) opener.current = document.activeElement;\n const draft = alertDraft(rule);\n setEditing({\n draft,\n original: JSON.stringify(draft),\n version: sink.version,\n selection: ++selectionCounter.current,\n });\n previewRequest.current++;\n setPreview(null);\n setPreviewError(null);\n setPreviewing(false);\n setError(null);\n setStatus(null);\n };\n const cancel = async () => {\n if (pending || !(await discard())) return;\n setEditing(null);\n setPreview(null);\n setPreviewError(null);\n previewRequest.current++;\n setPreviewing(false);\n setError(null);\n if (opener.current?.isConnected) opener.current.focus();\n };\n const save = async () => {\n if (!editing || !sink || !canUpdate || mutationActive.current) return;\n const invalid = validateAlertDraft(editing.draft, operations.channels);\n if (invalid) {\n setError(t(`bigconsole.alerts.validation.${invalid}`, ALERT_VALIDATION_MESSAGES[invalid]));\n return;\n }\n mutationActive.current = true;\n setPending(true);\n setError(null);\n setStatus(null);\n const knownIds = new Set(rules.map((rule) => rule.id));\n try {\n const saved = await operations.save(alertDraftInput(editing.draft), editing.version);\n if (!saved) return;\n const rule = saved.alerts?.find((item) =>\n editing.draft.id ? item.id === editing.draft.id : !knownIds.has(item.id)\n );\n if (rule) {\n const draft = alertDraft(rule);\n setEditing({ draft, original: JSON.stringify(draft), version: saved.version, selection: editing.selection });\n } else setEditing(null);\n setStatus(t('bigconsole.alerts.feedback.saved', 'Alert rule saved.'));\n setHistoryVersion((previous) => previous + 1);\n } catch (caught) {\n setError(alertErrorMessage(caught));\n } finally {\n mutationActive.current = false;\n setPending(false);\n }\n };\n const toggle = async (rule: AlertRule) => {\n if (!sink || !canUpdate || mutationActive.current) return;\n const draft = { ...alertDraft(rule), enabled: !rule.enabled };\n const invalid = validateAlertDraft(draft, operations.channels);\n if (invalid) {\n setError(t(`bigconsole.alerts.validation.${invalid}`, ALERT_VALIDATION_MESSAGES[invalid]));\n return;\n }\n mutationActive.current = true;\n setPending(true);\n setError(null);\n setStatus(null);\n try {\n const saved = await operations.save(alertDraftInput(draft), sink.version);\n if (saved) {\n setStatus(\n draft.enabled\n ? t('bigconsole.alerts.feedback.enabled', 'Alert rule enabled.')\n : t('bigconsole.alerts.feedback.disabled', 'Alert rule disabled.')\n );\n setHistoryVersion((previous) => previous + 1);\n }\n } catch (caught) {\n setError(alertErrorMessage(caught));\n } finally {\n mutationActive.current = false;\n setPending(false);\n }\n };\n const remove = async (rule: AlertRule) => {\n if (!sink || !canUpdate || mutationActive.current) return;\n const ok = await confirm(`${t('bigconsole.alerts.confirm.delete', 'Delete alert rule')} “${rule.name}”?`);\n if (!ok || mutationActive.current) return;\n mutationActive.current = true;\n setPending(true);\n setError(null);\n setStatus(null);\n try {\n const saved = await operations.remove(rule.id, sink.version);\n if (saved) {\n if (editing?.draft.id === rule.id) setEditing(null);\n setStatus(t('bigconsole.alerts.feedback.deleted', 'Alert rule deleted.'));\n setHistoryVersion((previous) => previous + 1);\n }\n } catch (caught) {\n setError(alertErrorMessage(caught));\n } finally {\n mutationActive.current = false;\n setPending(false);\n }\n };\n const runPreview = async () => {\n if (!editing || previewing || pending) return;\n const request = ++previewRequest.current;\n const { condition, conditionType } = editing.draft;\n setPreviewing(true);\n setPreviewError(null);\n setPreview(null);\n try {\n const result = await operations.preview(condition, conditionType);\n if (result && previewRequest.current === request) setPreview({ condition, conditionType, result });\n } catch (caught) {\n if (previewRequest.current === request) setPreviewError(alertErrorMessage(caught));\n } finally {\n if (previewRequest.current === request) setPreviewing(false);\n }\n };\n const reloadRule = async () => {\n if (!editing?.draft.id || pending || !(await discard())) return;\n const latest = await operations.reload();\n const rule = latest?.alerts?.find((item) => item.id === editing.draft.id);\n if (!latest) return;\n if (!rule) {\n setEditing(null);\n setStatus(t('bigconsole.alerts.feedback.removedElsewhere', 'This rule no longer exists.'));\n return;\n }\n const draft = alertDraft(rule);\n setEditing({\n draft,\n original: JSON.stringify(draft),\n version: latest.version,\n selection: ++selectionCounter.current,\n });\n setError(null);\n setPreview(null);\n };\n if (permissionsLoading || operations.loading)\n return (\n <div role=\"status\" className=\"flex min-h-60 items-center justify-center p-card-padding\">\n <Loader2 className=\"mr-2 h-5 w-5 animate-spin text-text-secondary\" />\n {t('bigconsole.alerts.loading', 'Loading alerts…')}\n </div>\n );\n if (!canRead)\n return (\n <AccessDenied\n title={t('bigconsole.alerts.denied', 'Access denied')}\n description={t('bigconsole.alerts.deniedDescription', 'You do not have permission to read this data sink.')}\n />\n );\n if (!workspaceId || !currentUser?.id)\n return (\n <p className=\"p-card-padding text-text-secondary\">\n {t('bigconsole.alerts.selectWorkspace', 'Select a workspace to view its alerts.')}\n </p>\n );\n if (!sink)\n return (\n <div className=\"p-card-padding\">\n <Section\n title={t('bigconsole.alerts.unavailable', 'Alerts could not be loaded')}\n headingLevel={2}\n tone=\"danger\"\n description={operations.error ?? t('bigconsole.alerts.notFound', 'Data sink not found.')}\n actions={\n <Button onClick={() => void operations.reload()} variant=\"secondary\">\n {t('bigconsole.alerts.retry', 'Retry')}\n </Button>\n }\n />\n </div>\n );\n const filtered = rules.filter((rule) =>\n `${rule.name} ${rule.condition}`.toLowerCase().includes(search.trim().toLowerCase())\n );\n return (\n <div className=\"min-w-0 p-card-padding\">\n <header className=\"mb-section-gap flex flex-col gap-form-gap sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"min-w-0\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate(`/datasinks/${dataSinkId}`)} className=\"mb-3\">\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n {t('bigconsole.alerts.back', 'Back to data sink')}\n </Button>\n <h1 className=\"break-words text-2xl font-bold text-text-primary\">\n {t('bigconsole.alerts.title', 'Alerts')} · {sink.name || sink.key}\n </h1>\n <p className=\"mt-2 text-sm text-text-secondary\">\n {t('bigconsole.alerts.purpose', 'Create and manage alert rules for this data sink.')}\n </p>\n </div>\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => {\n void operations.reload();\n void operations.reloadChannels();\n setHistoryVersion((previous) => previous + 1);\n }}\n disabled={operations.refreshing || pending}\n >\n <RefreshCw className={`mr-2 h-4 w-4 ${operations.refreshing ? 'animate-spin' : ''}`} />\n {t('bigconsole.alerts.refresh', 'Refresh alerts')}\n </Button>\n </header>\n {status && (\n <p\n role=\"status\"\n className=\"mb-4 rounded-control bg-[var(--color-status-success-bgSubtle)] p-3 text-sm text-status-success-text\"\n >\n {status}\n </p>\n )}\n {error && !editing && (\n <p role=\"alert\" className=\"mb-4 break-words text-sm text-status-error-text\">\n {error}\n </p>\n )}\n {operations.error && (\n <p role=\"alert\" className=\"mb-4 break-words text-sm text-status-error-text\">\n {operations.error}\n </p>\n )}\n <div className=\"grid min-w-0 items-start gap-section-gap xl:grid-cols-[minmax(0,1.2fr)_minmax(0,1fr)]\">\n <div className=\"min-w-0 space-y-section-gap\">\n <Section\n title={t('bigconsole.alerts.list.title', 'Alert rules')}\n headingLevel={2}\n icon={<Bell className=\"h-4 w-4\" />}\n actions={\n <Button size=\"sm\" onClick={() => void selectRule()} disabled={!canUpdate || pending}>\n <Plus className=\"mr-2 h-4 w-4\" />\n {t('bigconsole.alerts.list.new', 'New alert rule')}\n </Button>\n }\n >\n <label htmlFor=\"alert-search\" className=\"sr-only\">\n {t('bigconsole.alerts.list.search', 'Search alerts')}\n </label>\n <input\n id=\"alert-search\"\n type=\"search\"\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n placeholder={t('bigconsole.alerts.list.searchPlaceholder', 'Search alerts…')}\n className={`mb-4 w-full min-w-0 rounded-control border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary ${SECTION_FOCUS_RING}`}\n />\n <div className=\"max-w-full overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <caption className=\"sr-only\">{t('bigconsole.alerts.list.caption', 'Rules for this data sink')}</caption>\n <thead>\n <tr className=\"border-b border-border-subtle text-left text-xs text-text-secondary\">\n <th scope=\"col\" className=\"pb-3 pr-2\">\n {t('bigconsole.alerts.rule.name', 'Name')}\n </th>\n <th scope=\"col\" className=\"hidden pb-3 pr-2 sm:table-cell\">\n {t('bigconsole.alerts.rule.severity', 'Severity')}\n </th>\n <th scope=\"col\" className=\"hidden pb-3 pr-2 lg:table-cell\">\n {t('bigconsole.alerts.rule.destinations', 'Delivery destinations')}\n </th>\n <th scope=\"col\" className=\"hidden pb-3 pr-2 md:table-cell\">\n {t('bigconsole.alerts.rule.throttle', 'Throttle')}\n </th>\n <th scope=\"col\" className=\"pb-3 pr-2\">\n {t('bigconsole.alerts.list.enabled', 'Enabled')}\n </th>\n <th scope=\"col\" className=\"pb-3\">\n <span className=\"sr-only\">{t('bigconsole.alerts.list.actions', 'Actions')}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n {filtered.map((rule) => (\n <tr key={rule.id} className=\"border-b border-border-subtle last:border-0\">\n <th scope=\"row\" className=\"max-w-64 py-4 pr-2 text-left font-normal\">\n <button\n type=\"button\"\n onClick={() => void selectRule(rule)}\n disabled={pending}\n className={`break-words text-left font-medium text-text-primary underline-offset-4 hover:underline ${SECTION_FOCUS_RING}`}\n >\n {rule.name}\n </button>\n <p className=\"mt-1 text-xs text-text-secondary sm:hidden\">\n {t(`bigconsole.alerts.severity.${rule.severity}`, rule.severity.toUpperCase())}\n </p>\n <p className=\"mt-1 text-xs text-text-muted md:hidden\">\n {rule.throttle?.enabled\n ? `${rule.throttle.maxAlertsPerWindow} / ${rule.throttle.windowMinutes} min`\n : t('bigconsole.alerts.list.noThrottle', 'No throttle')}\n </p>\n </th>\n <td className=\"hidden py-4 pr-2 sm:table-cell\">\n <span className=\"rounded-pill border border-border-subtle bg-bg-sunken px-2 py-1 text-xs text-text-primary\">\n {t(`bigconsole.alerts.severity.${rule.severity}`, rule.severity.toUpperCase())}\n </span>\n </td>\n <td className=\"hidden py-4 pr-2 text-xs text-text-secondary lg:table-cell\">\n {rule.deliveries.length\n ? [...new Set(rule.deliveries.map((item) => item.channel))].join(', ')\n : t('bigconsole.alerts.list.unconfigured', 'Not configured')}\n </td>\n <td className=\"hidden py-4 pr-2 text-xs text-text-secondary md:table-cell\">\n {rule.throttle?.enabled\n ? `${rule.throttle.maxAlertsPerWindow} / ${rule.throttle.windowMinutes} min`\n : t('bigconsole.alerts.list.noThrottle', 'No throttle')}\n </td>\n <td className=\"py-4 pr-2\">\n <Switch\n checked={rule.enabled}\n onCheckedChange={() => void toggle(rule)}\n disabled={!canUpdate || pending}\n aria-label={`${t('bigconsole.alerts.list.enabled', 'Enabled')} · ${rule.name}`}\n />\n </td>\n <td className=\"py-4\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => void remove(rule)}\n disabled={!canUpdate || pending}\n aria-label={`${t('bigconsole.alerts.confirm.delete', 'Delete alert rule')} · ${rule.name}`}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {!filtered.length && (\n <p className=\"py-4 text-sm text-text-secondary\">\n {rules.length\n ? t('bigconsole.alerts.list.noMatches', 'No alerts match your search.')\n : t(\n 'bigconsole.alerts.list.empty',\n 'No alert rules yet. Create a disabled rule and preview its condition before enabling it.'\n )}\n </p>\n )}\n <p className=\"mt-3 text-xs text-text-muted\">\n {filtered.length} {t('bigconsole.alerts.list.count', 'rules shown')}\n </p>\n </Section>\n <AlertExecutionHistory\n owner={operations.owner}\n rules={rules}\n load={operations.history}\n refreshVersion={historyVersion}\n />\n </div>\n <div className=\"min-w-0\">\n {editing ? (\n <>\n <AlertRuleEditor\n draft={editing.draft}\n channels={operations.channels}\n channelError={operations.channelError}\n canUpdate={canUpdate}\n pending={pending}\n previewing={previewing}\n preview={preview?.result ?? null}\n previewError={previewError}\n previewStale={\n !!preview &&\n (preview.condition !== editing.draft.condition ||\n preview.conditionType !== editing.draft.conditionType ||\n sink.version > preview.result.version)\n }\n error={error}\n onChange={(draft) => {\n if (\n draft.condition !== editing.draft.condition ||\n draft.conditionType !== editing.draft.conditionType\n ) {\n previewRequest.current++;\n setPreviewError(null);\n setPreviewing(false);\n }\n setEditing({ ...editing, draft });\n }}\n onSave={() => void save()}\n onCancel={() => void cancel()}\n onPreview={() => void runPreview()}\n onReloadChannels={() => void operations.reloadChannels()}\n />\n {editing.draft.id && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => void reloadRule()}\n disabled={pending || operations.refreshing}\n className=\"mt-3\"\n >\n {t('bigconsole.alerts.rule.reloadSaved', 'Reload saved rule')}\n </Button>\n )}\n </>\n ) : (\n <Section\n title={t('bigconsole.alerts.rule.title', 'Alert rule')}\n headingLevel={2}\n description={t(\n 'bigconsole.alerts.rule.select',\n 'Select a rule to inspect it, or create a new alert rule.'\n )}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataSinkViewPage.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/pages/DataSinkViewPage.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgEH,eAAO,MAAM,gBAAgB,8CA4mB3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"DataSinkViewPage.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/pages/DataSinkViewPage.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAiEH,eAAO,MAAM,gBAAgB,8CAgnB3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}