@burdenoff/microfe-bigconsole 2026.1029.2 → 2026.1029.4

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.
@@ -2,7 +2,7 @@ import "../../generated/global-operations.js";
2
2
  import { gql as e } from "@apollo/client";
3
3
  //#region src/bigconsole/graphql/storeTemplates.ts
4
4
  var t = e`
5
- mutation ImportDashboardTemplate($input: ImportDashboardTemplateInput!) {
5
+ mutation ImportDashboardTemplate($input: BigConsoleImportDashboardTemplateInput!) {
6
6
  importDashboardTemplate(input: $input) {
7
7
  success
8
8
  errorMessage
@@ -1,9 +1,10 @@
1
1
  import { GetLegacyWidgetTypesDocument as e, GetWidgetTypesDocument as t } from "../../generated/wspace-operations.js";
2
2
  //#region src/bigconsole/graphql/widgetCapabilities.ts
3
- function n(e) {
4
- return e instanceof Error && e.message.includes("Cannot query field \"federationType\" on type \"WidgetTypeInfo\"");
3
+ var n = /Cannot query field "federationType" on type "(?:BigConsole)?WidgetTypeInfo"/;
4
+ function r(e) {
5
+ return e instanceof Error && n.test(e.message);
5
6
  }
6
- async function r(r, i) {
7
+ async function i(n, i) {
7
8
  let a = {
8
9
  fetchPolicy: "no-cache",
9
10
  errorPolicy: "none",
@@ -14,15 +15,15 @@ async function r(r, i) {
14
15
  }
15
16
  };
16
17
  try {
17
- let e = await r.query({
18
+ let e = await n.query({
18
19
  query: t,
19
20
  ...a
20
21
  });
21
22
  if (!e.data) throw Error("Widget catalog response is missing.");
22
23
  return e.data;
23
24
  } catch (t) {
24
- if (!n(t)) throw t;
25
- let i = await r.query({
25
+ if (!r(t)) throw t;
26
+ let i = await n.query({
26
27
  query: e,
27
28
  ...a
28
29
  });
@@ -34,4 +35,4 @@ async function r(r, i) {
34
35
  }
35
36
  }
36
37
  //#endregion
37
- export { r as loadNativeWidgetCatalog };
38
+ export { i as loadNativeWidgetCatalog };
@@ -1,8 +1,8 @@
1
- import { DashboardEmbedTheme } from '../../generated/wspace-types';
1
+ import { BigConsoleDashboardEmbedTheme } from '../../generated/wspace-types';
2
2
  import { EmbedThemeMode } from '../components/embed/types';
3
3
  export type EmbedPolicyStatus = 'DRAFT' | 'ACTIVE' | 'NEEDS_REVIEW' | 'BROKEN' | 'REVOKED' | 'EXPIRED';
4
4
  /**
5
- * Owner-facing color mode (BOFF-5735); maps to the backend {@link DashboardEmbedTheme}
5
+ * Owner-facing color mode (BOFF-5735); maps to the backend {@link BigConsoleDashboardEmbedTheme}
6
6
  * enum. Same shape as the render-model's {@link EmbedThemeMode} — aliased to avoid a
7
7
  * duplicate union.
8
8
  */
@@ -28,7 +28,7 @@ export interface DashboardEmbedPolicy {
28
28
  expiresAt?: string | null;
29
29
  sessionTtlSeconds: number;
30
30
  contentReviewState: string;
31
- presentationTheme: DashboardEmbedTheme;
31
+ presentationTheme: BigConsoleDashboardEmbedTheme;
32
32
  showDashboardTitle: boolean;
33
33
  activePublicationId?: string | null;
34
34
  locatorPublicId?: string | null;
@@ -1,5 +1,5 @@
1
1
  import { CreateDashboardEmbedPolicyDocument as e, ListDashboardEmbedPoliciesDocument as t, PublishDashboardEmbedPolicyDocument as n, RevokeDashboardEmbedPolicyDocument as r, RotateDashboardEmbedPolicyDocument as i, UpdateDashboardEmbedPolicyDocument as a } from "../../generated/wspace-operations.js";
2
- import { DashboardEmbedTheme as o } from "../../generated/wspace-types.js";
2
+ import { BigConsoleDashboardEmbedTheme as o } from "../../generated/wspace-types.js";
3
3
  import { useCallback as s, useState as c } from "react";
4
4
  import { useApolloClient as l } from "@apollo/client/react";
5
5
  //#region src/bigconsole/hooks/useDashboardEmbedPolicy.ts
@@ -37,7 +37,7 @@ function c(c, l = {}) {
37
37
  let n = t?.refreshWidgetData;
38
38
  n && e.modify({
39
39
  id: e.identify({
40
- __typename: "Widget",
40
+ __typename: "BigConsoleWidget",
41
41
  id: c
42
42
  }),
43
43
  fields: {
@@ -75,7 +75,7 @@ var be = C`
75
75
  }
76
76
  }
77
77
  `, Se = C`
78
- mutation GenerateDashboardFromPrompt($input: GenerateDashboardFromPromptInput!) {
78
+ mutation GenerateDashboardFromPrompt($input: BigConsoleGenerateDashboardFromPromptInput!) {
79
79
  generateDashboardFromPrompt(input: $input) {
80
80
  id
81
81
  status
@@ -83,7 +83,7 @@ var be = C`
83
83
  }
84
84
  }
85
85
  `, Ce = C`
86
- mutation CreateDashboardFromGeneration($input: CreateDashboardFromGenerationInput!) {
86
+ mutation CreateDashboardFromGeneration($input: BigConsoleCreateDashboardFromGenerationInput!) {
87
87
  createDashboardFromGeneration(input: $input) {
88
88
  id
89
89
  }
@@ -100,7 +100,7 @@ var be = C`
100
100
  }
101
101
  }
102
102
  `, Ee = C`
103
- mutation RegenerateDashboard($input: RegenerateDashboardInput!) {
103
+ mutation RegenerateDashboard($input: BigConsoleRegenerateDashboardInput!) {
104
104
  regenerateDashboard(input: $input) {
105
105
  id
106
106
  status
@@ -108,7 +108,7 @@ var be = C`
108
108
  }
109
109
  }
110
110
  `, De = C`
111
- mutation RefineGeneratedDashboard($input: RefineGeneratedDashboardInput!) {
111
+ mutation RefineGeneratedDashboard($input: BigConsoleRefineGeneratedDashboardInput!) {
112
112
  refineGeneratedDashboard(input: $input) {
113
113
  id
114
114
  status
@@ -117,7 +117,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
117
117
  }), x = u(function() {
118
118
  let u = e(), { t: x } = fe(), { workflowId: S } = se(), { hasPermission: C, isLoading: Se } = le(), Ce = C(s.WORKFLOW_READ), w = C(s.WORKFLOW_UPDATE), T = C(s.DATASINK_READ);
119
119
  C(s.WORKFLOW_DELETE);
120
- let we = C(s.WORKFLOW_EXECUTE), [E, D] = f(null), [Te, O] = f(!1), [, k] = f(!1), [A, j] = f(!1), [Ee, M] = f(!1), [N, P] = f(!1), [F, I] = f(null), [De, L] = f(null), { unlinkDataSink: Oe } = t({ skipFetch: !0 }), [R, z] = f(!1), { getWorkflow: ke, workflow: B, loading: Ae, error: je } = pe(), [Me, V] = f(!1), [H, U] = f(null), { loading: Ne, error: W, fetchWorkflow: G, deleteWorkflow: K, executeWorkflow: q, pollWorkflowExecution: J } = t({ skipFetch: !0 });
120
+ let we = C(s.WORKFLOW_EXECUTE), [E, D] = f(null), [Te, O] = f(!1), [, k] = f(!1), [A, j] = f(!1), [Ee, M] = f(!1), [N, P] = f(!1), [F, I] = f(null), [De, L] = f(null), { unlinkDataSink: Oe } = t({ skipFetch: !0 }), [R, z] = f(!1), { getWorkflow: ke, workflow: B, loading: Ae, error: je } = pe(), [Me, V] = f(!1), [H, U] = f(null), { loading: Ne, error: Pe, fetchWorkflow: W, deleteWorkflow: G, executeWorkflow: K, pollWorkflowExecution: q } = t({ skipFetch: !0 });
121
121
  oe(() => {
122
122
  if (!S) {
123
123
  V(!0);
@@ -125,7 +125,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
125
125
  }
126
126
  let e = !1, t = async (r) => {
127
127
  try {
128
- let i = await G(S);
128
+ let i = await W(S);
129
129
  if (e) return;
130
130
  i ? (D(i), V(!0)) : r === 0 ? setTimeout(() => {
131
131
  e || t(1);
@@ -137,20 +137,20 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
137
137
  return t(0), () => {
138
138
  e = !0;
139
139
  };
140
- }, [S, G]);
141
- let Pe = d(() => {
140
+ }, [S, W]);
141
+ let Fe = d(() => {
142
142
  u("/workflows/feeds");
143
- }, [u]), Y = d(() => {
143
+ }, [u]), J = d(() => {
144
144
  E?.key && u(`/workflows/workflow/${encodeURIComponent(E.key)}/${encodeURIComponent(B?.version ?? "v1")}`);
145
145
  }, [
146
146
  u,
147
147
  E,
148
148
  B
149
- ]), Fe = d(async () => {
149
+ ]), Ie = d(async () => {
150
150
  if (S) {
151
151
  k(!0);
152
152
  try {
153
- await K(S) ? (c() && l("success"), u("/workflows/feeds")) : c() && l("error");
153
+ await G(S) ? (c() && l("success"), u("/workflows/feeds")) : c() && l("error");
154
154
  } catch {
155
155
  c() && l("error");
156
156
  } finally {
@@ -159,14 +159,14 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
159
159
  }
160
160
  }, [
161
161
  S,
162
- K,
162
+ G,
163
163
  u
164
- ]), X = d(async () => {
164
+ ]), Y = d(async () => {
165
165
  if (!S) return;
166
166
  j(!0), U(null);
167
167
  let e = Date.now();
168
168
  try {
169
- let t = await q(S);
169
+ let t = await K(S);
170
170
  if (t) {
171
171
  let n = Date.now() - e;
172
172
  t.externalWorkflowId ? (U({
@@ -178,7 +178,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
178
178
  },
179
179
  error: null,
180
180
  executionTimeMs: n
181
- }), J(S, {
181
+ }), q(S, {
182
182
  intervalMs: 3e3,
183
183
  timeoutMs: 12e4,
184
184
  onProgress: (e) => {
@@ -205,9 +205,14 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
205
205
  error: null,
206
206
  executionTimeMs: n
207
207
  });
208
- let r = await G(S);
208
+ let r = await W(S);
209
209
  r && D(r);
210
- }
210
+ } else U({
211
+ success: !1,
212
+ output: null,
213
+ error: x("bigconsole.workflows.errors.executionFailed", "Execution failed"),
214
+ executionTimeMs: Date.now() - e
215
+ });
211
216
  } catch (t) {
212
217
  U({
213
218
  success: !1,
@@ -220,19 +225,19 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
220
225
  }
221
226
  }, [
222
227
  S,
228
+ K,
229
+ W,
223
230
  q,
224
- G,
225
- J,
226
231
  x
227
- ]), Ie = d(async () => {
232
+ ]), Le = d(async () => {
228
233
  if (E?.webhookUrl) try {
229
234
  await ee(E.webhookUrl), M(!0), c() && te(x("bigconsole.workflows.view.webhookCopiedToast", "Webhook copied")), setTimeout(() => M(!1), 2e3);
230
235
  } catch {}
231
- }, [E?.webhookUrl, x]), Le = d((e) => {
236
+ }, [E?.webhookUrl, x]), Re = d((e) => {
232
237
  u(`/datasinks/${e}`);
233
- }, [u]), Z = /* @__PURE__ */ y("button", {
238
+ }, [u]), X = /* @__PURE__ */ y("button", {
234
239
  type: "button",
235
- onClick: Pe,
240
+ onClick: Fe,
236
241
  className: `inline-flex min-h-[var(--size-controlHeight-md)] items-center gap-1 rounded-button text-sm text-text-secondary motion-safe:transition-colors hover:text-text-primary ${r}`,
237
242
  children: [/* @__PURE__ */ v(me, { className: "w-4 h-4" }), x("bigconsole.workflows.view.backToWorkflows", "Back to Workflows")]
238
243
  });
@@ -244,9 +249,9 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
244
249
  title: x("bigconsole.workflows.errors.accessDeniedTitle", "Access Denied"),
245
250
  description: x("bigconsole.workflows.errors.accessDeniedViewDescription", "You don't have permission to view this workflow.")
246
251
  });
247
- if (W || !E) return /* @__PURE__ */ v("div", {
252
+ if (!E) return /* @__PURE__ */ v("div", {
248
253
  className: "mx-auto max-w-5xl p-4 sm:p-[var(--space-pagePadding)]",
249
- children: /* @__PURE__ */ y(o, { children: [/* @__PURE__ */ v("div", { children: Z }), /* @__PURE__ */ v("section", {
254
+ children: /* @__PURE__ */ y(o, { children: [/* @__PURE__ */ v("div", { children: X }), /* @__PURE__ */ v("section", {
250
255
  "aria-label": "Workflow not found",
251
256
  "data-section-emphasis": "standard",
252
257
  "data-testid": "workflow-not-found",
@@ -254,16 +259,16 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
254
259
  children: /* @__PURE__ */ v(h, {
255
260
  illustration: "empty-data",
256
261
  title: x("bigconsole.workflows.view.notFoundTitle", "Workflow not found"),
257
- description: W?.message || x("bigconsole.workflows.view.notFoundDescription", "The workflow you are looking for does not exist.")
262
+ description: Pe?.message || x("bigconsole.workflows.view.notFoundDescription", "The workflow you are looking for does not exist.")
258
263
  })
259
264
  })] })
260
265
  });
261
- let Q = E.dataSinkLinks?.length || 0, Re = !!E.externalWorkflowId, $ = B?.id === E.externalWorkflowId ? B.definitionJson?.data : void 0, ze = [
262
- ...we ? [{
266
+ let Z = E.dataSinkLinks?.length || 0, ze = !!E.externalWorkflowId, Q = !!E.externalWorkflowId, $ = B?.id === E.externalWorkflowId ? B.definitionJson?.data : void 0, Be = [
267
+ ...we && Q ? [{
263
268
  id: "execute",
264
269
  label: x("bigconsole.workflows.view.nextStepExecuteLabel", "Run the workflow"),
265
270
  description: x("bigconsole.workflows.view.nextStepExecuteDescription", "Trigger an execution to pull fresh data now."),
266
- onClick: X
271
+ onClick: Y
267
272
  }] : [],
268
273
  {
269
274
  id: "design",
@@ -275,7 +280,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
275
280
  id: "edit",
276
281
  label: x("bigconsole.workflows.view.nextStepEditLabel", "Edit in the builder"),
277
282
  description: x("bigconsole.workflows.view.nextStepEditDescription", "Open the FluidGrids visual builder to change the flow."),
278
- onClick: Y
283
+ onClick: J
279
284
  }] : [],
280
285
  {
281
286
  id: "sinks",
@@ -292,7 +297,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
292
297
  className: "min-w-0",
293
298
  children: [/* @__PURE__ */ v("div", {
294
299
  className: "mb-form-gap",
295
- children: Z
300
+ children: X
296
301
  }), /* @__PURE__ */ y("div", {
297
302
  className: "flex flex-col gap-form-gap md:flex-row md:items-start md:justify-between",
298
303
  children: [/* @__PURE__ */ y("div", {
@@ -319,6 +324,11 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
319
324
  children: E.externalWorkflowId
320
325
  })
321
326
  ]
327
+ }),
328
+ !Q && /* @__PURE__ */ v("p", {
329
+ className: "mt-1 text-xs text-text-secondary",
330
+ "data-testid": "workflow-not-linked-hint",
331
+ children: x("bigconsole.workflows.view.notLinkedHint", "Save this workflow in the FluidGrids builder before running it.")
322
332
  })
323
333
  ]
324
334
  }), /* @__PURE__ */ y("div", {
@@ -329,8 +339,9 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
329
339
  deniedBehavior: "disable",
330
340
  children: /* @__PURE__ */ y(m, {
331
341
  size: "lg",
332
- onClick: X,
333
- disabled: A,
342
+ onClick: Y,
343
+ disabled: A || !Q,
344
+ title: Q ? void 0 : x("bigconsole.workflows.view.notLinkedHint", "Save this workflow in the FluidGrids builder before running it."),
334
345
  children: [/* @__PURE__ */ v(_e, { className: "w-4 h-4" }), A ? x("bigconsole.workflows.actions.executing", "Executing...") : x("bigconsole.workflows.actions.execute", "Execute")]
335
346
  })
336
347
  }),
@@ -340,7 +351,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
340
351
  children: /* @__PURE__ */ y(m, {
341
352
  size: "lg",
342
353
  variant: "outline",
343
- onClick: Y,
354
+ onClick: J,
344
355
  children: [/* @__PURE__ */ v(he, { className: "w-4 h-4" }), x("bigconsole.workflows.actions.edit", "Edit")]
345
356
  })
346
357
  }),
@@ -362,7 +373,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
362
373
  /* @__PURE__ */ v(de, { children: x("bigconsole.workflows.view.purpose", "A workflow is the visual ETL job that feeds this BigConsole — it fetches, transforms, and delivers data into linked data sinks. From here you can run it on demand, inspect its design and execution history, copy its webhook trigger, and edit it in the visual builder.") }),
363
374
  /* @__PURE__ */ v(ue, {
364
375
  storageKey: "bigconsole-workflow-view",
365
- steps: ze
376
+ steps: Be
366
377
  }),
367
378
  H && /* @__PURE__ */ y(a, {
368
379
  headingLevel: 2,
@@ -405,7 +416,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
405
416
  })
406
417
  }), /* @__PURE__ */ v(a, {
407
418
  headingLevel: 2,
408
- emphasis: Re ? "standard" : "primary",
419
+ emphasis: ze ? "standard" : "primary",
409
420
  title: x("bigconsole.workflows.view.executionStatsLabel", "Execution Stats"),
410
421
  description: "How often this workflow has run, and when it last did.",
411
422
  "data-testid": "workflow-execution-stats",
@@ -479,7 +490,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
479
490
  actions: /* @__PURE__ */ v(m, {
480
491
  variant: "ghost",
481
492
  size: "sm",
482
- onClick: Ie,
493
+ onClick: Le,
483
494
  children: Ee ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(ye, { className: "w-4 h-4 text-status-success-text" }), x("bigconsole.workflows.actions.copied", "Copied!")] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(ve, { className: "w-4 h-4" }), x("bigconsole.workflows.actions.copy", "Copy")] })
484
495
  }),
485
496
  children: /* @__PURE__ */ v("code", {
@@ -489,7 +500,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
489
500
  }),
490
501
  /* @__PURE__ */ y(a, {
491
502
  headingLevel: 2,
492
- title: x("bigconsole.workflows.view.linkedDataSinksTitle", "Linked DataSinks ({{count}})", { count: Q }),
503
+ title: x("bigconsole.workflows.view.linkedDataSinksTitle", "Linked DataSinks ({{count}})", { count: Z }),
493
504
  description: "Where this workflow writes the data it produces.",
494
505
  actions: w && T ? /* @__PURE__ */ v(m, {
495
506
  variant: "outline",
@@ -508,11 +519,11 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
508
519
  workflowId: E.id,
509
520
  linkedSinkIds: E.dataSinkLinks.map((e) => e.dataSinkId),
510
521
  onLinked: async () => {
511
- let e = await G(E.id);
522
+ let e = await W(E.id);
512
523
  e && D(e), P(!1), I(x("bigconsole.workflows.links.linked", "Data sink linked."));
513
524
  }
514
525
  }),
515
- Q === 0 ? /* @__PURE__ */ v(h, {
526
+ Z === 0 ? /* @__PURE__ */ v(h, {
516
527
  illustration: "empty-generic",
517
528
  title: x("bigconsole.workflows.view.noDataSinksTitle", "No data sinks linked"),
518
529
  description: x("bigconsole.workflows.view.noDataSinksDescription", "This workflow has no data sinks linked yet — its output isn't being stored.")
@@ -554,7 +565,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
554
565
  L(e.dataSinkId);
555
566
  try {
556
567
  if (await Oe(E.id, e.dataSinkId)) {
557
- let e = await G(E.id);
568
+ let e = await W(E.id);
558
569
  e && D(e), I(x("bigconsole.workflows.links.unlinked", "Data sink unlinked."));
559
570
  } else I(x("bigconsole.workflows.links.unlinkError", "The data sink could not be unlinked. Try again."));
560
571
  } finally {
@@ -565,7 +576,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
565
576
  }),
566
577
  e.dataSink && /* @__PURE__ */ v("button", {
567
578
  type: "button",
568
- onClick: () => Le(e.dataSinkId),
579
+ onClick: () => Re(e.dataSinkId),
569
580
  className: "inline-flex min-h-[var(--size-controlHeight-md)] items-center rounded-button px-2 text-xs font-medium text-text-link hover:underline sm:min-h-[var(--size-controlHeight-sm)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
570
581
  children: x("bigconsole.workflows.actions.view", "View")
571
582
  })
@@ -621,7 +632,7 @@ var me = ({ className: e }) => /* @__PURE__ */ v("svg", {
621
632
  workflow: E,
622
633
  isOpen: Te,
623
634
  onClose: () => O(!1),
624
- onConfirm: Fe
635
+ onConfirm: Ie
625
636
  })]
626
637
  });
627
638
  });