@burdenoff/microfe-workflows 2026.510.108
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/README.md +88 -0
- package/dist/WorkflowsRoot.d.ts +29 -0
- package/dist/WorkflowsRoot.d.ts.map +1 -0
- package/dist/WorkflowsRoot.js +104 -0
- package/dist/WorkflowsRoutes.d.ts +12 -0
- package/dist/WorkflowsRoutes.d.ts.map +1 -0
- package/dist/WorkflowsRoutes.js +190 -0
- package/dist/config/index.d.ts +24 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +25 -0
- package/dist/constants/permissions.d.ts +76 -0
- package/dist/constants/permissions.d.ts.map +1 -0
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +12 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/providers/WorkflowsProvider.d.ts +8 -0
- package/dist/providers/WorkflowsProvider.d.ts.map +1 -0
- package/dist/providers/WorkflowsProvider.js +71 -0
- package/dist/utils/nativeBridge.d.ts +3 -0
- package/dist/utils/nativeBridge.d.ts.map +1 -0
- package/dist/workflows.js +4 -0
- package/package.json +94 -0
package/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# @burdenoff/micro-fe
|
|
2
|
+
|
|
3
|
+
Microfrontend packages for Burdenoff products.
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
This is a **Layer 2 package** - a monolithic package with subpath exports for all microfrontends.
|
|
8
|
+
|
|
9
|
+
## Package Structure
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
@burdenoff/micro-fe/
|
|
13
|
+
├── /workflows - Complete workflow builder and management microfrontend
|
|
14
|
+
├── /tags - Tag management system (to be implemented)
|
|
15
|
+
└── /auth - Authentication flows (to be implemented)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { WorkflowsRoot } from '@burdenoff/micro-fe/workflows';
|
|
22
|
+
|
|
23
|
+
// In your host shell
|
|
24
|
+
<WorkflowsRoot
|
|
25
|
+
basePath="/workflows"
|
|
26
|
+
navigate={(path) => navigate(path)}
|
|
27
|
+
currentUser={user}
|
|
28
|
+
workspaceId={workspaceId}
|
|
29
|
+
apiGatewayUrl={apiGatewayUrl}
|
|
30
|
+
authToken={authToken}
|
|
31
|
+
/>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Development
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Install dependencies
|
|
38
|
+
bun install
|
|
39
|
+
|
|
40
|
+
# Generate GraphQL types
|
|
41
|
+
bun run codegen
|
|
42
|
+
|
|
43
|
+
# Build library
|
|
44
|
+
bun run build
|
|
45
|
+
|
|
46
|
+
# Type check
|
|
47
|
+
bun run type:check
|
|
48
|
+
|
|
49
|
+
# Run all checks
|
|
50
|
+
bun run sanity
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Workflows Microfrontend
|
|
54
|
+
|
|
55
|
+
Complete workflow automation microfrontend with:
|
|
56
|
+
|
|
57
|
+
- **WorkflowsList** - List all workflows
|
|
58
|
+
- **WorkflowBuilder** - Visual workflow builder with node palette
|
|
59
|
+
- **WorkflowRuns** - Execution history
|
|
60
|
+
- **WorkflowRunDetails** - Detailed run monitoring
|
|
61
|
+
|
|
62
|
+
### Routes
|
|
63
|
+
|
|
64
|
+
- `/` - Workflows list
|
|
65
|
+
- `/builder/:workflowKey?` - Workflow builder (create/edit)
|
|
66
|
+
- `/runs` - Workflow runs history
|
|
67
|
+
- `/runs/:runId` - Run details
|
|
68
|
+
|
|
69
|
+
## GraphQL Integration
|
|
70
|
+
|
|
71
|
+
Uses GraphQL Codegen to generate typed hooks from operations:
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
import { useGetWorkflowDefinitionsQuery } from './graphql/generated/operations';
|
|
75
|
+
|
|
76
|
+
const { data, loading } = useGetWorkflowDefinitionsQuery({
|
|
77
|
+
variables: { input: { limit: 10 } }
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Tech Stack
|
|
82
|
+
|
|
83
|
+
- React 19 with TypeScript
|
|
84
|
+
- React Router v7
|
|
85
|
+
- Apollo Client for GraphQL
|
|
86
|
+
- Zustand for state management
|
|
87
|
+
- @burdenoff/fe-libs for UI primitives
|
|
88
|
+
- TailwindCSS v4 for styling
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NavItem, FooterItem } from '@burdenoff/fe-libs/shared/hooks/shell';
|
|
2
|
+
import { MicrofrontendRootProps } from '@burdenoff/fe-libs/shared/types';
|
|
3
|
+
|
|
4
|
+
export type { NavItem, FooterItem };
|
|
5
|
+
/**
|
|
6
|
+
* Props for the WorkflowsRoot component
|
|
7
|
+
*/
|
|
8
|
+
export interface WorkflowsRootProps extends MicrofrontendRootProps {
|
|
9
|
+
/**
|
|
10
|
+
* Optional capabilities flags
|
|
11
|
+
*/
|
|
12
|
+
capabilities?: Record<string, boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Optional callback functions
|
|
15
|
+
*/
|
|
16
|
+
callbacks?: Record<string, (...args: unknown[]) => unknown>;
|
|
17
|
+
/**
|
|
18
|
+
* Optional function to register navigation items with the shell
|
|
19
|
+
* Injected by the shell app
|
|
20
|
+
*/
|
|
21
|
+
registerNavItems?: (items: NavItem | NavItem[]) => () => void;
|
|
22
|
+
/**
|
|
23
|
+
* Optional function to register footer items with the shell
|
|
24
|
+
* Injected by the shell app
|
|
25
|
+
*/
|
|
26
|
+
registerFooterItems?: (items: FooterItem | FooterItem[]) => () => void;
|
|
27
|
+
}
|
|
28
|
+
export declare function WorkflowsRoot(props: WorkflowsRootProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=WorkflowsRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsRoot.d.ts","sourceRoot":"","sources":["../src/WorkflowsRoot.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAChE;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;IAE5D;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC;IAE9D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,KAAK,MAAM,IAAI,CAAC;CACxE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAiKtD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useWorkflowsTranslation as e } from "./i18n.js";
|
|
2
|
+
import { WorkflowsProvider as t } from "./providers/WorkflowsProvider.js";
|
|
3
|
+
import { WorkflowsRoutes as n } from "./WorkflowsRoutes.js";
|
|
4
|
+
import { useEffect as r, useMemo as i } from "react";
|
|
5
|
+
import { ErrorBoundary as a } from "@burdenoff/fe-libs/shared/components";
|
|
6
|
+
import { FeatureFlagProvider as o, useFeatureFlags as s } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
7
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
8
|
+
import { Boxes as l, FileCode2 as u, History as d, LayoutDashboard as f, Network as p, PlayCircle as m, Settings as h, Workflow as g } from "lucide-react";
|
|
9
|
+
//#region src/WorkflowsRoot.tsx
|
|
10
|
+
function _(_) {
|
|
11
|
+
let { basePath: v = "/", registerNavItems: y, registerFooterItems: b } = _, { isEnabled: x, evaluations: S } = s(), C = i(() => ({ isEnabled: x }), [S, x]), w = e();
|
|
12
|
+
return r(() => {
|
|
13
|
+
if (!y) return;
|
|
14
|
+
let e = (e, t) => `${e.endsWith("/") ? e.slice(0, -1) : e}/${t}`, t = [
|
|
15
|
+
...C.isEnabled("workflows.list") ? [{
|
|
16
|
+
id: "workflows-list",
|
|
17
|
+
label: w("workflows.nav.myWorkflows", "My Workflows"),
|
|
18
|
+
path: e(v, "list"),
|
|
19
|
+
icon: /* @__PURE__ */ c(g, { size: 18 }),
|
|
20
|
+
order: 2
|
|
21
|
+
}] : [],
|
|
22
|
+
...C.isEnabled("workflows.builder") ? [{
|
|
23
|
+
id: "workflows-builder",
|
|
24
|
+
label: w("workflows.nav.builder", "Builder"),
|
|
25
|
+
path: e(v, "new"),
|
|
26
|
+
icon: /* @__PURE__ */ c(l, { size: 18 }),
|
|
27
|
+
order: 3
|
|
28
|
+
}] : [],
|
|
29
|
+
...C.isEnabled("workflows.runs") ? [{
|
|
30
|
+
id: "workflows-runs",
|
|
31
|
+
label: w("workflows.nav.runs", "Runs"),
|
|
32
|
+
path: e(v, "runs"),
|
|
33
|
+
icon: /* @__PURE__ */ c(m, { size: 18 }),
|
|
34
|
+
order: 4
|
|
35
|
+
}] : [],
|
|
36
|
+
...C.isEnabled("workflows.history") ? [{
|
|
37
|
+
id: "workflows-history",
|
|
38
|
+
label: w("workflows.nav.history", "History"),
|
|
39
|
+
path: e(v, "history"),
|
|
40
|
+
icon: /* @__PURE__ */ c(d, { size: 18 }),
|
|
41
|
+
order: 5
|
|
42
|
+
}] : [],
|
|
43
|
+
...C.isEnabled("workflows.templates") ? [{
|
|
44
|
+
id: "workflows-templates",
|
|
45
|
+
label: w("workflows.nav.templates", "Templates"),
|
|
46
|
+
path: e(v, "templates"),
|
|
47
|
+
icon: /* @__PURE__ */ c(f, { size: 18 }),
|
|
48
|
+
order: 6
|
|
49
|
+
}] : [],
|
|
50
|
+
...C.isEnabled("workflows.nodes") ? [{
|
|
51
|
+
id: "workflows-nodes",
|
|
52
|
+
label: w("workflows.nav.nodes", "Nodes"),
|
|
53
|
+
path: e(v, "nodes"),
|
|
54
|
+
icon: /* @__PURE__ */ c(p, { size: 18 }),
|
|
55
|
+
order: 7
|
|
56
|
+
}] : [],
|
|
57
|
+
...C.isEnabled("workflows.settings") ? [{
|
|
58
|
+
id: "workflows-settings",
|
|
59
|
+
label: w("workflows.nav.settings", "Settings"),
|
|
60
|
+
path: e(v, "settings"),
|
|
61
|
+
icon: /* @__PURE__ */ c(h, { size: 18 }),
|
|
62
|
+
order: 8
|
|
63
|
+
}] : []
|
|
64
|
+
];
|
|
65
|
+
return y([{
|
|
66
|
+
id: "workflows",
|
|
67
|
+
label: w("workflows.nav.title", "Workflows"),
|
|
68
|
+
path: v,
|
|
69
|
+
icon: /* @__PURE__ */ c(u, { size: 20 }),
|
|
70
|
+
order: 200,
|
|
71
|
+
group: "workflows",
|
|
72
|
+
children: t
|
|
73
|
+
}]);
|
|
74
|
+
}, [
|
|
75
|
+
y,
|
|
76
|
+
v,
|
|
77
|
+
C,
|
|
78
|
+
w
|
|
79
|
+
]), r(() => {
|
|
80
|
+
if (b) return b([{
|
|
81
|
+
id: "workflows-status",
|
|
82
|
+
label: w("workflows.footer.status", "Workflows Ready"),
|
|
83
|
+
type: "status",
|
|
84
|
+
order: 10,
|
|
85
|
+
section: "left"
|
|
86
|
+
}]);
|
|
87
|
+
}, [b, w]), /* @__PURE__ */ c(o, {
|
|
88
|
+
workspaceId: null,
|
|
89
|
+
gateway: "global",
|
|
90
|
+
defaultEnabled: !0,
|
|
91
|
+
children: /* @__PURE__ */ c(a, {
|
|
92
|
+
fallback: /* @__PURE__ */ c("div", {
|
|
93
|
+
className: "p-6 text-center text-text-secondary",
|
|
94
|
+
children: w("workflows.error.loadFailed", "Something went wrong loading this module. Please refresh the page.")
|
|
95
|
+
}),
|
|
96
|
+
children: /* @__PURE__ */ c(t, {
|
|
97
|
+
..._,
|
|
98
|
+
children: /* @__PURE__ */ c(n, {})
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
export { _ as WorkflowsRoot };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal router for the Workflows microfrontend.
|
|
3
|
+
* Uses relative paths - parent route handles base path (/workflows/*).
|
|
4
|
+
*
|
|
5
|
+
* All workflow pages are gated behind feature flags as the module is in preview.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: /credentials and /oauth/callback routes have been removed.
|
|
8
|
+
* Connection management is now handled by microfe-integrations at /integrations/connections.
|
|
9
|
+
* OAuth callbacks are handled by the integrations service REST endpoint.
|
|
10
|
+
*/
|
|
11
|
+
export declare function WorkflowsRoutes(): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=WorkflowsRoutes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsRoutes.d.ts","sourceRoot":"","sources":["../src/WorkflowsRoutes.tsx"],"names":[],"mappings":"AA0GA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,4CAuE9B"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { useWorkflowsTranslation as e } from "./i18n.js";
|
|
2
|
+
import { Suspense as t } from "react";
|
|
3
|
+
import { FeatureGate as n, useFeatureFlags as r } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
4
|
+
import { ExecutionDetailPage as i, ExecutionsListPage as a, HistoryPage as o, NodesPage as s, SettingsPage as c, TemplatesPage as l, WorkflowBuilderPage as u, WorkflowsList as d } from "@burdenoff/fluidgrids-fe-sdk";
|
|
5
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
6
|
+
import { Navigate as m, Route as h, Routes as g, useParams as _ } from "react-router-dom";
|
|
7
|
+
//#region src/WorkflowsRoutes.tsx
|
|
8
|
+
function v() {
|
|
9
|
+
let t = e();
|
|
10
|
+
return /* @__PURE__ */ p("div", {
|
|
11
|
+
className: "flex h-full min-h-[200px] w-full flex-col items-center justify-center gap-3 px-6 text-center",
|
|
12
|
+
role: "status",
|
|
13
|
+
"aria-live": "polite",
|
|
14
|
+
"aria-label": t("workflows.routes.loading.ariaLabel", "Loading workflow page"),
|
|
15
|
+
children: [/* @__PURE__ */ f("div", { className: "h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent" }), /* @__PURE__ */ f("p", {
|
|
16
|
+
className: "text-sm text-text-secondary",
|
|
17
|
+
children: t("workflows.routes.loading.message", "Loading workflow page...")
|
|
18
|
+
})]
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function y() {
|
|
22
|
+
let t = e();
|
|
23
|
+
return /* @__PURE__ */ f("div", {
|
|
24
|
+
className: "flex h-full items-center justify-center p-8 text-center",
|
|
25
|
+
children: /* @__PURE__ */ p("div", {
|
|
26
|
+
className: "max-w-md",
|
|
27
|
+
children: [/* @__PURE__ */ f("h2", {
|
|
28
|
+
className: "mb-2 text-lg font-semibold text-text-primary",
|
|
29
|
+
children: t("workflows.routes.featureDisabled.title", "Feature not available")
|
|
30
|
+
}), /* @__PURE__ */ f("p", {
|
|
31
|
+
className: "text-sm text-text-secondary",
|
|
32
|
+
children: t("workflows.routes.featureDisabled.description", "This workflow feature is still in preview. Enable it under Feature Previews to access it.")
|
|
33
|
+
})]
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function b() {
|
|
38
|
+
let t = e();
|
|
39
|
+
return /* @__PURE__ */ f("div", {
|
|
40
|
+
className: "flex h-full items-center justify-center p-8 text-center",
|
|
41
|
+
children: /* @__PURE__ */ p("div", {
|
|
42
|
+
className: "max-w-md",
|
|
43
|
+
children: [/* @__PURE__ */ f("h2", {
|
|
44
|
+
className: "mb-2 text-lg font-semibold text-text-primary",
|
|
45
|
+
children: t("workflows.routes.empty.title", "Workflows preview is unavailable")
|
|
46
|
+
}), /* @__PURE__ */ f("p", {
|
|
47
|
+
className: "text-sm text-text-secondary",
|
|
48
|
+
children: t("workflows.routes.empty.description", "No workflow preview pages are enabled for this workspace yet. Turn on a workflow preview feature to continue.")
|
|
49
|
+
})]
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function x(e, t, r = !1) {
|
|
54
|
+
return /* @__PURE__ */ f(n, {
|
|
55
|
+
flag: e,
|
|
56
|
+
defaultValue: r,
|
|
57
|
+
loading: /* @__PURE__ */ f(v, {}),
|
|
58
|
+
fallback: /* @__PURE__ */ f(y, {}),
|
|
59
|
+
children: t
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function S() {
|
|
63
|
+
let { runId: e } = _();
|
|
64
|
+
return /* @__PURE__ */ f(m, {
|
|
65
|
+
to: `../runs/${e}`,
|
|
66
|
+
replace: !0
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function C() {
|
|
70
|
+
let { isEnabled: e, isLoading: n } = r(), _ = [
|
|
71
|
+
{
|
|
72
|
+
flag: "workflows.list",
|
|
73
|
+
path: "list"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
flag: "workflows.builder",
|
|
77
|
+
path: "new"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
flag: "workflows.runs",
|
|
81
|
+
path: "runs"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
flag: "workflows.history",
|
|
85
|
+
path: "history"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
flag: "workflows.templates",
|
|
89
|
+
path: "templates"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
flag: "workflows.nodes",
|
|
93
|
+
path: "nodes"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
flag: "workflows.settings",
|
|
97
|
+
path: "settings"
|
|
98
|
+
}
|
|
99
|
+
].find(({ flag: t }) => e(t))?.path ?? null, y = n ? /* @__PURE__ */ f(v, {}) : _ ? /* @__PURE__ */ f(m, {
|
|
100
|
+
to: _,
|
|
101
|
+
replace: !0
|
|
102
|
+
}) : /* @__PURE__ */ f(b, {});
|
|
103
|
+
return /* @__PURE__ */ f(t, {
|
|
104
|
+
fallback: /* @__PURE__ */ f(v, {}),
|
|
105
|
+
children: /* @__PURE__ */ p(g, { children: [
|
|
106
|
+
/* @__PURE__ */ f(h, {
|
|
107
|
+
index: !0,
|
|
108
|
+
element: y
|
|
109
|
+
}),
|
|
110
|
+
/* @__PURE__ */ f(h, {
|
|
111
|
+
path: "list",
|
|
112
|
+
element: x("workflows.list", /* @__PURE__ */ f(d, {}))
|
|
113
|
+
}),
|
|
114
|
+
/* @__PURE__ */ f(h, {
|
|
115
|
+
path: "new",
|
|
116
|
+
element: x("workflows.builder", /* @__PURE__ */ f(u, {}))
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ f(h, {
|
|
119
|
+
path: "workflow/:id/:version",
|
|
120
|
+
element: x("workflows.builder", /* @__PURE__ */ f(u, {}))
|
|
121
|
+
}),
|
|
122
|
+
/* @__PURE__ */ f(h, {
|
|
123
|
+
path: "builder",
|
|
124
|
+
element: /* @__PURE__ */ f(m, {
|
|
125
|
+
to: "../new",
|
|
126
|
+
replace: !0
|
|
127
|
+
})
|
|
128
|
+
}),
|
|
129
|
+
/* @__PURE__ */ f(h, {
|
|
130
|
+
path: "builder/:id/:version",
|
|
131
|
+
element: x("workflows.builder", /* @__PURE__ */ f(u, {}))
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ f(h, {
|
|
134
|
+
path: "runs",
|
|
135
|
+
element: x("workflows.runs", /* @__PURE__ */ f(a, {}))
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ f(h, {
|
|
138
|
+
path: "runs/:runId",
|
|
139
|
+
element: x("workflows.runs", /* @__PURE__ */ f(i, {}))
|
|
140
|
+
}),
|
|
141
|
+
/* @__PURE__ */ f(h, {
|
|
142
|
+
path: "history",
|
|
143
|
+
element: x("workflows.history", /* @__PURE__ */ f(o, {}))
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ f(h, {
|
|
146
|
+
path: "templates",
|
|
147
|
+
element: x("workflows.templates", /* @__PURE__ */ f(l, {}))
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ f(h, {
|
|
150
|
+
path: "nodes",
|
|
151
|
+
element: x("workflows.nodes", /* @__PURE__ */ f(s, {}))
|
|
152
|
+
}),
|
|
153
|
+
/* @__PURE__ */ f(h, {
|
|
154
|
+
path: "settings",
|
|
155
|
+
element: x("workflows.settings", /* @__PURE__ */ f(c, {}))
|
|
156
|
+
}),
|
|
157
|
+
/* @__PURE__ */ f(h, {
|
|
158
|
+
path: "executions",
|
|
159
|
+
element: /* @__PURE__ */ f(m, {
|
|
160
|
+
to: "../runs",
|
|
161
|
+
replace: !0
|
|
162
|
+
})
|
|
163
|
+
}),
|
|
164
|
+
/* @__PURE__ */ f(h, {
|
|
165
|
+
path: "executions/:runId",
|
|
166
|
+
element: /* @__PURE__ */ f(S, {})
|
|
167
|
+
}),
|
|
168
|
+
/* @__PURE__ */ f(h, {
|
|
169
|
+
path: "credentials",
|
|
170
|
+
element: /* @__PURE__ */ f(m, {
|
|
171
|
+
to: "/integrations/connections",
|
|
172
|
+
replace: !0
|
|
173
|
+
})
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ f(h, {
|
|
176
|
+
path: "oauth/callback",
|
|
177
|
+
element: /* @__PURE__ */ f(m, {
|
|
178
|
+
to: "/integrations/connections",
|
|
179
|
+
replace: !0
|
|
180
|
+
})
|
|
181
|
+
}),
|
|
182
|
+
/* @__PURE__ */ f(h, {
|
|
183
|
+
path: "*",
|
|
184
|
+
element: y
|
|
185
|
+
})
|
|
186
|
+
] })
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
//#endregion
|
|
190
|
+
export { C as WorkflowsRoutes };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration module for workflows microfrontend
|
|
3
|
+
* This config is typically injected by the shell application at runtime
|
|
4
|
+
*/
|
|
5
|
+
export interface WorkflowsConfig {
|
|
6
|
+
workflowSvcUrl: string;
|
|
7
|
+
fluidgridBackendUrlToken?: string;
|
|
8
|
+
fluidgridBackendUrl?: string;
|
|
9
|
+
apiGatewayUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get current configuration
|
|
13
|
+
*/
|
|
14
|
+
export declare const config: WorkflowsConfig;
|
|
15
|
+
/**
|
|
16
|
+
* Set runtime configuration (called by shell app)
|
|
17
|
+
* @param newConfig - Configuration object
|
|
18
|
+
*/
|
|
19
|
+
export declare function setWorkflowsConfig(newConfig: Partial<WorkflowsConfig>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Reset configuration to defaults
|
|
22
|
+
*/
|
|
23
|
+
export declare function resetWorkflowsConfig(): void;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAUD;;GAEG;AACH,eAAO,MAAM,MAAM,iBAIjB,CAAC;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/config/index.ts
|
|
2
|
+
var e = {
|
|
3
|
+
workflowSvcUrl: "http://localhost:3726/graphql",
|
|
4
|
+
fluidgridBackendUrlToken: void 0,
|
|
5
|
+
fluidgridBackendUrl: "https://gw-global.local.burdenoff.com",
|
|
6
|
+
apiGatewayUrl: "https://gw-global.local.burdenoff.com/graphql"
|
|
7
|
+
}, t = new Proxy({}, { get(t, n) {
|
|
8
|
+
return e[n];
|
|
9
|
+
} });
|
|
10
|
+
function n(t) {
|
|
11
|
+
e = {
|
|
12
|
+
...e,
|
|
13
|
+
...t
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function r() {
|
|
17
|
+
e = {
|
|
18
|
+
workflowSvcUrl: "http://localhost:3726/graphql",
|
|
19
|
+
fluidgridBackendUrlToken: void 0,
|
|
20
|
+
fluidgridBackendUrl: "https://gw-global.local.burdenoff.com",
|
|
21
|
+
apiGatewayUrl: "https://gw-global.local.burdenoff.com/graphql"
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { t as config, r as resetWorkflowsConfig, n as setWorkflowsConfig };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflows Permission Constants
|
|
3
|
+
*
|
|
4
|
+
* All permission strings for Workflows resources.
|
|
5
|
+
* Use with fe-libs usePermissions hook: hasPermission(WORKFLOW_PERMISSIONS.WORKFLOW_CREATE)
|
|
6
|
+
*
|
|
7
|
+
* Resource types:
|
|
8
|
+
* - workflow: list, read, create, update, delete, execute
|
|
9
|
+
* - workflow-run: list, read, execute
|
|
10
|
+
* - node: list, read, create, delete
|
|
11
|
+
* - node-installation: list, read, create, delete, update
|
|
12
|
+
* - node-endpoint-config: list, read, update, delete
|
|
13
|
+
* - scheduled-job: list, read, create, update, delete
|
|
14
|
+
* - ai-workflow: execute
|
|
15
|
+
* - artifact: list, read, delete
|
|
16
|
+
* - chat-session: list, read, create, delete
|
|
17
|
+
* - submission: list, read, delete, execute
|
|
18
|
+
* - event-registration: list, read, create, update, delete
|
|
19
|
+
* - usage: list, read
|
|
20
|
+
* - dashboard: read
|
|
21
|
+
* - system-config: read, update
|
|
22
|
+
*/
|
|
23
|
+
export declare const WORKFLOW_PERMISSIONS: {
|
|
24
|
+
readonly WORKFLOW_LIST: "workflow:list";
|
|
25
|
+
readonly WORKFLOW_READ: "workflow:read";
|
|
26
|
+
readonly WORKFLOW_CREATE: "workflow:create";
|
|
27
|
+
readonly WORKFLOW_UPDATE: "workflow:update";
|
|
28
|
+
readonly WORKFLOW_DELETE: "workflow:delete";
|
|
29
|
+
readonly WORKFLOW_EXECUTE: "workflow:execute";
|
|
30
|
+
readonly WORKFLOW_RUN_LIST: "workflow-run:list";
|
|
31
|
+
readonly WORKFLOW_RUN_READ: "workflow-run:read";
|
|
32
|
+
readonly WORKFLOW_RUN_EXECUTE: "workflow-run:execute";
|
|
33
|
+
readonly NODE_LIST: "node:list";
|
|
34
|
+
readonly NODE_READ: "node:read";
|
|
35
|
+
readonly NODE_CREATE: "node:create";
|
|
36
|
+
readonly NODE_DELETE: "node:delete";
|
|
37
|
+
readonly NODE_INSTALLATION_LIST: "node-installation:list";
|
|
38
|
+
readonly NODE_INSTALLATION_READ: "node-installation:read";
|
|
39
|
+
readonly NODE_INSTALLATION_CREATE: "node-installation:create";
|
|
40
|
+
readonly NODE_INSTALLATION_UPDATE: "node-installation:update";
|
|
41
|
+
readonly NODE_INSTALLATION_DELETE: "node-installation:delete";
|
|
42
|
+
readonly NODE_ENDPOINT_CONFIG_LIST: "node-endpoint-config:list";
|
|
43
|
+
readonly NODE_ENDPOINT_CONFIG_READ: "node-endpoint-config:read";
|
|
44
|
+
readonly NODE_ENDPOINT_CONFIG_UPDATE: "node-endpoint-config:update";
|
|
45
|
+
readonly NODE_ENDPOINT_CONFIG_DELETE: "node-endpoint-config:delete";
|
|
46
|
+
readonly SCHEDULED_JOB_LIST: "scheduled-job:list";
|
|
47
|
+
readonly SCHEDULED_JOB_READ: "scheduled-job:read";
|
|
48
|
+
readonly SCHEDULED_JOB_CREATE: "scheduled-job:create";
|
|
49
|
+
readonly SCHEDULED_JOB_UPDATE: "scheduled-job:update";
|
|
50
|
+
readonly SCHEDULED_JOB_DELETE: "scheduled-job:delete";
|
|
51
|
+
readonly AI_WORKFLOW_EXECUTE: "ai-workflow:execute";
|
|
52
|
+
readonly AI_WORKFLOW_CREATE: "ai-workflow:create";
|
|
53
|
+
readonly ARTIFACT_LIST: "artifact:list";
|
|
54
|
+
readonly ARTIFACT_READ: "artifact:read";
|
|
55
|
+
readonly ARTIFACT_DELETE: "artifact:delete";
|
|
56
|
+
readonly CHAT_SESSION_LIST: "chat-session:list";
|
|
57
|
+
readonly CHAT_SESSION_READ: "chat-session:read";
|
|
58
|
+
readonly CHAT_SESSION_CREATE: "chat-session:create";
|
|
59
|
+
readonly CHAT_SESSION_DELETE: "chat-session:delete";
|
|
60
|
+
readonly SUBMISSION_LIST: "submission:list";
|
|
61
|
+
readonly SUBMISSION_READ: "submission:read";
|
|
62
|
+
readonly SUBMISSION_DELETE: "submission:delete";
|
|
63
|
+
readonly SUBMISSION_EXECUTE: "submission:execute";
|
|
64
|
+
readonly EVENT_REGISTRATION_LIST: "event-registration:list";
|
|
65
|
+
readonly EVENT_REGISTRATION_READ: "event-registration:read";
|
|
66
|
+
readonly EVENT_REGISTRATION_CREATE: "event-registration:create";
|
|
67
|
+
readonly EVENT_REGISTRATION_UPDATE: "event-registration:update";
|
|
68
|
+
readonly EVENT_REGISTRATION_DELETE: "event-registration:delete";
|
|
69
|
+
readonly USAGE_LIST: "usage:list";
|
|
70
|
+
readonly USAGE_READ: "usage:read";
|
|
71
|
+
readonly DASHBOARD_READ: "dashboard:read";
|
|
72
|
+
readonly SYSTEM_CONFIG_READ: "system-config:read";
|
|
73
|
+
readonly SYSTEM_CONFIG_UPDATE: "system-config:update";
|
|
74
|
+
};
|
|
75
|
+
export type WorkflowPermission = (typeof WORKFLOW_PERMISSIONS)[keyof typeof WORKFLOW_PERMISSIONS];
|
|
76
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/constants/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EvB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,UAI7B,MAAM,YAAY,MAAM,KAAG,MAAM,CAM1C"}
|
package/dist/i18n.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useCallback as e } from "react";
|
|
2
|
+
import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
3
|
+
//#region src/i18n.ts
|
|
4
|
+
function n() {
|
|
5
|
+
let { t: n } = t();
|
|
6
|
+
return e((e, t) => {
|
|
7
|
+
let r = n(e);
|
|
8
|
+
return r === e ? t : r;
|
|
9
|
+
}, [n]);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { n as useWorkflowsTranslation };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { WorkflowsRoot } from './WorkflowsRoot';
|
|
2
|
+
export type { WorkflowsRootProps } from './WorkflowsRoot';
|
|
3
|
+
export { config, setWorkflowsConfig, resetWorkflowsConfig } from './config';
|
|
4
|
+
export type { WorkflowsConfig } from './config';
|
|
5
|
+
export { WorkflowBuilder as EmbeddableWorkflowBuilder, WorkflowBuilderCore as EmbeddableWorkflowBuilderCore, FluidGridsProvider as EmbeddableWorkflowProvider, FluidGridsRoot as EmbeddableWorkflowRoot, useFluidGridsContext as useEmbeddableContext, useFlowStore as useEmbeddableFlowStore, createFluidGridsClient as createEmbeddableClient, setFluidGridsClient as setEmbeddableClient, getFluidGridsClient as getEmbeddableClient, setFluidGridsConfig as setEmbeddableConfig, cn, } from '@burdenoff/fluidgrids-fe-sdk';
|
|
6
|
+
export type { WorkflowBuilderProps as EmbeddableWorkflowBuilderProps, WorkflowBuilderCoreProps as EmbeddableWorkflowBuilderCoreProps, FluidGridsProviderProps as EmbeddableWorkflowProviderProps, FluidGridsRootProps as EmbeddableWorkflowRootProps, FluidGridsClientConfig as EmbeddableClientConfig, FluidGridsConfig as EmbeddableConfig, WorkflowDefinition, WorkflowData, FlowNode, FlowEdge, NodeManifest, } from '@burdenoff/fluidgrids-fe-sdk';
|
|
7
|
+
export { useNodeEndpoints, useNodeEndpoint, useNodeManifest, useLazyNodeManifest, fetchAllNodesWithManifests, useWorkflowDefinitions, useWorkflowDefinition, useLazyWorkflowDefinition, useWorkflowVersions, useCreateWorkflow, useUpdateWorkflow, useCreateWorkflowVersion, useDeleteWorkflow, useDuplicateWorkflow, useTriggerWorkflow, useWorkflowRuns, useWorkflowRun, useDashboardSummary, WorkflowsList, WorkflowBuilderPage, ExecutionsListPage, ExecutionDetailPage, HistoryPage, TemplatesPage, NodesPage, SettingsPage, setFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe, isFluidGridsClientReady, waitForFluidGridsClient, resetFluidGridsClient, } from '@burdenoff/fluidgrids-fe-sdk';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhD,OAAO,EACL,eAAe,IAAI,yBAAyB,EAC5C,mBAAmB,IAAI,6BAA6B,EACpD,kBAAkB,IAAI,0BAA0B,EAChD,cAAc,IAAI,sBAAsB,EACxC,oBAAoB,IAAI,oBAAoB,EAC5C,YAAY,IAAI,sBAAsB,EACtC,sBAAsB,IAAI,sBAAsB,EAChD,mBAAmB,IAAI,mBAAmB,EAC1C,mBAAmB,IAAI,mBAAmB,EAC1C,mBAAmB,IAAI,mBAAmB,EAC1C,EAAE,GACH,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,oBAAoB,IAAI,8BAA8B,EACtD,wBAAwB,IAAI,kCAAkC,EAC9D,uBAAuB,IAAI,+BAA+B,EAC1D,mBAAmB,IAAI,2BAA2B,EAClD,sBAAsB,IAAI,sBAAsB,EAChD,gBAAgB,IAAI,gBAAgB,EACpC,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,8BAA8B,CAAC;AAStC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { WorkflowsRootProps } from '../WorkflowsRoot';
|
|
3
|
+
|
|
4
|
+
export declare function WorkflowsProvider({ children, ...props }: WorkflowsRootProps & {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function useWorkflowsContext(): WorkflowsRootProps;
|
|
8
|
+
//# sourceMappingURL=WorkflowsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WorkflowsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA6B3D,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CA0G9C;AAED,wBAAgB,mBAAmB,uBAMlC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { setWorkflowsConfig as e } from "../config/index.js";
|
|
2
|
+
import { useWorkflowsTranslation as t } from "../i18n.js";
|
|
3
|
+
import { createContext as n, useEffect as r, useState as i } from "react";
|
|
4
|
+
import { resetFluidGridsClient as a, resetGlobalStoreClient as o, setFluidGridsClient as s, setFluidGridsConfig as c, setGlobalStoreClient as l } from "@burdenoff/fluidgrids-fe-sdk";
|
|
5
|
+
import { useGatewayClient as u } from "@burdenoff/fe-libs/shared/graphql";
|
|
6
|
+
import { PermissionProvider as d } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
7
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
8
|
+
//#region src/providers/WorkflowsProvider.tsx
|
|
9
|
+
var m = n(null);
|
|
10
|
+
function h(e) {
|
|
11
|
+
let t = e.endsWith("/") ? e.slice(0, -1) : e;
|
|
12
|
+
return t.endsWith("/graphql") ? t : `${t}/workspaces/graphql`;
|
|
13
|
+
}
|
|
14
|
+
function g({ children: n, ...g }) {
|
|
15
|
+
let _ = t(), v = u("workspace"), y = u("global"), [b, x] = i(!1);
|
|
16
|
+
return r(() => (v && y && (s(v), l(y), x(!0)), () => {
|
|
17
|
+
a(), o(), x(!1);
|
|
18
|
+
}), [v, y]), r(() => {
|
|
19
|
+
if (g.apiGatewayUrl) {
|
|
20
|
+
let t = h(g.apiGatewayUrl), n = g.apiGatewayUrl.endsWith("/") ? g.apiGatewayUrl.slice(0, -1) : g.apiGatewayUrl;
|
|
21
|
+
e({
|
|
22
|
+
workflowSvcUrl: t,
|
|
23
|
+
apiGatewayUrl: n
|
|
24
|
+
}), c({
|
|
25
|
+
apiGatewayUrl: n,
|
|
26
|
+
authToken: g.authToken,
|
|
27
|
+
workspaceId: g.workspaceId ?? "",
|
|
28
|
+
tenantId: g.tenantId,
|
|
29
|
+
productId: g.productId,
|
|
30
|
+
productName: g.productName
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}, [
|
|
34
|
+
g.apiGatewayUrl,
|
|
35
|
+
g.authToken,
|
|
36
|
+
g.workspaceId,
|
|
37
|
+
g.tenantId,
|
|
38
|
+
g.productId,
|
|
39
|
+
g.productName
|
|
40
|
+
]), g.workspaceId ? b ? /* @__PURE__ */ f(m.Provider, {
|
|
41
|
+
value: g,
|
|
42
|
+
children: /* @__PURE__ */ f(d, {
|
|
43
|
+
scopeId: g.workspaceId ?? null,
|
|
44
|
+
gateway: "workspace",
|
|
45
|
+
children: n
|
|
46
|
+
})
|
|
47
|
+
}) : /* @__PURE__ */ p("div", {
|
|
48
|
+
className: "flex h-full min-h-[200px] w-full flex-col items-center justify-center gap-3 px-6 text-center",
|
|
49
|
+
role: "status",
|
|
50
|
+
"aria-live": "polite",
|
|
51
|
+
"aria-label": _("workflows.provider.loading.ariaLabel", "Loading workflows"),
|
|
52
|
+
children: [/* @__PURE__ */ f("div", { className: "h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent" }), /* @__PURE__ */ f("p", {
|
|
53
|
+
className: "text-sm text-text-secondary",
|
|
54
|
+
children: _("workflows.provider.loading.message", "Connecting workflows...")
|
|
55
|
+
})]
|
|
56
|
+
}) : /* @__PURE__ */ f("div", {
|
|
57
|
+
className: "flex h-full min-h-[200px] w-full items-center justify-center px-6 text-center",
|
|
58
|
+
children: /* @__PURE__ */ p("div", {
|
|
59
|
+
className: "max-w-md",
|
|
60
|
+
children: [/* @__PURE__ */ f("h2", {
|
|
61
|
+
className: "mb-2 text-lg font-semibold text-text-primary",
|
|
62
|
+
children: _("workflows.provider.workspaceRequired.title", "Workspace context required")
|
|
63
|
+
}), /* @__PURE__ */ f("p", {
|
|
64
|
+
className: "text-sm text-text-secondary",
|
|
65
|
+
children: _("workflows.provider.workspaceRequired.description", "This workflows module needs an active workspace before it can load workflow data.")
|
|
66
|
+
})]
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { g as WorkflowsProvider };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getPlatform, isNative, isIOS, isAndroid, isWeb, nativeImpact, nativeNotify, nativeToast, nativeConfirm, nativeCopyText, nativeShare, nativeOpenUrl, useNativePlatform, useSafeArea, useNativeKeyboard, useAppState, useDeviceInfo, useHaptics, useStatusBar, } from '@burdenoff/fe-libs/shared/native';
|
|
2
|
+
export type { BurdenoffNativePlatform, BurdenoffNativeBridge, SafeAreaInsets, DeviceInfo, HapticImpactStyle, HapticNotificationType, ToastDuration, ConfirmOptions, ShareOptions, AppState, StatusBarTheme, } from '@burdenoff/fe-libs/shared/native';
|
|
3
|
+
//# sourceMappingURL=nativeBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeBridge.d.ts","sourceRoot":"","sources":["../../src/utils/nativeBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { config as e, resetWorkflowsConfig as t, setWorkflowsConfig as n } from "./config/index.js";
|
|
2
|
+
import { WorkflowsRoot as r } from "./WorkflowsRoot.js";
|
|
3
|
+
import { ExecutionDetailPage as i, ExecutionsListPage as a, FluidGridsProvider as o, FluidGridsRoot as s, HistoryPage as c, NodesPage as l, SettingsPage as u, TemplatesPage as d, WorkflowBuilder as f, WorkflowBuilderCore as p, WorkflowBuilderPage as m, WorkflowsList as h, cn as g, createFluidGridsClient as _, fetchAllNodesWithManifests as v, getFluidGridsClient as y, getFluidGridsClient as b, getFluidGridsClientSafe as x, isFluidGridsClientReady as S, resetFluidGridsClient as C, setFluidGridsClient as w, setFluidGridsClient as T, setFluidGridsConfig as E, useCreateWorkflow as D, useCreateWorkflowVersion as O, useDashboardSummary as k, useDeleteWorkflow as A, useDuplicateWorkflow as j, useFlowStore as M, useFluidGridsContext as N, useLazyNodeManifest as P, useLazyWorkflowDefinition as F, useNodeEndpoint as I, useNodeEndpoints as L, useNodeManifest as R, useTriggerWorkflow as z, useUpdateWorkflow as B, useWorkflowDefinition as V, useWorkflowDefinitions as H, useWorkflowRun as U, useWorkflowRuns as W, useWorkflowVersions as G, waitForFluidGridsClient as K } from "@burdenoff/fluidgrids-fe-sdk";
|
|
4
|
+
export { f as EmbeddableWorkflowBuilder, p as EmbeddableWorkflowBuilderCore, o as EmbeddableWorkflowProvider, s as EmbeddableWorkflowRoot, i as ExecutionDetailPage, a as ExecutionsListPage, c as HistoryPage, l as NodesPage, u as SettingsPage, d as TemplatesPage, m as WorkflowBuilderPage, h as WorkflowsList, r as WorkflowsRoot, g as cn, e as config, _ as createEmbeddableClient, v as fetchAllNodesWithManifests, b as getEmbeddableClient, y as getFluidGridsClient, x as getFluidGridsClientSafe, S as isFluidGridsClientReady, C as resetFluidGridsClient, t as resetWorkflowsConfig, T as setEmbeddableClient, E as setEmbeddableConfig, w as setFluidGridsClient, n as setWorkflowsConfig, D as useCreateWorkflow, O as useCreateWorkflowVersion, k as useDashboardSummary, A as useDeleteWorkflow, j as useDuplicateWorkflow, N as useEmbeddableContext, M as useEmbeddableFlowStore, P as useLazyNodeManifest, F as useLazyWorkflowDefinition, I as useNodeEndpoint, L as useNodeEndpoints, R as useNodeManifest, z as useTriggerWorkflow, B as useUpdateWorkflow, V as useWorkflowDefinition, H as useWorkflowDefinitions, U as useWorkflowRun, W as useWorkflowRuns, G as useWorkflowVersions, K as waitForFluidGridsClient };
|
package/package.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@burdenoff/microfe-workflows",
|
|
3
|
+
"version": "2026.510.108",
|
|
4
|
+
"description": "Workflows microfrontend for Burdenoff products - thin shell over @burdenoff/fluidgrids-fe-sdk",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/workflows.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "vite",
|
|
14
|
+
"build": "tsc && vite build",
|
|
15
|
+
"lint": "eslint .",
|
|
16
|
+
"lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
|
|
17
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
18
|
+
"type:check": "tsc --noEmit",
|
|
19
|
+
"sanity": "bun run codegen && bun run lint:sanity && bun run format && bun run build",
|
|
20
|
+
"schema:pull": "echo \"No GraphQL operations — skipping schema:pull\"",
|
|
21
|
+
"codegen": "echo \"No GraphQL operations — skipping codegen\"",
|
|
22
|
+
"codegen:all": "echo \"No GraphQL operations — skipping codegen:all\"",
|
|
23
|
+
"switch:status": "bun scripts/deps-mode.ts status",
|
|
24
|
+
"switch:remote": "bun scripts/deps-mode.ts remote",
|
|
25
|
+
"switch:local": "bun scripts/deps-mode.ts local",
|
|
26
|
+
"switch:check": "bun scripts/deps-mode.ts check",
|
|
27
|
+
"prepare": "lefthook install || true",
|
|
28
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx}\""
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@burdenoff/fe-libs": "2026.507.125",
|
|
32
|
+
"lucide-react": "^0.468.0",
|
|
33
|
+
"react": "^19.0.0",
|
|
34
|
+
"react-dom": "^19.0.0",
|
|
35
|
+
"react-router-dom": "^7.1.3"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@burdenoff/fluidgrids-fe-sdk": "2026.509.104",
|
|
39
|
+
"@eslint/js": "^9.39.2",
|
|
40
|
+
"@types/react": "^19.0.2",
|
|
41
|
+
"@types/react-dom": "^19.0.2",
|
|
42
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
43
|
+
"autoprefixer": "^10.4.20",
|
|
44
|
+
"eslint": "^9.18.0",
|
|
45
|
+
"eslint-plugin-react": "^7.37.5",
|
|
46
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
47
|
+
"globals": "^17.3.0",
|
|
48
|
+
"lefthook": "^2.1.1",
|
|
49
|
+
"postcss": "^8.4.49",
|
|
50
|
+
"prettier": "^3.4.2",
|
|
51
|
+
"tailwindcss": "^4.0.0",
|
|
52
|
+
"typescript": "^5.9.0",
|
|
53
|
+
"typescript-eslint": "^8.54.0",
|
|
54
|
+
"vite": "8.0.8",
|
|
55
|
+
"vite-plugin-dts": "3.9.1"
|
|
56
|
+
},
|
|
57
|
+
"peerDependencies": {
|
|
58
|
+
"@burdenoff/fluidgrids-fe-sdk": "2026.509.104",
|
|
59
|
+
"react": "^19.0.0",
|
|
60
|
+
"react-dom": "^19.0.0"
|
|
61
|
+
},
|
|
62
|
+
"peerDependenciesMeta": {
|
|
63
|
+
"@burdenoff/fluidgrids-fe-sdk": {
|
|
64
|
+
"optional": true
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"main": "./dist/workflows.js",
|
|
68
|
+
"types": "./dist/index.d.ts",
|
|
69
|
+
"files": [
|
|
70
|
+
"dist",
|
|
71
|
+
"package.json",
|
|
72
|
+
"README.md"
|
|
73
|
+
],
|
|
74
|
+
"publishConfig": {
|
|
75
|
+
"access": "restricted"
|
|
76
|
+
},
|
|
77
|
+
"overrides": {
|
|
78
|
+
"lodash": ">=4.17.21",
|
|
79
|
+
"lodash-es": ">=4.17.21",
|
|
80
|
+
"dompurify": ">=3.3.4",
|
|
81
|
+
"fast-xml-parser": ">=4.5.5",
|
|
82
|
+
"@xmldom/xmldom": ">=0.8.12",
|
|
83
|
+
"swiper": ">=12.1.2",
|
|
84
|
+
"brace-expansion": ">=1.1.13",
|
|
85
|
+
"follow-redirects": ">=1.15.12",
|
|
86
|
+
"smol-toml": ">=1.6.1",
|
|
87
|
+
"axios": ">=1.15.0",
|
|
88
|
+
"flatted": ">=3.4.1",
|
|
89
|
+
"yaml": ">=2.8.3",
|
|
90
|
+
"picomatch": ">=2.3.2",
|
|
91
|
+
"immutable": ">=3.8.3",
|
|
92
|
+
"minimatch": ">=3.1.3"
|
|
93
|
+
}
|
|
94
|
+
}
|