@burdenoff/microfe-bigconsole 2026.1007.10 → 2026.1007.11
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/bigconsole/assistant/displayCopy.d.ts +33 -0
- package/dist/bigconsole/assistant/displayCopy.d.ts.map +1 -0
- package/dist/bigconsole/assistant/pageContext.d.ts +14 -0
- package/dist/bigconsole/assistant/pageContext.d.ts.map +1 -1
- package/dist/bigconsole/assistant/pageContext.js +6 -1
- package/dist/bigconsole/assistant/pageContext.js.map +1 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +1 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.js +28 -27
- package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
- package/dist/bigconsole/constants/backendErrors.js +96 -0
- package/dist/bigconsole/constants/backendErrors.js.map +1 -0
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +23 -0
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +1 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.js +138 -113
- package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +1 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.js +53 -53
- package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +1 -1
- package/dist/bigconsole/utils/backendError.d.ts +18 -0
- package/dist/bigconsole/utils/backendError.d.ts.map +1 -1
- package/dist/bigconsole/utils/backendError.js +44 -0
- package/dist/bigconsole/utils/backendError.js.map +1 -0
- package/dist/bigconsole/workflowOpen.d.ts.map +1 -1
- package/dist/bigconsole/workflowOpen.js +15 -14
- package/dist/bigconsole/workflowOpen.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,221 +1,246 @@
|
|
|
1
1
|
import { BigConsoleDataSinkAlertChannelsDocument as e, BigConsoleDataSinkAlertExecutionsDocument as t, BigConsoleDataSinkAlertsDocument as n, BigConsoleDeleteDataSinkAlertDocument as r, BigConsolePreviewDataSinkAlertDocument as i, BigConsoleUpsertDataSinkAlertDocument as a } from "../../generated/wspace-operations.js";
|
|
2
|
-
import {
|
|
2
|
+
import { BACKEND_ERROR_MESSAGES as o } from "../constants/backendErrors.js";
|
|
3
|
+
import { graphQLErrorCodes as s } from "../utils/backendError.js";
|
|
4
|
+
import { useBigConsole as c } from "../context/BigConsoleContext.js";
|
|
3
5
|
import "../context/index.js";
|
|
4
|
-
import { useCallback as
|
|
5
|
-
import { useApolloClient as
|
|
6
|
+
import { useCallback as l, useEffect as u, useLayoutEffect as d, useRef as f, useState as p } from "react";
|
|
7
|
+
import { useApolloClient as m } from "@apollo/client/react";
|
|
6
8
|
//#region src/bigconsole/hooks/useDataSinkAlerts.ts
|
|
7
|
-
var
|
|
9
|
+
var h = {
|
|
8
10
|
owner: "",
|
|
9
11
|
sink: null,
|
|
10
12
|
channels: [],
|
|
11
13
|
loading: !1,
|
|
12
14
|
error: null,
|
|
15
|
+
errorCode: null,
|
|
13
16
|
channelError: null
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
}, g = (e) => e instanceof Error ? e.message : "The alert operation failed. Please try again.", _ = "DATASINK_NOT_FOUND", v = new Set([
|
|
18
|
+
_,
|
|
19
|
+
"E_DATASINK_NOT_FOUND",
|
|
20
|
+
"NOT_FOUND"
|
|
21
|
+
]), y = class extends Error {
|
|
22
|
+
code = _;
|
|
23
|
+
constructor() {
|
|
24
|
+
super("Data sink not found in this workspace."), this.name = "AlertSinkNotFoundError";
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
function b(e) {
|
|
28
|
+
return e instanceof y ? e.code : s(e)[0] ?? null;
|
|
29
|
+
}
|
|
30
|
+
function x(e, t) {
|
|
31
|
+
let { error: n, errorCode: r } = t;
|
|
32
|
+
return n === null || r !== null && v.has(r) ? e("bigconsole.alerts.notFound", "Data sink not found.") : r === null ? n : e(`bigconsole.errors.${r}`, o[r] ?? n);
|
|
33
|
+
}
|
|
34
|
+
function S(o, s) {
|
|
35
|
+
let _ = m(), { currentUser: v, workspaceId: x } = c(), S = `${v?.id ?? ""}|${x ?? ""}|${o}`, C = f(null);
|
|
36
|
+
d(() => (C.current = s ? S : null, () => {
|
|
37
|
+
C.current = null;
|
|
38
|
+
}), [S, s]);
|
|
39
|
+
let [w, T] = p(h), [E, D] = p(!1), O = l(() => ({
|
|
21
40
|
requiredWorkspaceAuth: !0,
|
|
22
|
-
requiredWorkspaceId:
|
|
41
|
+
requiredWorkspaceId: x,
|
|
23
42
|
queryDeduplication: !1
|
|
24
|
-
}), [
|
|
25
|
-
|
|
26
|
-
|
|
43
|
+
}), [x]), k = l(() => s && !!x && !!v?.id && C.current === S, [
|
|
44
|
+
s,
|
|
45
|
+
x,
|
|
27
46
|
v?.id,
|
|
28
|
-
|
|
29
|
-
]),
|
|
30
|
-
if (!
|
|
31
|
-
if (!e || e.id !==
|
|
32
|
-
return
|
|
33
|
-
...t.owner ===
|
|
34
|
-
owner:
|
|
35
|
-
sink: t.owner ===
|
|
47
|
+
S
|
|
48
|
+
]), A = l((e) => {
|
|
49
|
+
if (!k()) return null;
|
|
50
|
+
if (!e || e.id !== o || e.workspaceId !== x) throw new y();
|
|
51
|
+
return T((t) => ({
|
|
52
|
+
...t.owner === S ? t : h,
|
|
53
|
+
owner: S,
|
|
54
|
+
sink: t.owner === S && t.sink && t.sink.version > e.version ? t.sink : e,
|
|
36
55
|
loading: !1,
|
|
37
|
-
error: null
|
|
56
|
+
error: null,
|
|
57
|
+
errorCode: null
|
|
38
58
|
})), e;
|
|
39
59
|
}, [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
]),
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
...e.owner ===
|
|
48
|
-
owner:
|
|
60
|
+
k,
|
|
61
|
+
o,
|
|
62
|
+
x,
|
|
63
|
+
S
|
|
64
|
+
]), j = l(async () => {
|
|
65
|
+
if (k()) {
|
|
66
|
+
D(!0), T((e) => ({
|
|
67
|
+
...e.owner === S ? e : h,
|
|
68
|
+
owner: S,
|
|
49
69
|
loading: !e.sink,
|
|
50
|
-
error: null
|
|
70
|
+
error: null,
|
|
71
|
+
errorCode: null
|
|
51
72
|
}));
|
|
52
73
|
try {
|
|
53
|
-
return
|
|
74
|
+
return A((await _.query({
|
|
54
75
|
query: n,
|
|
55
|
-
variables: { dataSinkId:
|
|
76
|
+
variables: { dataSinkId: o },
|
|
56
77
|
fetchPolicy: "no-cache",
|
|
57
78
|
errorPolicy: "none",
|
|
58
|
-
context:
|
|
79
|
+
context: O()
|
|
59
80
|
})).data?.getDataSink);
|
|
60
81
|
} catch (e) {
|
|
61
|
-
|
|
82
|
+
k() && T((t) => ({
|
|
62
83
|
...t,
|
|
63
|
-
owner:
|
|
84
|
+
owner: S,
|
|
64
85
|
loading: !1,
|
|
65
|
-
error:
|
|
86
|
+
error: g(e),
|
|
87
|
+
errorCode: b(e)
|
|
66
88
|
}));
|
|
67
89
|
} finally {
|
|
68
|
-
|
|
90
|
+
k() && D(!1);
|
|
69
91
|
}
|
|
70
92
|
}
|
|
71
93
|
}, [
|
|
72
94
|
_,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
]),
|
|
79
|
-
if (
|
|
95
|
+
o,
|
|
96
|
+
S,
|
|
97
|
+
k,
|
|
98
|
+
A,
|
|
99
|
+
O
|
|
100
|
+
]), M = l(async () => {
|
|
101
|
+
if (k()) try {
|
|
80
102
|
let t = await _.query({
|
|
81
103
|
query: e,
|
|
82
|
-
variables: { dataSinkId:
|
|
104
|
+
variables: { dataSinkId: o },
|
|
83
105
|
fetchPolicy: "no-cache",
|
|
84
106
|
errorPolicy: "none",
|
|
85
|
-
context:
|
|
107
|
+
context: O()
|
|
86
108
|
});
|
|
87
109
|
if (!t.data) throw Error("Delivery channels did not load.");
|
|
88
110
|
let n = t.data.dataSinkAlertChannels;
|
|
89
|
-
|
|
90
|
-
...e.owner ===
|
|
91
|
-
owner:
|
|
111
|
+
k() && T((e) => ({
|
|
112
|
+
...e.owner === S ? e : h,
|
|
113
|
+
owner: S,
|
|
92
114
|
channels: n,
|
|
93
115
|
channelError: null
|
|
94
116
|
}));
|
|
95
117
|
} catch (e) {
|
|
96
|
-
|
|
118
|
+
k() && T((t) => ({
|
|
97
119
|
...t,
|
|
98
|
-
owner:
|
|
120
|
+
owner: S,
|
|
99
121
|
channels: [],
|
|
100
|
-
channelError:
|
|
122
|
+
channelError: g(e)
|
|
101
123
|
}));
|
|
102
124
|
}
|
|
103
125
|
}, [
|
|
104
126
|
_,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
])
|
|
110
|
-
|
|
127
|
+
o,
|
|
128
|
+
S,
|
|
129
|
+
k,
|
|
130
|
+
O
|
|
131
|
+
]), N = l(async () => {
|
|
132
|
+
await j() && await M();
|
|
133
|
+
}, [j, M]);
|
|
134
|
+
u(() => {
|
|
111
135
|
Promise.resolve().then(() => {
|
|
112
|
-
|
|
136
|
+
k() && N();
|
|
113
137
|
});
|
|
114
138
|
let e = window.setInterval(() => {
|
|
115
|
-
document.visibilityState === "visible" &&
|
|
139
|
+
document.visibilityState === "visible" && j();
|
|
116
140
|
}, 1e4);
|
|
117
141
|
return () => window.clearInterval(e);
|
|
118
142
|
}, [
|
|
119
|
-
D,
|
|
120
143
|
k,
|
|
121
|
-
|
|
144
|
+
j,
|
|
145
|
+
N
|
|
122
146
|
]);
|
|
123
|
-
let
|
|
124
|
-
if (!
|
|
125
|
-
return
|
|
147
|
+
let P = l(async (e, t) => {
|
|
148
|
+
if (!k()) throw Error("Workspace context changed. Reopen the alert.");
|
|
149
|
+
return A((await _.mutate({
|
|
126
150
|
mutation: a,
|
|
127
151
|
variables: {
|
|
128
|
-
dataSinkId:
|
|
152
|
+
dataSinkId: o,
|
|
129
153
|
alert: e,
|
|
130
154
|
expectedVersion: t
|
|
131
155
|
},
|
|
132
156
|
errorPolicy: "none",
|
|
133
|
-
context:
|
|
157
|
+
context: O()
|
|
134
158
|
})).data?.upsertDataSinkAlert);
|
|
135
159
|
}, [
|
|
136
160
|
_,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
]),
|
|
142
|
-
if (!
|
|
143
|
-
return
|
|
161
|
+
o,
|
|
162
|
+
k,
|
|
163
|
+
A,
|
|
164
|
+
O
|
|
165
|
+
]), F = l(async (e, t) => {
|
|
166
|
+
if (!k()) throw Error("Workspace context changed. Reopen the alert.");
|
|
167
|
+
return A((await _.mutate({
|
|
144
168
|
mutation: r,
|
|
145
169
|
variables: {
|
|
146
|
-
dataSinkId:
|
|
170
|
+
dataSinkId: o,
|
|
147
171
|
alertId: e,
|
|
148
172
|
expectedVersion: t
|
|
149
173
|
},
|
|
150
174
|
errorPolicy: "none",
|
|
151
|
-
context:
|
|
175
|
+
context: O()
|
|
152
176
|
})).data?.deleteDataSinkAlert);
|
|
153
177
|
}, [
|
|
154
178
|
_,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
]),
|
|
160
|
-
if (!
|
|
179
|
+
o,
|
|
180
|
+
k,
|
|
181
|
+
A,
|
|
182
|
+
O
|
|
183
|
+
]), I = l(async (e, t) => {
|
|
184
|
+
if (!k()) throw Error("Workspace context changed. Reopen the alert.");
|
|
161
185
|
let n = await _.query({
|
|
162
186
|
query: i,
|
|
163
187
|
variables: {
|
|
164
|
-
dataSinkId:
|
|
188
|
+
dataSinkId: o,
|
|
165
189
|
condition: e,
|
|
166
190
|
conditionType: t
|
|
167
191
|
},
|
|
168
192
|
fetchPolicy: "no-cache",
|
|
169
193
|
errorPolicy: "none",
|
|
170
|
-
context:
|
|
194
|
+
context: O()
|
|
171
195
|
});
|
|
172
|
-
if (!
|
|
196
|
+
if (!k()) return null;
|
|
173
197
|
if (!n.data) throw Error("Condition preview returned no result.");
|
|
174
198
|
return n.data.previewDataSinkAlert;
|
|
175
199
|
}, [
|
|
176
200
|
_,
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
]),
|
|
181
|
-
if (!
|
|
201
|
+
o,
|
|
202
|
+
k,
|
|
203
|
+
O
|
|
204
|
+
]), L = l(async (e, n) => {
|
|
205
|
+
if (!k()) return null;
|
|
182
206
|
let r = await _.query({
|
|
183
207
|
query: t,
|
|
184
208
|
variables: {
|
|
185
|
-
dataSinkId:
|
|
209
|
+
dataSinkId: o,
|
|
186
210
|
alertId: e,
|
|
187
211
|
after: n,
|
|
188
212
|
first: 21
|
|
189
213
|
},
|
|
190
214
|
fetchPolicy: "no-cache",
|
|
191
215
|
errorPolicy: "none",
|
|
192
|
-
context:
|
|
216
|
+
context: O()
|
|
193
217
|
});
|
|
194
|
-
if (!
|
|
218
|
+
if (!k()) return null;
|
|
195
219
|
if (!r.data) throw Error("Execution history returned no result.");
|
|
196
|
-
return r.data.dataSinkAlertExecutions.filter((e) => e.dataSinkId ===
|
|
220
|
+
return r.data.dataSinkAlertExecutions.filter((e) => e.dataSinkId === o);
|
|
197
221
|
}, [
|
|
198
222
|
_,
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
223
|
+
o,
|
|
224
|
+
k,
|
|
225
|
+
O
|
|
202
226
|
]);
|
|
203
227
|
return {
|
|
204
|
-
...
|
|
205
|
-
...
|
|
206
|
-
loading:
|
|
228
|
+
...w.owner === S ? w : {
|
|
229
|
+
...h,
|
|
230
|
+
loading: s
|
|
207
231
|
},
|
|
208
|
-
owner:
|
|
209
|
-
refreshing:
|
|
210
|
-
reload:
|
|
211
|
-
reloadChannels:
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
232
|
+
owner: S,
|
|
233
|
+
refreshing: E,
|
|
234
|
+
reload: j,
|
|
235
|
+
reloadChannels: M,
|
|
236
|
+
reloadSinkThenChannels: N,
|
|
237
|
+
save: P,
|
|
238
|
+
remove: F,
|
|
239
|
+
preview: I,
|
|
240
|
+
history: L
|
|
216
241
|
};
|
|
217
242
|
}
|
|
218
243
|
//#endregion
|
|
219
|
-
export {
|
|
244
|
+
export { g as alertErrorMessage, x as describeAlertLoadFailure, S as useDataSinkAlerts };
|
|
220
245
|
|
|
221
246
|
//# sourceMappingURL=useDataSinkAlerts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataSinkAlerts.js","names":[],"sources":["../../../src/bigconsole/hooks/useDataSinkAlerts.ts"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { useApolloClient } from '@apollo/client/react';\nimport { useBigConsole } from '../context';\nimport {\n BigConsoleDataSinkAlertsDocument,\n BigConsoleDataSinkAlertChannelsDocument,\n BigConsoleDataSinkAlertExecutionsDocument,\n BigConsolePreviewDataSinkAlertDocument,\n BigConsoleUpsertDataSinkAlertDocument,\n BigConsoleDeleteDataSinkAlertDocument,\n type BigConsoleDataSinkAlertsQuery,\n type BigConsoleDataSinkAlertChannelsQuery,\n type BigConsoleDataSinkAlertExecutionsQuery,\n type BigConsolePreviewDataSinkAlertQuery,\n type BigConsoleUpsertDataSinkAlertMutation,\n type BigConsoleDeleteDataSinkAlertMutation,\n} from '../../generated/wspace-operations';\nimport type { DataSinkAlertInput, DataSinkAlertConditionType } from '../../generated/wspace-types';\n\nexport type AlertSink = NonNullable<BigConsoleDataSinkAlertsQuery['getDataSink']>;\nexport type AlertRule = NonNullable<AlertSink['alerts']>[number];\nexport type AlertChannel = BigConsoleDataSinkAlertChannelsQuery['dataSinkAlertChannels'][number];\nexport type AlertExecution = BigConsoleDataSinkAlertExecutionsQuery['dataSinkAlertExecutions'][number];\nexport type AlertPreview = BigConsolePreviewDataSinkAlertQuery['previewDataSinkAlert'];\n\ninterface AlertState {\n owner: string;\n sink: AlertSink | null;\n channels: AlertChannel[];\n loading: boolean;\n error: string | null;\n channelError: string | null;\n}\nconst EMPTY: AlertState = { owner: '', sink: null, channels: [], loading: false, error: null, channelError: null };\nexport const alertErrorMessage = (error: unknown): string =>\n error instanceof Error ? error.message : 'The alert operation failed. Please try again.';\n\n/** Every read and write uses the selected workspace; late requests cannot populate a new owner. */\nexport function useDataSinkAlerts(dataSinkId: string, enabled: boolean) {\n const client = useApolloClient();\n const { currentUser, workspaceId } = useBigConsole();\n const owner = `${currentUser?.id ?? ''}|${workspaceId ?? ''}|${dataSinkId}`;\n const activeOwner = useRef<string | null>(null);\n useLayoutEffect(() => {\n activeOwner.current = enabled ? owner : null;\n return () => {\n activeOwner.current = null;\n };\n }, [owner, enabled]);\n const [state, setState] = useState<AlertState>(EMPTY);\n const [refreshing, setRefreshing] = useState(false);\n const context = useCallback(\n () => ({ requiredWorkspaceAuth: true, requiredWorkspaceId: workspaceId, queryDeduplication: false }),\n [workspaceId]\n );\n const ownsRequest = useCallback(\n () => enabled && !!workspaceId && !!currentUser?.id && activeOwner.current === owner,\n [enabled, workspaceId, currentUser?.id, owner]\n );\n const acceptSink = useCallback(\n (sink: AlertSink | null | undefined) => {\n if (!ownsRequest()) return null;\n if (!sink || sink.id !== dataSinkId || sink.workspaceId !== workspaceId)\n throw new Error('Data sink not found in this workspace.');\n setState((previous) => ({\n ...(previous.owner === owner ? previous : EMPTY),\n owner,\n sink: previous.owner === owner && previous.sink && previous.sink.version > sink.version ? previous.sink : sink,\n loading: false,\n error: null,\n }));\n return sink;\n },\n [ownsRequest, dataSinkId, workspaceId, owner]\n );\n const reload = useCallback(async () => {\n if (!ownsRequest()) return;\n setRefreshing(true);\n setState((previous) => ({\n ...(previous.owner === owner ? previous : EMPTY),\n owner,\n loading: !previous.sink,\n error: null,\n }));\n try {\n const result = await client.query<BigConsoleDataSinkAlertsQuery>({\n query: BigConsoleDataSinkAlertsDocument,\n variables: { dataSinkId },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n return acceptSink(result.data?.getDataSink);\n } catch (error) {\n if (ownsRequest())\n setState((previous) => ({ ...previous, owner, loading: false, error: alertErrorMessage(error) }));\n } finally {\n if (ownsRequest()) setRefreshing(false);\n }\n }, [client, dataSinkId, owner, ownsRequest, acceptSink, context]);\n const reloadChannels = useCallback(async () => {\n if (!ownsRequest()) return;\n try {\n const result = await client.query<BigConsoleDataSinkAlertChannelsQuery>({\n query: BigConsoleDataSinkAlertChannelsDocument,\n variables: { dataSinkId },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n if (!result.data) throw new Error('Delivery channels did not load.');\n const channels = result.data.dataSinkAlertChannels;\n if (ownsRequest())\n setState((previous) => ({\n ...(previous.owner === owner ? previous : EMPTY),\n owner,\n channels,\n channelError: null,\n }));\n } catch (error) {\n if (ownsRequest())\n setState((previous) => ({ ...previous, owner, channels: [], channelError: alertErrorMessage(error) }));\n }\n }, [client, dataSinkId, owner, ownsRequest, context]);\n useEffect(() => {\n void Promise.resolve().then(() => {\n if (ownsRequest()) {\n void reload();\n void reloadChannels();\n }\n });\n const timer = window.setInterval(() => {\n if (document.visibilityState === 'visible') void reload();\n }, 10000);\n return () => window.clearInterval(timer);\n }, [ownsRequest, reload, reloadChannels]);\n const save = useCallback(\n async (alert: DataSinkAlertInput, expectedVersion: number) => {\n if (!ownsRequest()) throw new Error('Workspace context changed. Reopen the alert.');\n const result = await client.mutate<BigConsoleUpsertDataSinkAlertMutation>({\n mutation: BigConsoleUpsertDataSinkAlertDocument,\n variables: { dataSinkId, alert, expectedVersion },\n errorPolicy: 'none',\n context: context(),\n });\n return acceptSink(result.data?.upsertDataSinkAlert);\n },\n [client, dataSinkId, ownsRequest, acceptSink, context]\n );\n const remove = useCallback(\n async (alertId: string, expectedVersion: number) => {\n if (!ownsRequest()) throw new Error('Workspace context changed. Reopen the alert.');\n const result = await client.mutate<BigConsoleDeleteDataSinkAlertMutation>({\n mutation: BigConsoleDeleteDataSinkAlertDocument,\n variables: { dataSinkId, alertId, expectedVersion },\n errorPolicy: 'none',\n context: context(),\n });\n return acceptSink(result.data?.deleteDataSinkAlert);\n },\n [client, dataSinkId, ownsRequest, acceptSink, context]\n );\n const preview = useCallback(\n async (condition: string, conditionType: DataSinkAlertConditionType) => {\n if (!ownsRequest()) throw new Error('Workspace context changed. Reopen the alert.');\n const result = await client.query<BigConsolePreviewDataSinkAlertQuery>({\n query: BigConsolePreviewDataSinkAlertDocument,\n variables: { dataSinkId, condition, conditionType },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n if (!ownsRequest()) return null;\n if (!result.data) throw new Error('Condition preview returned no result.');\n return result.data.previewDataSinkAlert;\n },\n [client, dataSinkId, ownsRequest, context]\n );\n const history = useCallback(\n async (alertId?: string, after?: string) => {\n if (!ownsRequest()) return null;\n const result = await client.query<BigConsoleDataSinkAlertExecutionsQuery>({\n query: BigConsoleDataSinkAlertExecutionsDocument,\n variables: { dataSinkId, alertId, after, first: 21 },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n if (!ownsRequest()) return null;\n if (!result.data) throw new Error('Execution history returned no result.');\n return result.data.dataSinkAlertExecutions.filter((row) => row.dataSinkId === dataSinkId);\n },\n [client, dataSinkId, ownsRequest, context]\n );\n return {\n ...(state.owner === owner ? state : { ...EMPTY, loading: enabled }),\n owner,\n refreshing,\n reload,\n reloadChannels,\n save,\n remove,\n preview,\n history,\n };\n}\n"],"mappings":";;;;;;AAiCA,IAAM,IAAoB;CAAE,OAAO;CAAI,MAAM;CAAM,UAAU,EAAE;CAAE,SAAS;CAAO,OAAO;CAAM,cAAc;CAAM,EACrG,KAAqB,MAChC,aAAiB,QAAQ,EAAM,UAAU;AAG3C,SAAgB,EAAkB,GAAoB,GAAkB;CACtE,IAAM,IAAS,GAAiB,EAC1B,EAAE,gBAAa,mBAAgB,GAAe,EAC9C,IAAQ,GAAG,GAAa,MAAM,GAAG,GAAG,KAAe,GAAG,GAAG,KACzD,IAAc,EAAsB,KAAK;AAC/C,UACE,EAAY,UAAU,IAAU,IAAQ,YAC3B;AACX,IAAY,UAAU;KAEvB,CAAC,GAAO,EAAQ,CAAC;CACpB,IAAM,CAAC,GAAO,KAAY,EAAqB,EAAM,EAC/C,CAAC,GAAY,KAAiB,EAAS,GAAM,EAC7C,IAAU,SACP;EAAE,uBAAuB;EAAM,qBAAqB;EAAa,oBAAoB;EAAO,GACnG,CAAC,EAAY,CACd,EACK,IAAc,QACZ,KAAW,CAAC,CAAC,KAAe,CAAC,CAAC,GAAa,MAAM,EAAY,YAAY,GAC/E;EAAC;EAAS;EAAa,GAAa;EAAI;EAAM,CAC/C,EACK,IAAa,GAChB,MAAuC;AACtC,MAAI,CAAC,GAAa,CAAE,QAAO;AAC3B,MAAI,CAAC,KAAQ,EAAK,OAAO,KAAc,EAAK,gBAAgB,EAC1D,OAAU,MAAM,yCAAyC;AAQ3D,SAPA,GAAU,OAAc;GACtB,GAAI,EAAS,UAAU,IAAQ,IAAW;GAC1C;GACA,MAAM,EAAS,UAAU,KAAS,EAAS,QAAQ,EAAS,KAAK,UAAU,EAAK,UAAU,EAAS,OAAO;GAC1G,SAAS;GACT,OAAO;GACR,EAAE,EACI;IAET;EAAC;EAAa;EAAY;EAAa;EAAM,CAC9C,EACK,IAAS,EAAY,YAAY;AAChC,SAAa,EAElB;GADA,EAAc,GAAK,EACnB,GAAU,OAAc;IACtB,GAAI,EAAS,UAAU,IAAQ,IAAW;IAC1C;IACA,SAAS,CAAC,EAAS;IACnB,OAAO;IACR,EAAE;AACH,OAAI;AAQF,WAAO,GAPQ,MAAM,EAAO,MAAqC;KAC/D,OAAO;KACP,WAAW,EAAE,eAAY;KACzB,aAAa;KACb,aAAa;KACb,SAAS,GAAS;KACnB,CAAC,EACuB,MAAM,YAAY;YACpC,GAAO;AACd,IAAI,GAAa,IACf,GAAU,OAAc;KAAE,GAAG;KAAU;KAAO,SAAS;KAAO,OAAO,EAAkB,EAAM;KAAE,EAAE;aAC3F;AACR,IAAI,GAAa,IAAE,EAAc,GAAM;;;IAExC;EAAC;EAAQ;EAAY;EAAO;EAAa;EAAY;EAAQ,CAAC,EAC3D,IAAiB,EAAY,YAAY;AACxC,SAAa,CAClB,KAAI;GACF,IAAM,IAAS,MAAM,EAAO,MAA4C;IACtE,OAAO;IACP,WAAW,EAAE,eAAY;IACzB,aAAa;IACb,aAAa;IACb,SAAS,GAAS;IACnB,CAAC;AACF,OAAI,CAAC,EAAO,KAAM,OAAU,MAAM,kCAAkC;GACpE,IAAM,IAAW,EAAO,KAAK;AAC7B,GAAI,GAAa,IACf,GAAU,OAAc;IACtB,GAAI,EAAS,UAAU,IAAQ,IAAW;IAC1C;IACA;IACA,cAAc;IACf,EAAE;WACE,GAAO;AACd,GAAI,GAAa,IACf,GAAU,OAAc;IAAE,GAAG;IAAU;IAAO,UAAU,EAAE;IAAE,cAAc,EAAkB,EAAM;IAAE,EAAE;;IAEzG;EAAC;EAAQ;EAAY;EAAO;EAAa;EAAQ,CAAC;AACrD,SAAgB;AACT,UAAQ,SAAS,CAAC,WAAW;AAChC,GAAI,GAAa,KACV,GAAQ,EACR,GAAgB;IAEvB;EACF,IAAM,IAAQ,OAAO,kBAAkB;AACrC,GAAI,SAAS,oBAAoB,aAAgB,GAAQ;KACxD,IAAM;AACT,eAAa,OAAO,cAAc,EAAM;IACvC;EAAC;EAAa;EAAQ;EAAe,CAAC;CACzC,IAAM,IAAO,EACX,OAAO,GAA2B,MAA4B;AAC5D,MAAI,CAAC,GAAa,CAAE,OAAU,MAAM,+CAA+C;AAOnF,SAAO,GANQ,MAAM,EAAO,OAA8C;GACxE,UAAU;GACV,WAAW;IAAE;IAAY;IAAO;IAAiB;GACjD,aAAa;GACb,SAAS,GAAS;GACnB,CAAC,EACuB,MAAM,oBAAoB;IAErD;EAAC;EAAQ;EAAY;EAAa;EAAY;EAAQ,CACvD,EACK,IAAS,EACb,OAAO,GAAiB,MAA4B;AAClD,MAAI,CAAC,GAAa,CAAE,OAAU,MAAM,+CAA+C;AAOnF,SAAO,GANQ,MAAM,EAAO,OAA8C;GACxE,UAAU;GACV,WAAW;IAAE;IAAY;IAAS;IAAiB;GACnD,aAAa;GACb,SAAS,GAAS;GACnB,CAAC,EACuB,MAAM,oBAAoB;IAErD;EAAC;EAAQ;EAAY;EAAa;EAAY;EAAQ,CACvD,EACK,IAAU,EACd,OAAO,GAAmB,MAA8C;AACtE,MAAI,CAAC,GAAa,CAAE,OAAU,MAAM,+CAA+C;EACnF,IAAM,IAAS,MAAM,EAAO,MAA2C;GACrE,OAAO;GACP,WAAW;IAAE;IAAY;IAAW;IAAe;GACnD,aAAa;GACb,aAAa;GACb,SAAS,GAAS;GACnB,CAAC;AACF,MAAI,CAAC,GAAa,CAAE,QAAO;AAC3B,MAAI,CAAC,EAAO,KAAM,OAAU,MAAM,wCAAwC;AAC1E,SAAO,EAAO,KAAK;IAErB;EAAC;EAAQ;EAAY;EAAa;EAAQ,CAC3C,EACK,IAAU,EACd,OAAO,GAAkB,MAAmB;AAC1C,MAAI,CAAC,GAAa,CAAE,QAAO;EAC3B,IAAM,IAAS,MAAM,EAAO,MAA8C;GACxE,OAAO;GACP,WAAW;IAAE;IAAY;IAAS;IAAO,OAAO;IAAI;GACpD,aAAa;GACb,aAAa;GACb,SAAS,GAAS;GACnB,CAAC;AACF,MAAI,CAAC,GAAa,CAAE,QAAO;AAC3B,MAAI,CAAC,EAAO,KAAM,OAAU,MAAM,wCAAwC;AAC1E,SAAO,EAAO,KAAK,wBAAwB,QAAQ,MAAQ,EAAI,eAAe,EAAW;IAE3F;EAAC;EAAQ;EAAY;EAAa;EAAQ,CAC3C;AACD,QAAO;EACL,GAAI,EAAM,UAAU,IAAQ,IAAQ;GAAE,GAAG;GAAO,SAAS;GAAS;EAClE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
1
|
+
{"version":3,"file":"useDataSinkAlerts.js","names":[],"sources":["../../../src/bigconsole/hooks/useDataSinkAlerts.ts"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { useApolloClient } from '@apollo/client/react';\nimport { useBigConsole } from '../context';\nimport {\n BigConsoleDataSinkAlertsDocument,\n BigConsoleDataSinkAlertChannelsDocument,\n BigConsoleDataSinkAlertExecutionsDocument,\n BigConsolePreviewDataSinkAlertDocument,\n BigConsoleUpsertDataSinkAlertDocument,\n BigConsoleDeleteDataSinkAlertDocument,\n type BigConsoleDataSinkAlertsQuery,\n type BigConsoleDataSinkAlertChannelsQuery,\n type BigConsoleDataSinkAlertExecutionsQuery,\n type BigConsolePreviewDataSinkAlertQuery,\n type BigConsoleUpsertDataSinkAlertMutation,\n type BigConsoleDeleteDataSinkAlertMutation,\n} from '../../generated/wspace-operations';\nimport type { DataSinkAlertInput, DataSinkAlertConditionType } from '../../generated/wspace-types';\nimport { BACKEND_ERROR_MESSAGES } from '../constants/backendErrors';\nimport { graphQLErrorCodes } from '../utils/backendError';\n\nexport type AlertSink = NonNullable<BigConsoleDataSinkAlertsQuery['getDataSink']>;\nexport type AlertRule = NonNullable<AlertSink['alerts']>[number];\nexport type AlertChannel = BigConsoleDataSinkAlertChannelsQuery['dataSinkAlertChannels'][number];\nexport type AlertExecution = BigConsoleDataSinkAlertExecutionsQuery['dataSinkAlertExecutions'][number];\nexport type AlertPreview = BigConsolePreviewDataSinkAlertQuery['previewDataSinkAlert'];\n\ninterface AlertState {\n owner: string;\n sink: AlertSink | null;\n channels: AlertChannel[];\n loading: boolean;\n error: string | null;\n /** The first GraphQL `extensions.code` behind `error`, or the client's own not-found marker. */\n errorCode: string | null;\n channelError: string | null;\n}\nconst EMPTY: AlertState = {\n owner: '',\n sink: null,\n channels: [],\n loading: false,\n error: null,\n errorCode: null,\n channelError: null,\n};\nexport const alertErrorMessage = (error: unknown): string =>\n error instanceof Error ? error.message : 'The alert operation failed. Please try again.';\n\n/**\n * \"This data sink is not here\": the client's own check (`getDataSink` answers\n * `null`, or a sink from another workspace) and the server's codes for it.\n */\nexport const ALERT_SINK_NOT_FOUND = 'DATASINK_NOT_FOUND';\nconst SINK_NOT_FOUND_CODES: ReadonlySet<string> = new Set([ALERT_SINK_NOT_FOUND, 'E_DATASINK_NOT_FOUND', 'NOT_FOUND']);\n\nclass AlertSinkNotFoundError extends Error {\n readonly code = ALERT_SINK_NOT_FOUND;\n constructor() {\n super('Data sink not found in this workspace.');\n this.name = 'AlertSinkNotFoundError';\n }\n}\n\nfunction alertErrorCode(error: unknown): string | null {\n if (error instanceof AlertSinkNotFoundError) return error.code;\n return graphQLErrorCodes(error)[0] ?? null;\n}\n\ntype Translate = (key: string, fallback: string) => string;\n\n/**\n * What the alerts page says when the data sink could not be loaded\n * (BOFF-8060 i18n B3). The server's English never wins over a keyed string:\n *\n * - not found (or nothing recorded) → `bigconsole.alerts.notFound`;\n * - a coded failure → `bigconsole.errors.<CODE>`, the catalog the rest of\n * BigConsole localizes backend errors with;\n * - only an uncoded failure falls back to its raw message, which has no key.\n */\nexport function describeAlertLoadFailure(\n t: Translate,\n failure: { error: string | null; errorCode: string | null }\n): string {\n const { error, errorCode } = failure;\n if (error === null || (errorCode !== null && SINK_NOT_FOUND_CODES.has(errorCode)))\n return t('bigconsole.alerts.notFound', 'Data sink not found.');\n if (errorCode !== null) return t(`bigconsole.errors.${errorCode}`, BACKEND_ERROR_MESSAGES[errorCode] ?? error);\n return error;\n}\n\n/** Every read and write uses the selected workspace; late requests cannot populate a new owner. */\nexport function useDataSinkAlerts(dataSinkId: string, enabled: boolean) {\n const client = useApolloClient();\n const { currentUser, workspaceId } = useBigConsole();\n const owner = `${currentUser?.id ?? ''}|${workspaceId ?? ''}|${dataSinkId}`;\n const activeOwner = useRef<string | null>(null);\n useLayoutEffect(() => {\n activeOwner.current = enabled ? owner : null;\n return () => {\n activeOwner.current = null;\n };\n }, [owner, enabled]);\n const [state, setState] = useState<AlertState>(EMPTY);\n const [refreshing, setRefreshing] = useState(false);\n const context = useCallback(\n () => ({ requiredWorkspaceAuth: true, requiredWorkspaceId: workspaceId, queryDeduplication: false }),\n [workspaceId]\n );\n const ownsRequest = useCallback(\n () => enabled && !!workspaceId && !!currentUser?.id && activeOwner.current === owner,\n [enabled, workspaceId, currentUser?.id, owner]\n );\n const acceptSink = useCallback(\n (sink: AlertSink | null | undefined) => {\n if (!ownsRequest()) return null;\n if (!sink || sink.id !== dataSinkId || sink.workspaceId !== workspaceId) throw new AlertSinkNotFoundError();\n setState((previous) => ({\n ...(previous.owner === owner ? previous : EMPTY),\n owner,\n sink: previous.owner === owner && previous.sink && previous.sink.version > sink.version ? previous.sink : sink,\n loading: false,\n error: null,\n errorCode: null,\n }));\n return sink;\n },\n [ownsRequest, dataSinkId, workspaceId, owner]\n );\n const reload = useCallback(async () => {\n if (!ownsRequest()) return;\n setRefreshing(true);\n setState((previous) => ({\n ...(previous.owner === owner ? previous : EMPTY),\n owner,\n loading: !previous.sink,\n error: null,\n errorCode: null,\n }));\n try {\n const result = await client.query<BigConsoleDataSinkAlertsQuery>({\n query: BigConsoleDataSinkAlertsDocument,\n variables: { dataSinkId },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n return acceptSink(result.data?.getDataSink);\n } catch (error) {\n if (ownsRequest())\n setState((previous) => ({\n ...previous,\n owner,\n loading: false,\n error: alertErrorMessage(error),\n errorCode: alertErrorCode(error),\n }));\n } finally {\n if (ownsRequest()) setRefreshing(false);\n }\n }, [client, dataSinkId, owner, ownsRequest, acceptSink, context]);\n const reloadChannels = useCallback(async () => {\n if (!ownsRequest()) return;\n try {\n const result = await client.query<BigConsoleDataSinkAlertChannelsQuery>({\n query: BigConsoleDataSinkAlertChannelsDocument,\n variables: { dataSinkId },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n if (!result.data) throw new Error('Delivery channels did not load.');\n const channels = result.data.dataSinkAlertChannels;\n if (ownsRequest())\n setState((previous) => ({\n ...(previous.owner === owner ? previous : EMPTY),\n owner,\n channels,\n channelError: null,\n }));\n } catch (error) {\n if (ownsRequest())\n setState((previous) => ({ ...previous, owner, channels: [], channelError: alertErrorMessage(error) }));\n }\n }, [client, dataSinkId, owner, ownsRequest, context]);\n /**\n * The sink first, its delivery channels only once it exists (BOFF-8060 i18n\n * B3). `dataSinkAlertChannels` answers an unknown sink with the server's\n * English \"DataSink with ID … not found\", which the shell turns into an\n * error toast on top of the page's own keyed not-found message. Asking only\n * for a sink we hold means an unknown id gets the one localized message.\n */\n const reloadSinkThenChannels = useCallback(async () => {\n const sink = await reload();\n if (sink) await reloadChannels();\n }, [reload, reloadChannels]);\n useEffect(() => {\n void Promise.resolve().then(() => {\n if (ownsRequest()) void reloadSinkThenChannels();\n });\n const timer = window.setInterval(() => {\n if (document.visibilityState === 'visible') void reload();\n }, 10000);\n return () => window.clearInterval(timer);\n }, [ownsRequest, reload, reloadSinkThenChannels]);\n const save = useCallback(\n async (alert: DataSinkAlertInput, expectedVersion: number) => {\n if (!ownsRequest()) throw new Error('Workspace context changed. Reopen the alert.');\n const result = await client.mutate<BigConsoleUpsertDataSinkAlertMutation>({\n mutation: BigConsoleUpsertDataSinkAlertDocument,\n variables: { dataSinkId, alert, expectedVersion },\n errorPolicy: 'none',\n context: context(),\n });\n return acceptSink(result.data?.upsertDataSinkAlert);\n },\n [client, dataSinkId, ownsRequest, acceptSink, context]\n );\n const remove = useCallback(\n async (alertId: string, expectedVersion: number) => {\n if (!ownsRequest()) throw new Error('Workspace context changed. Reopen the alert.');\n const result = await client.mutate<BigConsoleDeleteDataSinkAlertMutation>({\n mutation: BigConsoleDeleteDataSinkAlertDocument,\n variables: { dataSinkId, alertId, expectedVersion },\n errorPolicy: 'none',\n context: context(),\n });\n return acceptSink(result.data?.deleteDataSinkAlert);\n },\n [client, dataSinkId, ownsRequest, acceptSink, context]\n );\n const preview = useCallback(\n async (condition: string, conditionType: DataSinkAlertConditionType) => {\n if (!ownsRequest()) throw new Error('Workspace context changed. Reopen the alert.');\n const result = await client.query<BigConsolePreviewDataSinkAlertQuery>({\n query: BigConsolePreviewDataSinkAlertDocument,\n variables: { dataSinkId, condition, conditionType },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n if (!ownsRequest()) return null;\n if (!result.data) throw new Error('Condition preview returned no result.');\n return result.data.previewDataSinkAlert;\n },\n [client, dataSinkId, ownsRequest, context]\n );\n const history = useCallback(\n async (alertId?: string, after?: string) => {\n if (!ownsRequest()) return null;\n const result = await client.query<BigConsoleDataSinkAlertExecutionsQuery>({\n query: BigConsoleDataSinkAlertExecutionsDocument,\n variables: { dataSinkId, alertId, after, first: 21 },\n fetchPolicy: 'no-cache',\n errorPolicy: 'none',\n context: context(),\n });\n if (!ownsRequest()) return null;\n if (!result.data) throw new Error('Execution history returned no result.');\n return result.data.dataSinkAlertExecutions.filter((row) => row.dataSinkId === dataSinkId);\n },\n [client, dataSinkId, ownsRequest, context]\n );\n return {\n ...(state.owner === owner ? state : { ...EMPTY, loading: enabled }),\n owner,\n refreshing,\n reload,\n reloadChannels,\n reloadSinkThenChannels,\n save,\n remove,\n preview,\n history,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSinkAlertsPage.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/pages/DataSinkAlertsPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataSinkAlertsPage.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/pages/DataSinkAlertsPage.tsx"],"names":[],"mappings":"AAyCA,MAAM,CAAC,OAAO,UAAU,kBAAkB,gCASzC"}
|