@marinoscar/platform-web 0.1.0-next.19 → 0.1.0-next.21
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/CHANGELOG.md +21 -0
- package/README.md +5 -3
- package/dist/alerts/headless/client.d.ts +134 -0
- package/dist/alerts/headless/client.d.ts.map +1 -0
- package/dist/alerts/headless/client.js +105 -0
- package/dist/alerts/headless/client.js.map +1 -0
- package/dist/alerts/headless/format.d.ts +95 -0
- package/dist/alerts/headless/format.d.ts.map +1 -0
- package/dist/alerts/headless/format.js +164 -0
- package/dist/alerts/headless/format.js.map +1 -0
- package/dist/alerts/headless/hooks.d.ts +245 -0
- package/dist/alerts/headless/hooks.d.ts.map +1 -0
- package/dist/alerts/headless/hooks.js +315 -0
- package/dist/alerts/headless/hooks.js.map +1 -0
- package/dist/alerts/headless/index.d.ts +9 -0
- package/dist/alerts/headless/index.d.ts.map +1 -0
- package/dist/alerts/headless/index.js +9 -0
- package/dist/alerts/headless/index.js.map +1 -0
- package/dist/alerts/headless/rule-draft.d.ts +175 -0
- package/dist/alerts/headless/rule-draft.d.ts.map +1 -0
- package/dist/alerts/headless/rule-draft.js +261 -0
- package/dist/alerts/headless/rule-draft.js.map +1 -0
- package/dist/alerts/ui/AlertIncidentDrawer.d.ts +30 -0
- package/dist/alerts/ui/AlertIncidentDrawer.d.ts.map +1 -0
- package/dist/alerts/ui/AlertIncidentDrawer.js +33 -0
- package/dist/alerts/ui/AlertIncidentDrawer.js.map +1 -0
- package/dist/alerts/ui/AlertRuleDialog.d.ts +47 -0
- package/dist/alerts/ui/AlertRuleDialog.d.ts.map +1 -0
- package/dist/alerts/ui/AlertRuleDialog.js +124 -0
- package/dist/alerts/ui/AlertRuleDialog.js.map +1 -0
- package/dist/alerts/ui/AlertRuleTestResult.d.ts +23 -0
- package/dist/alerts/ui/AlertRuleTestResult.d.ts.map +1 -0
- package/dist/alerts/ui/AlertRuleTestResult.js +30 -0
- package/dist/alerts/ui/AlertRuleTestResult.js.map +1 -0
- package/dist/alerts/ui/AlertsPage.d.ts +41 -0
- package/dist/alerts/ui/AlertsPage.d.ts.map +1 -0
- package/dist/alerts/ui/AlertsPage.js +238 -0
- package/dist/alerts/ui/AlertsPage.js.map +1 -0
- package/dist/alerts/ui/FiringAlertsBanner.d.ts +28 -0
- package/dist/alerts/ui/FiringAlertsBanner.d.ts.map +1 -0
- package/dist/alerts/ui/FiringAlertsBanner.js +45 -0
- package/dist/alerts/ui/FiringAlertsBanner.js.map +1 -0
- package/dist/alerts/ui/copy.d.ts +15 -0
- package/dist/alerts/ui/copy.d.ts.map +1 -0
- package/dist/alerts/ui/copy.js +14 -0
- package/dist/alerts/ui/copy.js.map +1 -0
- package/dist/alerts/ui/index.d.ts +14 -0
- package/dist/alerts/ui/index.d.ts.map +1 -0
- package/dist/alerts/ui/index.js +12 -0
- package/dist/alerts/ui/index.js.map +1 -0
- package/dist/alerts/ui/parts.d.ts +26 -0
- package/dist/alerts/ui/parts.d.ts.map +1 -0
- package/dist/alerts/ui/parts.js +27 -0
- package/dist/alerts/ui/parts.js.map +1 -0
- package/dist/alerts/ui/settings.d.ts +27 -0
- package/dist/alerts/ui/settings.d.ts.map +1 -0
- package/dist/alerts/ui/settings.js +37 -0
- package/dist/alerts/ui/settings.js.map +1 -0
- package/dist/nodes/headless/api.d.ts +3 -1
- package/dist/nodes/headless/api.d.ts.map +1 -1
- package/dist/nodes/headless/api.js +22 -0
- package/dist/nodes/headless/api.js.map +1 -1
- package/dist/nodes/headless/index.d.ts +7 -2
- package/dist/nodes/headless/index.d.ts.map +1 -1
- package/dist/nodes/headless/index.js +4 -1
- package/dist/nodes/headless/index.js.map +1 -1
- package/dist/nodes/headless/node-events.d.ts +43 -0
- package/dist/nodes/headless/node-events.d.ts.map +1 -0
- package/dist/nodes/headless/node-events.js +150 -0
- package/dist/nodes/headless/node-events.js.map +1 -0
- package/dist/nodes/headless/power.d.ts +43 -0
- package/dist/nodes/headless/power.d.ts.map +1 -0
- package/dist/nodes/headless/power.js +74 -0
- package/dist/nodes/headless/power.js.map +1 -0
- package/dist/nodes/headless/types.d.ts +40 -3
- package/dist/nodes/headless/types.d.ts.map +1 -1
- package/dist/nodes/headless/types.js +1 -1
- package/dist/nodes/headless/types.js.map +1 -1
- package/dist/nodes/headless/use-node-events.d.ts +59 -0
- package/dist/nodes/headless/use-node-events.d.ts.map +1 -0
- package/dist/nodes/headless/use-node-events.js +159 -0
- package/dist/nodes/headless/use-node-events.js.map +1 -0
- package/dist/nodes/ui/NodeEventsTimeline.d.ts +39 -0
- package/dist/nodes/ui/NodeEventsTimeline.d.ts.map +1 -0
- package/dist/nodes/ui/NodeEventsTimeline.js +63 -0
- package/dist/nodes/ui/NodeEventsTimeline.js.map +1 -0
- package/dist/nodes/ui/NodePowerBadge.d.ts +27 -0
- package/dist/nodes/ui/NodePowerBadge.d.ts.map +1 -0
- package/dist/nodes/ui/NodePowerBadge.js +48 -0
- package/dist/nodes/ui/NodePowerBadge.js.map +1 -0
- package/dist/nodes/ui/NodeVitalsDialog.d.ts +11 -1
- package/dist/nodes/ui/NodeVitalsDialog.d.ts.map +1 -1
- package/dist/nodes/ui/NodeVitalsDialog.js +14 -5
- package/dist/nodes/ui/NodeVitalsDialog.js.map +1 -1
- package/dist/nodes/ui/WorkersPage.d.ts.map +1 -1
- package/dist/nodes/ui/WorkersPage.js +2 -1
- package/dist/nodes/ui/WorkersPage.js.map +1 -1
- package/dist/nodes/ui/workerVitals.d.ts +17 -1
- package/dist/nodes/ui/workerVitals.d.ts.map +1 -1
- package/dist/nodes/ui/workerVitals.js +43 -0
- package/dist/nodes/ui/workerVitals.js.map +1 -1
- package/dist/nodes/ui/workersTable.d.ts.map +1 -1
- package/dist/nodes/ui/workersTable.js +2 -1
- package/dist/nodes/ui/workersTable.js.map +1 -1
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +11 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +17 -2
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -1
- package/dist/webhooks/headless/client.d.ts +101 -0
- package/dist/webhooks/headless/client.d.ts.map +1 -0
- package/dist/webhooks/headless/client.js +105 -0
- package/dist/webhooks/headless/client.js.map +1 -0
- package/dist/webhooks/headless/event-selection.d.ts +119 -0
- package/dist/webhooks/headless/event-selection.d.ts.map +1 -0
- package/dist/webhooks/headless/event-selection.js +225 -0
- package/dist/webhooks/headless/event-selection.js.map +1 -0
- package/dist/webhooks/headless/format.d.ts +84 -0
- package/dist/webhooks/headless/format.d.ts.map +1 -0
- package/dist/webhooks/headless/format.js +142 -0
- package/dist/webhooks/headless/format.js.map +1 -0
- package/dist/webhooks/headless/hooks.d.ts +199 -0
- package/dist/webhooks/headless/hooks.d.ts.map +1 -0
- package/dist/webhooks/headless/hooks.js +249 -0
- package/dist/webhooks/headless/hooks.js.map +1 -0
- package/dist/webhooks/headless/index.d.ts +9 -0
- package/dist/webhooks/headless/index.d.ts.map +1 -0
- package/dist/webhooks/headless/index.js +9 -0
- package/dist/webhooks/headless/index.js.map +1 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.d.ts +32 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.js +64 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.js.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.d.ts +21 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.js +96 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.js.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.d.ts +39 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.js +79 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.js.map +1 -0
- package/dist/webhooks/ui/WebhookEventPicker.d.ts +30 -0
- package/dist/webhooks/ui/WebhookEventPicker.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookEventPicker.js +33 -0
- package/dist/webhooks/ui/WebhookEventPicker.js.map +1 -0
- package/dist/webhooks/ui/WebhookSecretDialog.d.ts +27 -0
- package/dist/webhooks/ui/WebhookSecretDialog.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookSecretDialog.js +52 -0
- package/dist/webhooks/ui/WebhookSecretDialog.js.map +1 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.d.ts +18 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.js +40 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.js.map +1 -0
- package/dist/webhooks/ui/WebhooksPage.d.ts +47 -0
- package/dist/webhooks/ui/WebhooksPage.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhooksPage.js +172 -0
- package/dist/webhooks/ui/WebhooksPage.js.map +1 -0
- package/dist/webhooks/ui/copy.d.ts +24 -0
- package/dist/webhooks/ui/copy.d.ts.map +1 -0
- package/dist/webhooks/ui/copy.js +34 -0
- package/dist/webhooks/ui/copy.js.map +1 -0
- package/dist/webhooks/ui/index.d.ts +15 -0
- package/dist/webhooks/ui/index.d.ts.map +1 -0
- package/dist/webhooks/ui/index.js +12 -0
- package/dist/webhooks/ui/index.js.map +1 -0
- package/dist/webhooks/ui/parts.d.ts +25 -0
- package/dist/webhooks/ui/parts.d.ts.map +1 -0
- package/dist/webhooks/ui/parts.js +28 -0
- package/dist/webhooks/ui/parts.js.map +1 -0
- package/dist/webhooks/ui/settings.d.ts +58 -0
- package/dist/webhooks/ui/settings.d.ts.map +1 -0
- package/dist/webhooks/ui/settings.js +79 -0
- package/dist/webhooks/ui/settings.js.map +1 -0
- package/package.json +18 -2
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import type { AlertIncident, AlertKind, AlertRule, AlertRuleTestResponse, AlertSummary, CreateAlertRule, UpdateAlertRule } from '@marinoscar/platform-contract/alerts';
|
|
2
|
+
import { type AlertIncidentsQuery, type AlertMetricCatalogEntry, type AlertRulesQuery, type AlertsApi } from './client.js';
|
|
3
|
+
/**
|
|
4
|
+
* An alerts API failure in words: the refusal code's sentence (`code` or
|
|
5
|
+
* `details.reason`), else the API's message, else `fallback`.
|
|
6
|
+
*
|
|
7
|
+
* @param error - what the call rejected with.
|
|
8
|
+
* @param fallback - the sentence when nothing better is known.
|
|
9
|
+
* @returns the message.
|
|
10
|
+
*
|
|
11
|
+
* @stability experimental
|
|
12
|
+
*/
|
|
13
|
+
export declare function alertErrorMessage(error: unknown, fallback: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* The alerts client over the host's transport, memoised.
|
|
16
|
+
*
|
|
17
|
+
* @returns the client.
|
|
18
|
+
*
|
|
19
|
+
* @stability experimental
|
|
20
|
+
*/
|
|
21
|
+
export declare function useAlertsApi(): AlertsApi;
|
|
22
|
+
/**
|
|
23
|
+
* What {@link useAlertRules} returns.
|
|
24
|
+
*
|
|
25
|
+
* @stability experimental
|
|
26
|
+
*/
|
|
27
|
+
export interface AlertRulesState {
|
|
28
|
+
/** The rules, in the API's order. */
|
|
29
|
+
rules: AlertRule[];
|
|
30
|
+
/** Whether a load is in flight. */
|
|
31
|
+
isLoading: boolean;
|
|
32
|
+
/** A load failure, in words. */
|
|
33
|
+
error: string | null;
|
|
34
|
+
/** Reloads now. */
|
|
35
|
+
refresh: () => Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The rules (`GET /admin/alerts/rules`), reloaded when a filter changes.
|
|
39
|
+
*
|
|
40
|
+
* @param query - optional filters.
|
|
41
|
+
* @returns the rules and the load state.
|
|
42
|
+
*
|
|
43
|
+
* @extensionPoint hook
|
|
44
|
+
* @stability experimental
|
|
45
|
+
*/
|
|
46
|
+
export declare function useAlertRules(query?: AlertRulesQuery): AlertRulesState;
|
|
47
|
+
/**
|
|
48
|
+
* What {@link useAlertRule} returns.
|
|
49
|
+
*
|
|
50
|
+
* @stability experimental
|
|
51
|
+
*/
|
|
52
|
+
export interface AlertRuleState {
|
|
53
|
+
/** The rule, once loaded. */
|
|
54
|
+
rule: AlertRule | null;
|
|
55
|
+
/** Whether a load is in flight. */
|
|
56
|
+
isLoading: boolean;
|
|
57
|
+
/** A load failure, in words. */
|
|
58
|
+
error: string | null;
|
|
59
|
+
/** Reloads now. */
|
|
60
|
+
refresh: () => Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* One rule (`GET /admin/alerts/rules/:id`).
|
|
64
|
+
*
|
|
65
|
+
* @param id - the rule id, or `null` for none.
|
|
66
|
+
* @returns the rule and the load state.
|
|
67
|
+
*
|
|
68
|
+
* @extensionPoint hook
|
|
69
|
+
* @stability experimental
|
|
70
|
+
*/
|
|
71
|
+
export declare function useAlertRule(id: string | null): AlertRuleState;
|
|
72
|
+
/**
|
|
73
|
+
* What {@link useAlertKinds} returns.
|
|
74
|
+
*
|
|
75
|
+
* @stability experimental
|
|
76
|
+
*/
|
|
77
|
+
export interface AlertKindsState {
|
|
78
|
+
/** The registered kinds. */
|
|
79
|
+
kinds: AlertKind[];
|
|
80
|
+
/** Whether the load is in flight. */
|
|
81
|
+
isLoading: boolean;
|
|
82
|
+
/** A load failure, in words. */
|
|
83
|
+
error: string | null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The registered rule kinds (`GET /admin/alerts/kinds`).
|
|
87
|
+
*
|
|
88
|
+
* @param options - `enabled: false` skips the request.
|
|
89
|
+
* @returns the kinds and the load state.
|
|
90
|
+
*
|
|
91
|
+
* @extensionPoint hook
|
|
92
|
+
* @stability experimental
|
|
93
|
+
*/
|
|
94
|
+
export declare function useAlertKinds(options?: {
|
|
95
|
+
enabled?: boolean;
|
|
96
|
+
}): AlertKindsState;
|
|
97
|
+
/**
|
|
98
|
+
* What {@link useAlertIncidents} returns.
|
|
99
|
+
*
|
|
100
|
+
* @stability experimental
|
|
101
|
+
*/
|
|
102
|
+
export interface AlertIncidentsState {
|
|
103
|
+
/** The page of incidents. */
|
|
104
|
+
incidents: AlertIncident[];
|
|
105
|
+
/** Incidents matching the filters, across every page. */
|
|
106
|
+
total: number;
|
|
107
|
+
/** Pages at the requested page size. */
|
|
108
|
+
totalPages: number;
|
|
109
|
+
/** Whether a load is in flight. */
|
|
110
|
+
isLoading: boolean;
|
|
111
|
+
/** A load failure, in words. */
|
|
112
|
+
error: string | null;
|
|
113
|
+
/** Reloads the current page now. */
|
|
114
|
+
refresh: () => Promise<void>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* One page of incidents (`GET /admin/alerts/incidents`), reloaded when the
|
|
118
|
+
* page or a filter changes.
|
|
119
|
+
*
|
|
120
|
+
* @param query - the one-based page, the page size and the filters.
|
|
121
|
+
* @returns the page and the load state.
|
|
122
|
+
*
|
|
123
|
+
* @extensionPoint hook
|
|
124
|
+
* @stability experimental
|
|
125
|
+
*/
|
|
126
|
+
export declare function useAlertIncidents(query?: AlertIncidentsQuery): AlertIncidentsState;
|
|
127
|
+
/**
|
|
128
|
+
* What {@link useAlertIncident} returns.
|
|
129
|
+
*
|
|
130
|
+
* @stability experimental
|
|
131
|
+
*/
|
|
132
|
+
export interface AlertIncidentState {
|
|
133
|
+
/** The incident, once loaded. */
|
|
134
|
+
incident: AlertIncident | null;
|
|
135
|
+
/** Whether a load is in flight. */
|
|
136
|
+
isLoading: boolean;
|
|
137
|
+
/** A load failure, in words. */
|
|
138
|
+
error: string | null;
|
|
139
|
+
/** Reloads now. */
|
|
140
|
+
refresh: () => Promise<void>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* One incident (`GET /admin/alerts/incidents/:id`).
|
|
144
|
+
*
|
|
145
|
+
* @param id - the incident id, or `null` for none.
|
|
146
|
+
* @returns the incident and the load state.
|
|
147
|
+
*
|
|
148
|
+
* @extensionPoint hook
|
|
149
|
+
* @stability experimental
|
|
150
|
+
*/
|
|
151
|
+
export declare function useAlertIncident(id: string | null): AlertIncidentState;
|
|
152
|
+
/**
|
|
153
|
+
* What {@link useAlertSummary} returns.
|
|
154
|
+
*
|
|
155
|
+
* @stability experimental
|
|
156
|
+
*/
|
|
157
|
+
export interface AlertSummaryState {
|
|
158
|
+
/** The firing counts, once loaded. */
|
|
159
|
+
summary: AlertSummary | null;
|
|
160
|
+
/** Whether a load is in flight. */
|
|
161
|
+
isLoading: boolean;
|
|
162
|
+
/** A load failure, in words. */
|
|
163
|
+
error: string | null;
|
|
164
|
+
/** Reloads now. */
|
|
165
|
+
refresh: () => Promise<void>;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* The firing summary (`GET /admin/alerts/summary`), polled every 30 seconds
|
|
169
|
+
* while the tab is visible.
|
|
170
|
+
*
|
|
171
|
+
* @param options - `enabled: false` skips the request (a viewer without
|
|
172
|
+
* `alerts:read`); `intervalMs` changes the poll (0 turns it off).
|
|
173
|
+
* @returns the summary and the load state.
|
|
174
|
+
*
|
|
175
|
+
* @extensionPoint hook
|
|
176
|
+
* @stability experimental
|
|
177
|
+
*/
|
|
178
|
+
export declare function useAlertSummary(options?: {
|
|
179
|
+
enabled?: boolean;
|
|
180
|
+
intervalMs?: number;
|
|
181
|
+
}): AlertSummaryState;
|
|
182
|
+
/**
|
|
183
|
+
* What {@link useAlertMetricCatalog} returns.
|
|
184
|
+
*
|
|
185
|
+
* @stability experimental
|
|
186
|
+
*/
|
|
187
|
+
export interface AlertMetricCatalogState {
|
|
188
|
+
/** The metric tables and their attributes. */
|
|
189
|
+
metrics: AlertMetricCatalogEntry[];
|
|
190
|
+
/** Whether the load is in flight. */
|
|
191
|
+
isLoading: boolean;
|
|
192
|
+
/**
|
|
193
|
+
* A load failure, in words (telemetry off, store unreachable, or no
|
|
194
|
+
* `telemetry:query`). The picker then takes a typed name instead.
|
|
195
|
+
*/
|
|
196
|
+
error: string | null;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* The metrics the rule editor offers (`GET /admin/telemetry/schema`).
|
|
200
|
+
*
|
|
201
|
+
* @param options - `enabled: false` skips the request.
|
|
202
|
+
* @returns the metrics and the load state.
|
|
203
|
+
*
|
|
204
|
+
* @extensionPoint hook
|
|
205
|
+
* @stability experimental
|
|
206
|
+
*/
|
|
207
|
+
export declare function useAlertMetricCatalog(options?: {
|
|
208
|
+
enabled?: boolean;
|
|
209
|
+
}): AlertMetricCatalogState;
|
|
210
|
+
/**
|
|
211
|
+
* What {@link useAlertMutations} returns. Each action resolves with the API's
|
|
212
|
+
* answer, or `null` (`false`) when it refused (see `error`).
|
|
213
|
+
*
|
|
214
|
+
* @stability experimental
|
|
215
|
+
*/
|
|
216
|
+
export interface AlertMutations {
|
|
217
|
+
/** `POST /admin/alerts/rules`. */
|
|
218
|
+
create: (input: CreateAlertRule) => Promise<AlertRule | null>;
|
|
219
|
+
/** `PATCH /admin/alerts/rules/:id`. */
|
|
220
|
+
update: (id: string, patch: UpdateAlertRule) => Promise<AlertRule | null>;
|
|
221
|
+
/** `PATCH /admin/alerts/rules/:id` with `{ enabled }`. */
|
|
222
|
+
toggle: (id: string, enabled: boolean) => Promise<AlertRule | null>;
|
|
223
|
+
/** `DELETE /admin/alerts/rules/:id`; resolves `true` on success. */
|
|
224
|
+
remove: (id: string) => Promise<boolean>;
|
|
225
|
+
/** `POST /admin/alerts/rules/:id/test`: the dry run's observations. */
|
|
226
|
+
test: (id: string) => Promise<AlertRuleTestResponse | null>;
|
|
227
|
+
/** `POST /admin/alerts/incidents/:id/acknowledge`. */
|
|
228
|
+
acknowledge: (id: string) => Promise<AlertIncident | null>;
|
|
229
|
+
/** Whether a write is in flight. */
|
|
230
|
+
pending: boolean;
|
|
231
|
+
/** The last refusal, in words. */
|
|
232
|
+
error: string | null;
|
|
233
|
+
/** Clears `error`. */
|
|
234
|
+
reset: () => void;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The alerts writes, with one shared pending flag and error.
|
|
238
|
+
*
|
|
239
|
+
* @returns the actions and their state.
|
|
240
|
+
*
|
|
241
|
+
* @extensionPoint hook
|
|
242
|
+
* @stability experimental
|
|
243
|
+
*/
|
|
244
|
+
export declare function useAlertMutations(): AlertMutations;
|
|
245
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/alerts/headless/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// The alerts hooks (issue #1047): reads with a load state, and the writes
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// A failure becomes a sentence in `error` (a stable refusal code mapped to
|
|
6
|
+
// words, else the API's message); a write resolves with `null` (or `false`)
|
|
7
|
+
// instead of throwing. `useAlertSummary` polls every 30 seconds while the tab
|
|
8
|
+
// is visible, for the dashboard banner.
|
|
9
|
+
// =============================================================================
|
|
10
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
11
|
+
import { ALERT_ERROR_CODES } from '@marinoscar/platform-contract/alerts';
|
|
12
|
+
import { isPlatformApiError, usePlatformApi } from '../../core/index.js';
|
|
13
|
+
import { createAlertsApi, } from './client.js';
|
|
14
|
+
const CODE_MESSAGES = {
|
|
15
|
+
[ALERT_ERROR_CODES.RULE_NOT_FOUND]: 'That alert rule no longer exists.',
|
|
16
|
+
[ALERT_ERROR_CODES.INCIDENT_NOT_FOUND]: 'That incident no longer exists.',
|
|
17
|
+
[ALERT_ERROR_CODES.UNKNOWN_KIND]: 'That rule kind is not available on this deployment.',
|
|
18
|
+
[ALERT_ERROR_CODES.INVALID_CONFIG]: 'The rule configuration is not valid for its kind.',
|
|
19
|
+
[ALERT_ERROR_CODES.STARTER_RULE_PROTECTED]: 'Built-in rules cannot be deleted. Disable the rule instead.',
|
|
20
|
+
};
|
|
21
|
+
/** The default poll interval of {@link useAlertSummary}, in milliseconds. */
|
|
22
|
+
const SUMMARY_POLL_MS = 30_000;
|
|
23
|
+
/**
|
|
24
|
+
* An alerts API failure in words: the refusal code's sentence (`code` or
|
|
25
|
+
* `details.reason`), else the API's message, else `fallback`.
|
|
26
|
+
*
|
|
27
|
+
* @param error - what the call rejected with.
|
|
28
|
+
* @param fallback - the sentence when nothing better is known.
|
|
29
|
+
* @returns the message.
|
|
30
|
+
*
|
|
31
|
+
* @stability experimental
|
|
32
|
+
*/
|
|
33
|
+
export function alertErrorMessage(error, fallback) {
|
|
34
|
+
if (isPlatformApiError(error)) {
|
|
35
|
+
const details = error.details;
|
|
36
|
+
const reason = typeof details?.reason === 'string' ? details.reason : undefined;
|
|
37
|
+
for (const code of [error.code, reason]) {
|
|
38
|
+
if (typeof code === 'string' && CODE_MESSAGES[code])
|
|
39
|
+
return CODE_MESSAGES[code];
|
|
40
|
+
}
|
|
41
|
+
if (typeof error.message === 'string' && error.message !== '')
|
|
42
|
+
return error.message;
|
|
43
|
+
}
|
|
44
|
+
return fallback;
|
|
45
|
+
}
|
|
46
|
+
function useMounted() {
|
|
47
|
+
const mounted = useRef(true);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
mounted.current = true;
|
|
50
|
+
return () => {
|
|
51
|
+
mounted.current = false;
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
return useCallback(() => mounted.current, []);
|
|
55
|
+
}
|
|
56
|
+
/** Runs `load` now and on `refresh`, keeping only the newest answer. */
|
|
57
|
+
function useLoad(load, fallback) {
|
|
58
|
+
const mounted = useMounted();
|
|
59
|
+
const [data, setData] = useState(null);
|
|
60
|
+
const [isLoading, setIsLoading] = useState(load !== null);
|
|
61
|
+
const [error, setError] = useState(null);
|
|
62
|
+
const seq = useRef(0);
|
|
63
|
+
const refresh = useCallback(async () => {
|
|
64
|
+
if (!load)
|
|
65
|
+
return;
|
|
66
|
+
const ticket = ++seq.current;
|
|
67
|
+
setIsLoading(true);
|
|
68
|
+
try {
|
|
69
|
+
const next = await load();
|
|
70
|
+
if (!mounted() || ticket !== seq.current)
|
|
71
|
+
return;
|
|
72
|
+
setData(next);
|
|
73
|
+
setError(null);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
if (mounted() && ticket === seq.current)
|
|
77
|
+
setError(alertErrorMessage(err, fallback));
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
if (mounted() && ticket === seq.current)
|
|
81
|
+
setIsLoading(false);
|
|
82
|
+
}
|
|
83
|
+
}, [load, fallback, mounted]);
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
if (!load) {
|
|
86
|
+
seq.current += 1;
|
|
87
|
+
setData(null);
|
|
88
|
+
setIsLoading(false);
|
|
89
|
+
setError(null);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
void refresh();
|
|
93
|
+
}, [load, refresh]);
|
|
94
|
+
return { data, isLoading, error, refresh };
|
|
95
|
+
}
|
|
96
|
+
/** Calls `callback` every `intervalMs` while the document is visible. */
|
|
97
|
+
function useVisibleInterval(callback, intervalMs) {
|
|
98
|
+
const ref = useRef(callback);
|
|
99
|
+
ref.current = callback;
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
if (intervalMs <= 0 || typeof document === 'undefined')
|
|
102
|
+
return;
|
|
103
|
+
let timer = null;
|
|
104
|
+
const stop = () => {
|
|
105
|
+
if (timer !== null)
|
|
106
|
+
clearInterval(timer);
|
|
107
|
+
timer = null;
|
|
108
|
+
};
|
|
109
|
+
const start = () => {
|
|
110
|
+
if (timer === null)
|
|
111
|
+
timer = setInterval(() => ref.current(), intervalMs);
|
|
112
|
+
};
|
|
113
|
+
const onVisibility = () => {
|
|
114
|
+
if (document.visibilityState === 'hidden') {
|
|
115
|
+
stop();
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
ref.current();
|
|
119
|
+
start();
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
if (document.visibilityState !== 'hidden')
|
|
123
|
+
start();
|
|
124
|
+
document.addEventListener('visibilitychange', onVisibility);
|
|
125
|
+
return () => {
|
|
126
|
+
stop();
|
|
127
|
+
document.removeEventListener('visibilitychange', onVisibility);
|
|
128
|
+
};
|
|
129
|
+
}, [intervalMs]);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The alerts client over the host's transport, memoised.
|
|
133
|
+
*
|
|
134
|
+
* @returns the client.
|
|
135
|
+
*
|
|
136
|
+
* @stability experimental
|
|
137
|
+
*/
|
|
138
|
+
export function useAlertsApi() {
|
|
139
|
+
const api = usePlatformApi();
|
|
140
|
+
return useMemo(() => createAlertsApi(api), [api]);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The rules (`GET /admin/alerts/rules`), reloaded when a filter changes.
|
|
144
|
+
*
|
|
145
|
+
* @param query - optional filters.
|
|
146
|
+
* @returns the rules and the load state.
|
|
147
|
+
*
|
|
148
|
+
* @extensionPoint hook
|
|
149
|
+
* @stability experimental
|
|
150
|
+
*/
|
|
151
|
+
export function useAlertRules(query = {}) {
|
|
152
|
+
const client = useAlertsApi();
|
|
153
|
+
const { kind, severity, enabled } = query;
|
|
154
|
+
const load = useCallback(() => client.listRules({
|
|
155
|
+
...(kind ? { kind } : {}),
|
|
156
|
+
...(severity ? { severity } : {}),
|
|
157
|
+
...(enabled === undefined ? {} : { enabled }),
|
|
158
|
+
}), [client, kind, severity, enabled]);
|
|
159
|
+
const { data, isLoading, error, refresh } = useLoad(load, 'Could not load the alert rules.');
|
|
160
|
+
return { rules: data ?? [], isLoading, error, refresh };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* One rule (`GET /admin/alerts/rules/:id`).
|
|
164
|
+
*
|
|
165
|
+
* @param id - the rule id, or `null` for none.
|
|
166
|
+
* @returns the rule and the load state.
|
|
167
|
+
*
|
|
168
|
+
* @extensionPoint hook
|
|
169
|
+
* @stability experimental
|
|
170
|
+
*/
|
|
171
|
+
export function useAlertRule(id) {
|
|
172
|
+
const client = useAlertsApi();
|
|
173
|
+
const load = useMemo(() => (id ? () => client.getRule(id) : null), [client, id]);
|
|
174
|
+
const { data, isLoading, error, refresh } = useLoad(load, 'Could not load the alert rule.');
|
|
175
|
+
return { rule: data, isLoading, error, refresh };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* The registered rule kinds (`GET /admin/alerts/kinds`).
|
|
179
|
+
*
|
|
180
|
+
* @param options - `enabled: false` skips the request.
|
|
181
|
+
* @returns the kinds and the load state.
|
|
182
|
+
*
|
|
183
|
+
* @extensionPoint hook
|
|
184
|
+
* @stability experimental
|
|
185
|
+
*/
|
|
186
|
+
export function useAlertKinds(options = {}) {
|
|
187
|
+
const enabled = options.enabled ?? true;
|
|
188
|
+
const client = useAlertsApi();
|
|
189
|
+
const load = useMemo(() => (enabled ? () => client.listKinds() : null), [client, enabled]);
|
|
190
|
+
const { data, isLoading, error } = useLoad(load, 'Could not load the rule kinds.');
|
|
191
|
+
return { kinds: data ?? [], isLoading, error };
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* One page of incidents (`GET /admin/alerts/incidents`), reloaded when the
|
|
195
|
+
* page or a filter changes.
|
|
196
|
+
*
|
|
197
|
+
* @param query - the one-based page, the page size and the filters.
|
|
198
|
+
* @returns the page and the load state.
|
|
199
|
+
*
|
|
200
|
+
* @extensionPoint hook
|
|
201
|
+
* @stability experimental
|
|
202
|
+
*/
|
|
203
|
+
export function useAlertIncidents(query = {}) {
|
|
204
|
+
const client = useAlertsApi();
|
|
205
|
+
const { state, severity, ruleId, page, pageSize } = query;
|
|
206
|
+
const load = useCallback(() => client.listIncidents({
|
|
207
|
+
...(state ? { state } : {}),
|
|
208
|
+
...(severity ? { severity } : {}),
|
|
209
|
+
...(ruleId ? { ruleId } : {}),
|
|
210
|
+
...(page === undefined ? {} : { page }),
|
|
211
|
+
...(pageSize === undefined ? {} : { pageSize }),
|
|
212
|
+
}), [client, state, severity, ruleId, page, pageSize]);
|
|
213
|
+
const { data, isLoading, error, refresh } = useLoad(load, 'Could not load the incidents.');
|
|
214
|
+
return {
|
|
215
|
+
incidents: data?.items ?? [],
|
|
216
|
+
total: data?.total ?? 0,
|
|
217
|
+
totalPages: data?.totalPages ?? 0,
|
|
218
|
+
isLoading,
|
|
219
|
+
error,
|
|
220
|
+
refresh,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* One incident (`GET /admin/alerts/incidents/:id`).
|
|
225
|
+
*
|
|
226
|
+
* @param id - the incident id, or `null` for none.
|
|
227
|
+
* @returns the incident and the load state.
|
|
228
|
+
*
|
|
229
|
+
* @extensionPoint hook
|
|
230
|
+
* @stability experimental
|
|
231
|
+
*/
|
|
232
|
+
export function useAlertIncident(id) {
|
|
233
|
+
const client = useAlertsApi();
|
|
234
|
+
const load = useMemo(() => (id ? () => client.getIncident(id) : null), [client, id]);
|
|
235
|
+
const { data, isLoading, error, refresh } = useLoad(load, 'Could not load the incident.');
|
|
236
|
+
return { incident: data, isLoading, error, refresh };
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* The firing summary (`GET /admin/alerts/summary`), polled every 30 seconds
|
|
240
|
+
* while the tab is visible.
|
|
241
|
+
*
|
|
242
|
+
* @param options - `enabled: false` skips the request (a viewer without
|
|
243
|
+
* `alerts:read`); `intervalMs` changes the poll (0 turns it off).
|
|
244
|
+
* @returns the summary and the load state.
|
|
245
|
+
*
|
|
246
|
+
* @extensionPoint hook
|
|
247
|
+
* @stability experimental
|
|
248
|
+
*/
|
|
249
|
+
export function useAlertSummary(options = {}) {
|
|
250
|
+
const enabled = options.enabled ?? true;
|
|
251
|
+
const intervalMs = options.intervalMs ?? SUMMARY_POLL_MS;
|
|
252
|
+
const client = useAlertsApi();
|
|
253
|
+
const load = useMemo(() => (enabled ? () => client.summary() : null), [client, enabled]);
|
|
254
|
+
const { data, isLoading, error, refresh } = useLoad(load, 'Could not load the alert summary.');
|
|
255
|
+
useVisibleInterval(() => void refresh(), enabled ? intervalMs : 0);
|
|
256
|
+
return { summary: data, isLoading, error, refresh };
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* The metrics the rule editor offers (`GET /admin/telemetry/schema`).
|
|
260
|
+
*
|
|
261
|
+
* @param options - `enabled: false` skips the request.
|
|
262
|
+
* @returns the metrics and the load state.
|
|
263
|
+
*
|
|
264
|
+
* @extensionPoint hook
|
|
265
|
+
* @stability experimental
|
|
266
|
+
*/
|
|
267
|
+
export function useAlertMetricCatalog(options = {}) {
|
|
268
|
+
const enabled = options.enabled ?? true;
|
|
269
|
+
const client = useAlertsApi();
|
|
270
|
+
const load = useMemo(() => (enabled ? () => client.metricCatalog() : null), [client, enabled]);
|
|
271
|
+
const { data, isLoading, error } = useLoad(load, 'The metric list is not available; type a metric name.');
|
|
272
|
+
return { metrics: data ?? [], isLoading, error };
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* The alerts writes, with one shared pending flag and error.
|
|
276
|
+
*
|
|
277
|
+
* @returns the actions and their state.
|
|
278
|
+
*
|
|
279
|
+
* @extensionPoint hook
|
|
280
|
+
* @stability experimental
|
|
281
|
+
*/
|
|
282
|
+
export function useAlertMutations() {
|
|
283
|
+
const client = useAlertsApi();
|
|
284
|
+
const mounted = useMounted();
|
|
285
|
+
const [pendingCount, setPendingCount] = useState(0);
|
|
286
|
+
const [error, setError] = useState(null);
|
|
287
|
+
const run = useCallback(async (call, fallback) => {
|
|
288
|
+
setPendingCount((count) => count + 1);
|
|
289
|
+
setError(null);
|
|
290
|
+
try {
|
|
291
|
+
return await call();
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
if (mounted())
|
|
295
|
+
setError(alertErrorMessage(err, fallback));
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
finally {
|
|
299
|
+
if (mounted())
|
|
300
|
+
setPendingCount((count) => count - 1);
|
|
301
|
+
}
|
|
302
|
+
}, [mounted]);
|
|
303
|
+
return {
|
|
304
|
+
create: useCallback((input) => run(() => client.createRule(input), 'The rule could not be created.'), [client, run]),
|
|
305
|
+
update: useCallback((id, patch) => run(() => client.updateRule(id, patch), 'The rule could not be saved.'), [client, run]),
|
|
306
|
+
toggle: useCallback((id, enabled) => run(() => client.updateRule(id, { enabled }), enabled ? 'The rule could not be enabled.' : 'The rule could not be disabled.'), [client, run]),
|
|
307
|
+
remove: useCallback(async (id) => (await run(async () => (await client.deleteRule(id), true), 'The rule could not be deleted.')) === true, [client, run]),
|
|
308
|
+
test: useCallback((id) => run(() => client.testRule(id), 'The rule could not be tested.'), [client, run]),
|
|
309
|
+
acknowledge: useCallback((id) => run(() => client.acknowledge(id), 'The incident could not be acknowledged.'), [client, run]),
|
|
310
|
+
pending: pendingCount > 0,
|
|
311
|
+
error,
|
|
312
|
+
reset: useCallback(() => setError(null), []),
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/alerts/headless/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { ALERTS_BASE_PATH, ALERTS_METRIC_CATALOG_PATH, createAlertsApi, metricCatalogFromSchema, } from './client.js';
|
|
2
|
+
export type { AlertIncidentPage, AlertIncidentsQuery, AlertMetricCatalogEntry, AlertRulesQuery, AlertsApi, } from './client.js';
|
|
3
|
+
export { ALERT_AGGREGATION_LABELS, ALERT_COMPARATOR_LABELS, ALERT_SEVERITY_LABELS, ALERT_SEVERITY_TONES, ALERT_STATE_LABELS, ALERT_STATE_TONES, alertFiringTotal, alertKindLabel, alertTopSeverity, formatAlertLabels, formatAlertSeconds, } from './format.js';
|
|
4
|
+
export type { AlertTone } from './format.js';
|
|
5
|
+
export { alertErrorMessage, useAlertIncident, useAlertIncidents, useAlertKinds, useAlertMetricCatalog, useAlertMutations, useAlertRule, useAlertRules, useAlertSummary, useAlertsApi, } from './hooks.js';
|
|
6
|
+
export type { AlertIncidentState, AlertIncidentsState, AlertKindsState, AlertMetricCatalogState, AlertMutations, AlertRuleState, AlertRulesState, AlertSummaryState, } from './hooks.js';
|
|
7
|
+
export { ALERT_FORM_KINDS, alertKindHasNoConfig, alertRuleDraftFromRule, buildAlertRuleConfig, buildAlertRulePayload, emptyAlertRuleDraft, } from './rule-draft.js';
|
|
8
|
+
export type { AlertAttrDraft, AlertRuleDraft, AlertRulePayloadResult, MetricThresholdDraft, NodeEventDraft, } from './rule-draft.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/alerts/headless/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// `@marinoscar/platform-web/alerts/headless`: the alerts client, hooks and pure
|
|
2
|
+
// helpers (issue #1047): rules, kinds, incidents, the firing summary, the
|
|
3
|
+
// metric catalog the rule editor picks from, the editor's draft model and
|
|
4
|
+
// alerts in words. No UI. Documented in ../README.md.
|
|
5
|
+
export { ALERTS_BASE_PATH, ALERTS_METRIC_CATALOG_PATH, createAlertsApi, metricCatalogFromSchema, } from './client.js';
|
|
6
|
+
export { ALERT_AGGREGATION_LABELS, ALERT_COMPARATOR_LABELS, ALERT_SEVERITY_LABELS, ALERT_SEVERITY_TONES, ALERT_STATE_LABELS, ALERT_STATE_TONES, alertFiringTotal, alertKindLabel, alertTopSeverity, formatAlertLabels, formatAlertSeconds, } from './format.js';
|
|
7
|
+
export { alertErrorMessage, useAlertIncident, useAlertIncidents, useAlertKinds, useAlertMetricCatalog, useAlertMutations, useAlertRule, useAlertRules, useAlertSummary, useAlertsApi, } from './hooks.js';
|
|
8
|
+
export { ALERT_FORM_KINDS, alertKindHasNoConfig, alertRuleDraftFromRule, buildAlertRuleConfig, buildAlertRulePayload, emptyAlertRuleDraft, } from './rule-draft.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/alerts/headless/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,0EAA0E;AAC1E,sDAAsD;AAEtD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AAWpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|