@burdenoff/microfe-bigconsole 2026.1004.7 → 2026.1005.1

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 (49) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.d.ts +7 -1
  2. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -1
  3. package/dist/bigconsole/BigConsoleRoutes.js +154 -144
  4. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  5. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +11 -0
  6. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +1 -0
  7. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +248 -0
  8. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +1 -0
  9. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +23 -0
  10. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +1 -0
  11. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +357 -0
  12. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +1 -0
  13. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +25 -0
  14. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +1 -0
  15. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +89 -0
  16. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +1 -0
  17. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +146 -0
  18. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +1 -0
  19. package/dist/bigconsole/hooks/useDataSinkAlerts.js +221 -0
  20. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +1 -0
  21. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +2 -0
  22. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +1 -0
  23. package/dist/bigconsole/pages/DataSinkAlertsPage.js +422 -0
  24. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +1 -0
  25. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -1
  26. package/dist/bigconsole/pages/DataSinkViewPage.js +151 -144
  27. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  28. package/dist/bigconsole/pages/WorkflowViewPage.js +4 -4
  29. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +1 -1
  30. package/dist/bigconsole/pages/WorkflowsPage.js +61 -60
  31. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  32. package/dist/bigconsole/utils/alertRules.d.ts +40 -0
  33. package/dist/bigconsole/utils/alertRules.d.ts.map +1 -0
  34. package/dist/bigconsole/utils/alertRules.js +83 -0
  35. package/dist/bigconsole/utils/alertRules.js.map +1 -0
  36. package/dist/bigconsole/workflowOpen.d.ts +78 -0
  37. package/dist/bigconsole/workflowOpen.d.ts.map +1 -0
  38. package/dist/bigconsole/workflowOpen.js +33 -0
  39. package/dist/bigconsole/workflowOpen.js.map +1 -0
  40. package/dist/generated/wspace-operations.d.ts +418 -0
  41. package/dist/generated/wspace-operations.d.ts.map +1 -1
  42. package/dist/generated/wspace-operations.js +329 -200
  43. package/dist/generated/wspace-operations.js.map +1 -1
  44. package/dist/generated/wspace-types.d.ts +122 -0
  45. package/dist/generated/wspace-types.d.ts.map +1 -1
  46. package/dist/generated/wspace-types.js +7 -1
  47. package/dist/generated/wspace-types.js.map +1 -1
  48. package/dist/translations/en.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,146 @@
1
+ import { BigConsoleDataSinkAlertsQuery, BigConsoleDataSinkAlertChannelsQuery, BigConsoleDataSinkAlertExecutionsQuery, BigConsolePreviewDataSinkAlertQuery } from '../../generated/wspace-operations';
2
+ import { DataSinkAlertInput, DataSinkAlertConditionType } from '../../generated/wspace-types';
3
+
4
+ export type AlertSink = NonNullable<BigConsoleDataSinkAlertsQuery['getDataSink']>;
5
+ export type AlertRule = NonNullable<AlertSink['alerts']>[number];
6
+ export type AlertChannel = BigConsoleDataSinkAlertChannelsQuery['dataSinkAlertChannels'][number];
7
+ export type AlertExecution = BigConsoleDataSinkAlertExecutionsQuery['dataSinkAlertExecutions'][number];
8
+ export type AlertPreview = BigConsolePreviewDataSinkAlertQuery['previewDataSinkAlert'];
9
+ export declare const alertErrorMessage: (error: unknown) => string;
10
+ /** Every read and write uses the selected workspace; late requests cannot populate a new owner. */
11
+ export declare function useDataSinkAlerts(dataSinkId: string, enabled: boolean): {
12
+ owner: string;
13
+ refreshing: boolean;
14
+ reload: () => Promise<{
15
+ __typename?: "DataSink";
16
+ id: string;
17
+ workspaceId: string;
18
+ name?: string | null;
19
+ key: string;
20
+ version: number;
21
+ alerts?: Array<{
22
+ __typename?: "DataSinkAlert";
23
+ id: string;
24
+ name: string;
25
+ condition: string;
26
+ conditionType: DataSinkAlertConditionType;
27
+ severity: import('../../generated/wspace-types').AlertSeverity;
28
+ channels: Array<string>;
29
+ recipients: Array<string>;
30
+ enabled: boolean;
31
+ throttle?: {
32
+ __typename?: "AlertThrottle";
33
+ enabled: boolean;
34
+ windowMinutes: number;
35
+ maxAlertsPerWindow: number;
36
+ } | null;
37
+ deliveries: Array<{
38
+ __typename?: "DataSinkAlertDelivery";
39
+ channel: import('../../generated/wspace-types').DataSinkAlertChannel;
40
+ channelId: string;
41
+ recipient: string;
42
+ }>;
43
+ }> | null;
44
+ } | null | undefined>;
45
+ reloadChannels: () => Promise<void>;
46
+ save: (alert: DataSinkAlertInput, expectedVersion: number) => Promise<{
47
+ __typename?: "DataSink";
48
+ id: string;
49
+ workspaceId: string;
50
+ name?: string | null;
51
+ key: string;
52
+ version: number;
53
+ alerts?: Array<{
54
+ __typename?: "DataSinkAlert";
55
+ id: string;
56
+ name: string;
57
+ condition: string;
58
+ conditionType: DataSinkAlertConditionType;
59
+ severity: import('../../generated/wspace-types').AlertSeverity;
60
+ channels: Array<string>;
61
+ recipients: Array<string>;
62
+ enabled: boolean;
63
+ throttle?: {
64
+ __typename?: "AlertThrottle";
65
+ enabled: boolean;
66
+ windowMinutes: number;
67
+ maxAlertsPerWindow: number;
68
+ } | null;
69
+ deliveries: Array<{
70
+ __typename?: "DataSinkAlertDelivery";
71
+ channel: import('../../generated/wspace-types').DataSinkAlertChannel;
72
+ channelId: string;
73
+ recipient: string;
74
+ }>;
75
+ }> | null;
76
+ } | null>;
77
+ remove: (alertId: string, expectedVersion: number) => Promise<{
78
+ __typename?: "DataSink";
79
+ id: string;
80
+ workspaceId: string;
81
+ name?: string | null;
82
+ key: string;
83
+ version: number;
84
+ alerts?: Array<{
85
+ __typename?: "DataSinkAlert";
86
+ id: string;
87
+ name: string;
88
+ condition: string;
89
+ conditionType: DataSinkAlertConditionType;
90
+ severity: import('../../generated/wspace-types').AlertSeverity;
91
+ channels: Array<string>;
92
+ recipients: Array<string>;
93
+ enabled: boolean;
94
+ throttle?: {
95
+ __typename?: "AlertThrottle";
96
+ enabled: boolean;
97
+ windowMinutes: number;
98
+ maxAlertsPerWindow: number;
99
+ } | null;
100
+ deliveries: Array<{
101
+ __typename?: "DataSinkAlertDelivery";
102
+ channel: import('../../generated/wspace-types').DataSinkAlertChannel;
103
+ channelId: string;
104
+ recipient: string;
105
+ }>;
106
+ }> | null;
107
+ } | null>;
108
+ preview: (condition: string, conditionType: DataSinkAlertConditionType) => Promise<{
109
+ __typename?: "DataSinkAlertPreview";
110
+ matched: boolean;
111
+ result?: Record<string, unknown> | null;
112
+ error?: string | null;
113
+ durationMs: number;
114
+ version: number;
115
+ } | null>;
116
+ history: (alertId?: string, after?: string) => Promise<{
117
+ __typename?: "DataSinkAlertExecution";
118
+ id: string;
119
+ alertId: string;
120
+ dataSinkId: string;
121
+ version: number;
122
+ source: string;
123
+ status: import('../../generated/wspace-types').DataSinkAlertExecutionStatus;
124
+ matched: boolean;
125
+ error?: string | null;
126
+ durationMs: number;
127
+ createdAt: string;
128
+ completedAt?: string | null;
129
+ deliveries: Array<{
130
+ __typename?: "DataSinkAlertDeliveryAttempt";
131
+ channel: import('../../generated/wspace-types').DataSinkAlertChannel;
132
+ channelId: string;
133
+ recipient: string;
134
+ notificationId?: string | null;
135
+ status: string;
136
+ error?: string | null;
137
+ attemptedAt?: string | null;
138
+ }>;
139
+ }[] | null>;
140
+ sink: AlertSink | null;
141
+ channels: AlertChannel[];
142
+ loading: boolean;
143
+ error: string | null;
144
+ channelError: string | null;
145
+ };
146
+ //# sourceMappingURL=useDataSinkAlerts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataSinkAlerts.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/hooks/useDataSinkAlerts.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,6BAA6B,EAClC,KAAK,oCAAoC,EACzC,KAAK,sCAAsC,EAC3C,KAAK,mCAAmC,EAGzC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEnG,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC;AAClF,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,oCAAoC,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AACjG,MAAM,MAAM,cAAc,GAAG,sCAAsC,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvG,MAAM,MAAM,YAAY,GAAG,mCAAmC,CAAC,sBAAsB,CAAC,CAAC;AAWvF,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,MACuC,CAAC;AAE3F,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;;sBAwK+jhE,CAAC;;;;;;;;;oBAA8N,CAAC;0BAAc,CAAC;;;;;;0BAA+H,CAAC;;;;;;;;kBArEl+hE,kBAAkB,mBAAmB,MAAM;;;;;;;;sBAqEwkhE,CAAC;;;;;;;;;oBAA8N,CAAC;0BAAc,CAAC;;;;;;0BAA+H,CAAC;;;;;;;sBAxDh+hE,MAAM,mBAAmB,MAAM;;;;;;;;sBAwDklhE,CAAC;;;;;;;;;oBAA8N,CAAC;0BAAc,CAAC;;;;;;0BAA+H,CAAC;;;;;;;yBA3C99hE,MAAM,iBAAiB,0BAA0B;;;;;;;;wBAgBlD,MAAM,UAAU,MAAM;;;;;;;;;;;;;;sBA2B6mkE,CAAC;;;;0BAA2H,CAAC;;iBAAsC,CAAC;uBAA4B,CAAC;;;UAnLj1kE,SAAS,GAAG,IAAI;cACZ,YAAY,EAAE;aACf,OAAO;WACT,MAAM,GAAG,IAAI;kBACN,MAAM,GAAG,IAAI;EA8K5B"}
@@ -0,0 +1,221 @@
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 { useBigConsole as o } from "../context/BigConsoleContext.js";
3
+ import "../context/index.js";
4
+ import { useCallback as s, useEffect as c, useLayoutEffect as l, useRef as u, useState as d } from "react";
5
+ import { useApolloClient as f } from "@apollo/client/react";
6
+ //#region src/bigconsole/hooks/useDataSinkAlerts.ts
7
+ var p = {
8
+ owner: "",
9
+ sink: null,
10
+ channels: [],
11
+ loading: !1,
12
+ error: null,
13
+ channelError: null
14
+ }, m = (e) => e instanceof Error ? e.message : "The alert operation failed. Please try again.";
15
+ function h(h, g) {
16
+ let _ = f(), { currentUser: v, workspaceId: y } = o(), b = `${v?.id ?? ""}|${y ?? ""}|${h}`, x = u(null);
17
+ l(() => (x.current = g ? b : null, () => {
18
+ x.current = null;
19
+ }), [b, g]);
20
+ let [S, C] = d(p), [w, T] = d(!1), E = s(() => ({
21
+ requiredWorkspaceAuth: !0,
22
+ requiredWorkspaceId: y,
23
+ queryDeduplication: !1
24
+ }), [y]), D = s(() => g && !!y && !!v?.id && x.current === b, [
25
+ g,
26
+ y,
27
+ v?.id,
28
+ b
29
+ ]), O = s((e) => {
30
+ if (!D()) return null;
31
+ if (!e || e.id !== h || e.workspaceId !== y) throw Error("Data sink not found in this workspace.");
32
+ return C((t) => ({
33
+ ...t.owner === b ? t : p,
34
+ owner: b,
35
+ sink: t.owner === b && t.sink && t.sink.version > e.version ? t.sink : e,
36
+ loading: !1,
37
+ error: null
38
+ })), e;
39
+ }, [
40
+ D,
41
+ h,
42
+ y,
43
+ b
44
+ ]), k = s(async () => {
45
+ if (D()) {
46
+ T(!0), C((e) => ({
47
+ ...e.owner === b ? e : p,
48
+ owner: b,
49
+ loading: !e.sink,
50
+ error: null
51
+ }));
52
+ try {
53
+ return O((await _.query({
54
+ query: n,
55
+ variables: { dataSinkId: h },
56
+ fetchPolicy: "no-cache",
57
+ errorPolicy: "none",
58
+ context: E()
59
+ })).data?.getDataSink);
60
+ } catch (e) {
61
+ D() && C((t) => ({
62
+ ...t,
63
+ owner: b,
64
+ loading: !1,
65
+ error: m(e)
66
+ }));
67
+ } finally {
68
+ D() && T(!1);
69
+ }
70
+ }
71
+ }, [
72
+ _,
73
+ h,
74
+ b,
75
+ D,
76
+ O,
77
+ E
78
+ ]), A = s(async () => {
79
+ if (D()) try {
80
+ let t = await _.query({
81
+ query: e,
82
+ variables: { dataSinkId: h },
83
+ fetchPolicy: "no-cache",
84
+ errorPolicy: "none",
85
+ context: E()
86
+ });
87
+ if (!t.data) throw Error("Delivery channels did not load.");
88
+ let n = t.data.dataSinkAlertChannels;
89
+ D() && C((e) => ({
90
+ ...e.owner === b ? e : p,
91
+ owner: b,
92
+ channels: n,
93
+ channelError: null
94
+ }));
95
+ } catch (e) {
96
+ D() && C((t) => ({
97
+ ...t,
98
+ owner: b,
99
+ channels: [],
100
+ channelError: m(e)
101
+ }));
102
+ }
103
+ }, [
104
+ _,
105
+ h,
106
+ b,
107
+ D,
108
+ E
109
+ ]);
110
+ c(() => {
111
+ Promise.resolve().then(() => {
112
+ D() && (k(), A());
113
+ });
114
+ let e = window.setInterval(() => {
115
+ document.visibilityState === "visible" && k();
116
+ }, 1e4);
117
+ return () => window.clearInterval(e);
118
+ }, [
119
+ D,
120
+ k,
121
+ A
122
+ ]);
123
+ let j = s(async (e, t) => {
124
+ if (!D()) throw Error("Workspace context changed. Reopen the alert.");
125
+ return O((await _.mutate({
126
+ mutation: a,
127
+ variables: {
128
+ dataSinkId: h,
129
+ alert: e,
130
+ expectedVersion: t
131
+ },
132
+ errorPolicy: "none",
133
+ context: E()
134
+ })).data?.upsertDataSinkAlert);
135
+ }, [
136
+ _,
137
+ h,
138
+ D,
139
+ O,
140
+ E
141
+ ]), M = s(async (e, t) => {
142
+ if (!D()) throw Error("Workspace context changed. Reopen the alert.");
143
+ return O((await _.mutate({
144
+ mutation: r,
145
+ variables: {
146
+ dataSinkId: h,
147
+ alertId: e,
148
+ expectedVersion: t
149
+ },
150
+ errorPolicy: "none",
151
+ context: E()
152
+ })).data?.deleteDataSinkAlert);
153
+ }, [
154
+ _,
155
+ h,
156
+ D,
157
+ O,
158
+ E
159
+ ]), N = s(async (e, t) => {
160
+ if (!D()) throw Error("Workspace context changed. Reopen the alert.");
161
+ let n = await _.query({
162
+ query: i,
163
+ variables: {
164
+ dataSinkId: h,
165
+ condition: e,
166
+ conditionType: t
167
+ },
168
+ fetchPolicy: "no-cache",
169
+ errorPolicy: "none",
170
+ context: E()
171
+ });
172
+ if (!D()) return null;
173
+ if (!n.data) throw Error("Condition preview returned no result.");
174
+ return n.data.previewDataSinkAlert;
175
+ }, [
176
+ _,
177
+ h,
178
+ D,
179
+ E
180
+ ]), P = s(async (e, n) => {
181
+ if (!D()) return null;
182
+ let r = await _.query({
183
+ query: t,
184
+ variables: {
185
+ dataSinkId: h,
186
+ alertId: e,
187
+ after: n,
188
+ first: 21
189
+ },
190
+ fetchPolicy: "no-cache",
191
+ errorPolicy: "none",
192
+ context: E()
193
+ });
194
+ if (!D()) return null;
195
+ if (!r.data) throw Error("Execution history returned no result.");
196
+ return r.data.dataSinkAlertExecutions.filter((e) => e.dataSinkId === h);
197
+ }, [
198
+ _,
199
+ h,
200
+ D,
201
+ E
202
+ ]);
203
+ return {
204
+ ...S.owner === b ? S : {
205
+ ...p,
206
+ loading: g
207
+ },
208
+ owner: b,
209
+ refreshing: w,
210
+ reload: k,
211
+ reloadChannels: A,
212
+ save: j,
213
+ remove: M,
214
+ preview: N,
215
+ history: P
216
+ };
217
+ }
218
+ //#endregion
219
+ export { m as alertErrorMessage, h as useDataSinkAlerts };
220
+
221
+ //# sourceMappingURL=useDataSinkAlerts.js.map
@@ -0,0 +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":"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"}
@@ -0,0 +1,2 @@
1
+ export default function DataSinkAlertsPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=DataSinkAlertsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSinkAlertsPage.d.ts","sourceRoot":"","sources":["../../../src/bigconsole/pages/DataSinkAlertsPage.tsx"],"names":[],"mappings":"AAmCA,MAAM,CAAC,OAAO,UAAU,kBAAkB,gCASzC"}