@yiyi_zhang/reactflow-ui 1.2.0 → 1.3.0
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/AiWorkflowIDE.d.ts +7 -0
- package/dist/WorkflowIDE.d.ts +9 -0
- package/dist/ai.d.ts +16 -0
- package/dist/components/business/StepFlowEditor.d.ts +6 -0
- package/dist/components/import/ApiImportDialog.d.ts +27 -0
- package/dist/components/onboarding/ModalShell.d.ts +15 -0
- package/dist/components/onboarding/OnboardingController.d.ts +67 -0
- package/dist/components/onboarding/OnboardingGuideCard.d.ts +10 -0
- package/dist/components/onboarding/OnboardingWizard.d.ts +42 -0
- package/dist/components/onboarding/PromotionPanel.d.ts +20 -0
- package/dist/components/onboarding/WorkflowNameBuilder.d.ts +19 -0
- package/dist/components/onboarding/index.d.ts +8 -0
- package/dist/components/onboarding/styles.d.ts +11 -0
- package/dist/components/onboarding/useOnboardingData.d.ts +17 -0
- package/dist/components/template/TemplateGallery.d.ts +2 -0
- package/dist/components/template/TemplateSetupWizard.d.ts +2 -0
- package/dist/import/buildAction.d.ts +23 -0
- package/dist/import/common.d.ts +17 -0
- package/dist/import/curl.d.ts +12 -0
- package/dist/import/detect.d.ts +9 -0
- package/dist/import/index.d.ts +10 -0
- package/dist/import/insert.d.ts +16 -0
- package/dist/import/openapi.d.ts +9 -0
- package/dist/import/postman.d.ts +9 -0
- package/dist/import/schema.d.ts +15 -0
- package/dist/import/sensitive.d.ts +18 -0
- package/dist/import/types.d.ts +62 -0
- package/dist/import/util.d.ts +23 -0
- package/dist/index.d.ts +16 -0
- package/dist/onboarding/index.d.ts +6 -0
- package/dist/onboarding/naming.d.ts +41 -0
- package/dist/onboarding/poll.d.ts +39 -0
- package/dist/onboarding/wizardState.d.ts +44 -0
- package/dist/providers/WorkflowIdeProvider.d.ts +23 -0
- package/dist/providers/resolve.d.ts +20 -0
- package/dist/providers/types.d.ts +65 -0
- package/dist/reactflow-ui-ai.es.js +11657 -9031
- package/dist/reactflow-ui.es.js +10254 -7554
- package/dist/reactflow-ui.umd.js +40 -28
- package/dist/sample-imports/cmdb-openapi3.json +334 -0
- package/dist/sample-imports/cmdb-postman.json +100 -0
- package/dist/sample-imports/ticket-swagger2.json +231 -0
- package/dist/store/sandboxRunObserver.d.ts +19 -0
- package/dist/telemetry/buffer.d.ts +37 -0
- package/dist/telemetry/once.d.ts +11 -0
- package/dist/telemetry/track.d.ts +17 -0
- package/dist/telemetry/types.d.ts +24 -0
- package/dist/telemetry/useTelemetry.d.ts +22 -0
- package/package.json +1 -1
package/dist/AiWorkflowIDE.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { AiConfig } from './services/ai/protocolAdapter';
|
|
|
11
11
|
import type { AiMetrics } from './store/aiStore';
|
|
12
12
|
import type { WorkflowLibraryItem } from './types/workflowLibrary';
|
|
13
13
|
import type { LibraryProvider } from './library/types';
|
|
14
|
+
import type { IdeProviders } from './providers/types';
|
|
14
15
|
import type { ExecutionActions, ThemeMode, ThemeColor, LayoutDirection, ViewMode, WorkflowExecutionInput } from './types/workflow';
|
|
15
16
|
import type { CustomTool } from './services/ai/toolRegistry';
|
|
16
17
|
import type { CustomValidationRule } from './services/ai/ruleEngine';
|
|
@@ -57,6 +58,12 @@ export interface AiWorkflowIDEProps {
|
|
|
57
58
|
* ```
|
|
58
59
|
*/
|
|
59
60
|
libraryProvider?: LibraryProvider;
|
|
61
|
+
/**
|
|
62
|
+
* 统一扩展点集合(`library` / `onboarding` / `telemetry`)。
|
|
63
|
+
* 解析顺序:专用 prop(如 `libraryProvider`)> 本 prop > 外层 `WorkflowIdeProvider` > 无。
|
|
64
|
+
* 按字段比较引用,宿主每次渲染新建对象但 provider 实例不变时不会触发目录重载。
|
|
65
|
+
*/
|
|
66
|
+
providers?: IdeProviders;
|
|
60
67
|
/**
|
|
61
68
|
* 流程库目录注入系统提示词的条数上限,默认 50(按层级 L3 -> L1 截断)。
|
|
62
69
|
* 超出部分会提示 AI 改用 `search_workflow_library` 检索。
|
package/dist/WorkflowIDE.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { AIServiceConfig } from './services/aiService';
|
|
|
4
4
|
import { ActionDefinition } from './actions/types';
|
|
5
5
|
import type { WorkflowLevel } from './types/workflowLibrary';
|
|
6
6
|
import type { LibraryProvider } from './library/types';
|
|
7
|
+
import type { IdeProviders } from './providers/types';
|
|
7
8
|
import './styles/tokens.css';
|
|
8
9
|
import './styles/executionStyles.css';
|
|
9
10
|
/**
|
|
@@ -18,6 +19,8 @@ export interface WorkflowIDERef {
|
|
|
18
19
|
save: () => void;
|
|
19
20
|
/** 创建空白工作流 */
|
|
20
21
|
createBlankWorkflow: (name?: string) => void;
|
|
22
|
+
/** 打开「导入接口」对话框(OpenAPI / Swagger / Postman / curl),供宿主或自助接入向导调用 */
|
|
23
|
+
openApiImport: () => void;
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
26
|
* WorkflowIDE 组件的属性接口
|
|
@@ -121,6 +124,12 @@ export interface WorkflowIDEProps {
|
|
|
121
124
|
* ```
|
|
122
125
|
*/
|
|
123
126
|
libraryProvider?: LibraryProvider;
|
|
127
|
+
/**
|
|
128
|
+
* 统一扩展点集合(`library` / `onboarding` / `telemetry`)。
|
|
129
|
+
* 解析顺序:专用 prop(如 `libraryProvider`)> 本 prop > 外层 `WorkflowIdeProvider` > 无。
|
|
130
|
+
* 按字段比较引用,宿主每次渲染新建对象但 provider 实例不变时不会触发目录重载。
|
|
131
|
+
*/
|
|
132
|
+
providers?: IdeProviders;
|
|
124
133
|
/**
|
|
125
134
|
* 当前正在编辑的工作流层级(L1 / L2 / L3)。
|
|
126
135
|
* 提供时,动作选择器隐藏违反分层调用规则的流程库动作(L1 不显示 L2/L3,L2 不显示 L3);未提供则不过滤。
|
package/dist/ai.d.ts
CHANGED
|
@@ -41,3 +41,19 @@ export { getCompletionItems, buildDataFlowGraph, refactorTaskReferenceName, getU
|
|
|
41
41
|
export type { WlspCompletionItem, DataFlowGraph, DataFlowEdge, InferredField, UpstreamTaskInfo, } from './services/wlsp/workflowLsp';
|
|
42
42
|
export { executeLocalSandboxDryRun, buildDefaultWorkflowMockInput, generateDefaultTaskOutputPreview, } from './utils/localSandboxEngine';
|
|
43
43
|
export type { SandboxDryRunOptions, TaskMockOverride, } from './utils/localSandboxEngine';
|
|
44
|
+
export { WorkflowIdeProvider, useIdeProviders } from './providers/WorkflowIdeProvider';
|
|
45
|
+
export type { WorkflowIdeProviderProps } from './providers/WorkflowIdeProvider';
|
|
46
|
+
export { resolveProviders, stabilizeProviders } from './providers/resolve';
|
|
47
|
+
export type { ProviderSources } from './providers/resolve';
|
|
48
|
+
export type { IdeProviders, OnboardingProvider, OnboardingContext, ProductInfo, StartTrialResult, PromotionStatus, } from './providers/types';
|
|
49
|
+
export { WorkflowNameBuilder, OnboardingWizard, PromotionPanel, OnboardingGuideCard } from './components/onboarding';
|
|
50
|
+
export type { WorkflowNameBuilderProps, OnboardingWizardProps, OnboardingCreateResult, PromotionPanelProps, OnboardingGuideCardProps, } from './components/onboarding';
|
|
51
|
+
export { buildWorkflowName, validateNameParts, suggestFuncSlug, promotionTargetName, isPromotableName, buildSkeletonWorkflow, nextPollDelay, isTerminalPromotionState, buildPromotionTimeline, promotionStateLabel, pollPromotion, } from './onboarding';
|
|
52
|
+
export type { WorkflowNameParts, PromotionTargetType, SkeletonInput, TimelineItem, PromotionState, StartSource } from './onboarding';
|
|
53
|
+
export { createTelemetryBuffer } from './telemetry/buffer';
|
|
54
|
+
export type { TelemetryBuffer, TelemetryBufferOptions } from './telemetry/buffer';
|
|
55
|
+
export type { TelemetrySink, IdeEvent, IdeEventName } from './telemetry/types';
|
|
56
|
+
export { detectFormat, parseApiText, parseOpenApi3, parseSwagger2, parsePostman21, parseCurl, buildHttpAction, appendImportedActions, sanitizeHeaders, } from './import';
|
|
57
|
+
export type { ImportFormat, DetectedFormat, ImportedOperation, ImportedParam, ImportedBody, ParseResult, BuildHttpActionOptions, } from './import';
|
|
58
|
+
export { ApiImportDialog } from './components/import/ApiImportDialog';
|
|
59
|
+
export type { ApiImportDialogProps, ApiImportInsertInfo } from './components/import/ApiImportDialog';
|
|
@@ -16,5 +16,11 @@ export interface StepFlowEditorProps {
|
|
|
16
16
|
currentWorkflowLevel?: WorkflowLevel;
|
|
17
17
|
/** 提供时,步骤头部显示「🤖」按钮,点击请 AI 介绍该步骤(AI IDE 中使用) */
|
|
18
18
|
onAskAi?: (step: BusinessStep) => void;
|
|
19
|
+
/** 通过动作选择器新增步骤后回调(埋点用):source = library(流程库能力)/ builtin(内置或宿主动作) */
|
|
20
|
+
onStepAdded?: (info: {
|
|
21
|
+
source: 'library' | 'builtin';
|
|
22
|
+
}) => void;
|
|
23
|
+
/** 本地沙箱试跑结束后回调(埋点用):result 为执行状态,或 'error'(试跑抛错) */
|
|
24
|
+
onSandboxRun?: (result: string) => void;
|
|
19
25
|
}
|
|
20
26
|
export declare const StepFlowEditor: React.FC<StepFlowEditorProps>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ActionDefinition } from '../../actions/types';
|
|
3
|
+
import type { ImportFormat } from '../../import/types';
|
|
4
|
+
export interface ApiImportInsertInfo {
|
|
5
|
+
format: ImportFormat;
|
|
6
|
+
/** 本次插入的步骤数 */
|
|
7
|
+
count: number;
|
|
8
|
+
/** 解析时产生的提示(敏感头替换、不支持的部分等) */
|
|
9
|
+
warnings: string[];
|
|
10
|
+
}
|
|
11
|
+
export interface ApiImportDialogProps {
|
|
12
|
+
open: boolean;
|
|
13
|
+
onClose: () => void;
|
|
14
|
+
/**
|
|
15
|
+
* 确认插入:actions 为所选接口生成的 HTTP 业务动作(按文档顺序)。
|
|
16
|
+
* 调用方负责把动作注册到动作库并把步骤追加到流程(可用 `appendImportedActions`);
|
|
17
|
+
* 对话框在回调返回后自动关闭。B2 向导的「从接口导入」可直接复用本组件。
|
|
18
|
+
*/
|
|
19
|
+
onInsert: (actions: ActionDefinition[], info: ApiImportInsertInfo) => void;
|
|
20
|
+
/** 已存在的动作 id,用于避免重复导入时 id 冲突 */
|
|
21
|
+
existingActionIds?: Iterable<string>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 接口导入对话框:粘贴或上传 -> 识别格式 -> 勾选接口 -> 插入为步骤。
|
|
25
|
+
* 外层仅在打开时挂载内容,因此每次打开都是干净状态。
|
|
26
|
+
*/
|
|
27
|
+
export declare const ApiImportDialog: React.FC<ApiImportDialogProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface ModalShellProps {
|
|
3
|
+
/** 用于 aria-labelledby 的标题元素 id */
|
|
4
|
+
titleId: string;
|
|
5
|
+
title: string;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
footer?: ReactNode;
|
|
9
|
+
width?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 自助接入弹窗外壳:Portal 渲染到 body,并带上 data-mode / data-brand 使主题变量生效。
|
|
13
|
+
* 无障碍:role="dialog" + aria-modal + 标题关联;Esc 关闭;Tab 在弹窗内循环;关闭后焦点回到打开前的元素。
|
|
14
|
+
*/
|
|
15
|
+
export declare function ModalShell({ titleId, title, onClose, children, footer, width }: ModalShellProps): import("react").ReactPortal | null;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { OnboardingProvider, ProductInfo } from '../../providers/types';
|
|
2
|
+
import type { WorkflowLevel } from '../../types/workflowLibrary';
|
|
3
|
+
import type { IdeEventName } from '../../telemetry/types';
|
|
4
|
+
import type { OnboardingCreateResult } from './OnboardingWizard';
|
|
5
|
+
import type { OnboardingData } from './useOnboardingData';
|
|
6
|
+
/** 向导创建骨架后、选择了模板 / 导入时暂存的流程身份,供宿主在后续步骤里保留名称 */
|
|
7
|
+
export interface PendingIdentity {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
ownerEmail?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface OnboardingControllerOptions {
|
|
13
|
+
/** 解析后的 providers.onboarding;不存在时一切入口都不出现 */
|
|
14
|
+
provider: OnboardingProvider | undefined;
|
|
15
|
+
/** useTelemetry 返回的 track */
|
|
16
|
+
track: (name: IdeEventName, props?: Record<string, unknown>) => void;
|
|
17
|
+
/** 只读 / 运行态时隐藏入口 */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** 向导「模板中心」起点的回调;不提供则隐藏该选项 */
|
|
20
|
+
onPickTemplate?: () => void;
|
|
21
|
+
/** 向导「从接口导入」起点的回调;不提供则隐藏该选项 */
|
|
22
|
+
onImportApi?: () => void;
|
|
23
|
+
ownerEmail?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface OnboardingController {
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
data: OnboardingData;
|
|
28
|
+
/** 向导选择的层级;宿主没有传 currentWorkflowLevel 时作为默认值 */
|
|
29
|
+
level: WorkflowLevel | undefined;
|
|
30
|
+
wizardOpen: boolean;
|
|
31
|
+
promoOpen: boolean;
|
|
32
|
+
openWizard: () => void;
|
|
33
|
+
openPromotion: () => void;
|
|
34
|
+
/** 当前流程是否可申请上线(名称可解析且类型为 tmp) */
|
|
35
|
+
canPromote: boolean;
|
|
36
|
+
/** 是否显示空画布的「开始试用」引导 */
|
|
37
|
+
showGuide: boolean;
|
|
38
|
+
dismissGuide: () => void;
|
|
39
|
+
/** 取走并清空暂存的流程身份(选了模板 / 导入后使用) */
|
|
40
|
+
takePendingIdentity: () => PendingIdentity | null;
|
|
41
|
+
provider: OnboardingProvider | undefined;
|
|
42
|
+
/** 以下供 OnboardingOverlays 使用 */
|
|
43
|
+
close: () => void;
|
|
44
|
+
handleCreate: (r: OnboardingCreateResult) => void;
|
|
45
|
+
handleTrialStarted: (p: ProductInfo) => void;
|
|
46
|
+
onPickTemplate?: () => void;
|
|
47
|
+
onImportApi?: () => void;
|
|
48
|
+
ownerEmail?: string;
|
|
49
|
+
track: OnboardingControllerOptions['track'];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* IDE 内部使用:把自助接入的状态与动作集中在一处,IDE 只需渲染
|
|
53
|
+
* `<OnboardingToolbarButtons>`、`<OnboardingOverlays>` 与(可选)引导卡片。
|
|
54
|
+
*/
|
|
55
|
+
export declare function useOnboardingController(opts: OnboardingControllerOptions): OnboardingController;
|
|
56
|
+
/** 工具栏入口:「新建流程」与「申请上线」。没有 onboarding provider 时不渲染任何内容 */
|
|
57
|
+
export declare function OnboardingToolbarButtons({ c }: {
|
|
58
|
+
c: OnboardingController;
|
|
59
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
60
|
+
/** 弹窗:向导与申请上线面板(Portal 渲染,自带主题属性) */
|
|
61
|
+
export declare function OnboardingOverlays({ c }: {
|
|
62
|
+
c: OnboardingController;
|
|
63
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
64
|
+
/** 空画布引导:覆盖整个 IDE 的半透明层(不拦截点击),卡片居中;仅 `c.showGuide` 时渲染 */
|
|
65
|
+
export declare function OnboardingGuideOverlay({ c }: {
|
|
66
|
+
c: OnboardingController;
|
|
67
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface OnboardingGuideCardProps {
|
|
2
|
+
onStart: () => void;
|
|
3
|
+
/** 提供时显示「暂不使用」,用于露出画布原有的空状态 */
|
|
4
|
+
onDismiss?: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* 空画布上的「开始试用」引导卡片。
|
|
8
|
+
* 仅在测试环境开放自助试用且用户还没有所属产品时由宿主显示。
|
|
9
|
+
*/
|
|
10
|
+
export declare function OnboardingGuideCard({ onStart, onDismiss }: OnboardingGuideCardProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { OnboardingProvider, ProductInfo } from '../../providers/types';
|
|
2
|
+
import type { WorkflowDef } from '../../types/conductor';
|
|
3
|
+
import type { WorkflowLevel } from '../../types/workflowLibrary';
|
|
4
|
+
import type { StartSource } from '../../onboarding/wizardState';
|
|
5
|
+
export interface OnboardingCreateResult {
|
|
6
|
+
/** 向导生成的骨架定义(名称已按规范拼好) */
|
|
7
|
+
def: WorkflowDef;
|
|
8
|
+
/** 所选层级,宿主可据此设置 `currentWorkflowLevel` */
|
|
9
|
+
level: WorkflowLevel;
|
|
10
|
+
/** 起点:空白 / 模板中心 / 从接口导入 */
|
|
11
|
+
source: StartSource;
|
|
12
|
+
}
|
|
13
|
+
export interface OnboardingWizardProps {
|
|
14
|
+
/** 只用到 startTrial;传完整的 OnboardingProvider 即可 */
|
|
15
|
+
provider: Pick<OnboardingProvider, 'startTrial'>;
|
|
16
|
+
/** 当前环境是否开放自助试用(决定能否登记新产品、类型是否固定 tmp) */
|
|
17
|
+
trialEnabled: boolean;
|
|
18
|
+
/** 我的产品 */
|
|
19
|
+
products: ProductInfo[];
|
|
20
|
+
/** 业务域列表 */
|
|
21
|
+
domains: string[];
|
|
22
|
+
/** 默认层级,默认 L2 */
|
|
23
|
+
defaultLevel?: WorkflowLevel;
|
|
24
|
+
/** 写入骨架定义的负责人邮箱 */
|
|
25
|
+
ownerEmail?: string;
|
|
26
|
+
onClose: () => void;
|
|
27
|
+
/** 完成:交给宿主把骨架设为当前流程 */
|
|
28
|
+
onCreate: (result: OnboardingCreateResult) => void;
|
|
29
|
+
/** 新产品登记成功(宿主可刷新「我的产品」、上报 trial_started) */
|
|
30
|
+
onTrialStarted?: (product: ProductInfo) => void;
|
|
31
|
+
/** 选择「从模板中心开始」:创建骨架后调用,宿主打开模板中心;不提供则隐藏该选项 */
|
|
32
|
+
onPickTemplate?: () => void;
|
|
33
|
+
/** 选择「从接口导入」:创建骨架后调用,宿主打开导入面板;不提供则隐藏该选项 */
|
|
34
|
+
onImportApi?: () => void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 自助接入向导(3 步弹窗):产品 → 命名 → 起点。
|
|
38
|
+
* - 试用环境可登记新产品(startTrial);产品被他人占用时提示联系负责人;
|
|
39
|
+
* - 接口失败停在当前步,显示「重试」,已填内容保留;
|
|
40
|
+
* - 完成后用 `onCreate({ def, level, source })` 交给宿主设置当前流程。
|
|
41
|
+
*/
|
|
42
|
+
export declare function OnboardingWizard({ provider, trialEnabled, products, domains, defaultLevel, ownerEmail, onClose, onCreate, onTrialStarted, onPickTemplate, onImportApi, }: OnboardingWizardProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { OnboardingProvider, PromotionStatus } from '../../providers/types';
|
|
2
|
+
import type { PromotionTargetType } from '../../onboarding/naming';
|
|
3
|
+
export interface PromotionPanelProps {
|
|
4
|
+
/** 用到 requestPromotion / getPromotion */
|
|
5
|
+
provider: Pick<OnboardingProvider, 'requestPromotion' | 'getPromotion'>;
|
|
6
|
+
/** 当前(tmp 类型的)流程名称 */
|
|
7
|
+
workflowName: string;
|
|
8
|
+
/** 当前流程版本 */
|
|
9
|
+
version: number;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
/** 提交成功(埋点:promotion_requested) */
|
|
12
|
+
onRequested?: (targetType: PromotionTargetType) => void;
|
|
13
|
+
/** 状态变化(埋点:promotion_state),同一状态只回调一次 */
|
|
14
|
+
onStateChange?: (state: PromotionStatus['state']) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 申请上线面板:选择目标类型 → 预览正式名称 → 提交 → 轮询进度(指数退避,30 秒封顶)。
|
|
18
|
+
* 轮询在关闭面板 / 卸载时中止。
|
|
19
|
+
*/
|
|
20
|
+
export declare function PromotionPanel({ provider, workflowName, version, onClose, onRequested, onStateChange }: PromotionPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ProductInfo } from '../../providers/types';
|
|
2
|
+
import type { WorkflowNameParts } from '../../onboarding/naming';
|
|
3
|
+
export interface WorkflowNameBuilderProps {
|
|
4
|
+
/** 可选的所属产品(我的产品);业务域取自所选产品 */
|
|
5
|
+
products: ProductInfo[];
|
|
6
|
+
/** 允许的业务域列表;提供时参与校验 */
|
|
7
|
+
domains?: string[];
|
|
8
|
+
/** 试用环境:类型固定为 tmp;否则可选 custom / std */
|
|
9
|
+
trial: boolean;
|
|
10
|
+
value: WorkflowNameParts;
|
|
11
|
+
onChange: (next: WorkflowNameParts) => void;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 五段式命名生成器:`类型-层级-业务域-产品-功能`。
|
|
16
|
+
* 受控组件:类型(试用固定 tmp)、层级、产品(下拉我的产品,业务域随产品带出)、功能(自由输入,推荐 snake_case),
|
|
17
|
+
* 实时预览完整名称并用 `validateWorkflowName` 校验。
|
|
18
|
+
*/
|
|
19
|
+
export declare function WorkflowNameBuilder({ products, domains, trial, value, onChange, disabled }: WorkflowNameBuilderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { WorkflowNameBuilder } from './WorkflowNameBuilder';
|
|
2
|
+
export type { WorkflowNameBuilderProps } from './WorkflowNameBuilder';
|
|
3
|
+
export { OnboardingWizard } from './OnboardingWizard';
|
|
4
|
+
export type { OnboardingWizardProps, OnboardingCreateResult } from './OnboardingWizard';
|
|
5
|
+
export { PromotionPanel } from './PromotionPanel';
|
|
6
|
+
export type { PromotionPanelProps } from './PromotionPanel';
|
|
7
|
+
export { OnboardingGuideCard } from './OnboardingGuideCard';
|
|
8
|
+
export type { OnboardingGuideCardProps } from './OnboardingGuideCard';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
/** 自助接入组件共用的内联样式:只使用主题 CSS 变量,弹窗根节点另行设置 data-mode / data-brand */
|
|
3
|
+
export declare const labelStyle: CSSProperties;
|
|
4
|
+
export declare const inputStyle: CSSProperties;
|
|
5
|
+
export declare const hintStyle: CSSProperties;
|
|
6
|
+
export declare const errorStyle: CSSProperties;
|
|
7
|
+
export declare const buttonBase: CSSProperties;
|
|
8
|
+
export declare const primaryButton: CSSProperties;
|
|
9
|
+
export declare const ghostButton: CSSProperties;
|
|
10
|
+
export declare function disabledStyle(base: CSSProperties, disabled: boolean): CSSProperties;
|
|
11
|
+
export declare const noticeStyle: (kind: "error" | "warning" | "success") => CSSProperties;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OnboardingContext, OnboardingProvider, ProductInfo } from '../../providers/types';
|
|
2
|
+
export interface OnboardingData {
|
|
3
|
+
status: 'idle' | 'loading' | 'ready' | 'error';
|
|
4
|
+
context: OnboardingContext | null;
|
|
5
|
+
domains: string[];
|
|
6
|
+
products: ProductInfo[];
|
|
7
|
+
error: string | null;
|
|
8
|
+
/** 重新加载(失败后重试) */
|
|
9
|
+
reload: () => void;
|
|
10
|
+
/** 新登记产品后本地追加,避免再请求一次 */
|
|
11
|
+
addProduct: (p: ProductInfo) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 按 provider 实例加载一次:上下文、业务域、我的产品。
|
|
15
|
+
* provider 引用变化时重新加载;卸载或切换时中止进行中的请求。没有 provider 时保持 idle。
|
|
16
|
+
*/
|
|
17
|
+
export declare function useOnboardingData(provider: OnboardingProvider | undefined): OnboardingData;
|
|
@@ -6,5 +6,7 @@ export interface TemplateGalleryProps {
|
|
|
6
6
|
onClose: () => void;
|
|
7
7
|
onSelectTemplate: (configuredDef: WorkflowDef) => void;
|
|
8
8
|
templateStore?: TemplateStore;
|
|
9
|
+
/** 试跑结束(快捷试跑或向导内试跑):参数为最终状态或 'error',用于接入埋点,不含数据 */
|
|
10
|
+
onSandboxRun?: (result: string) => void;
|
|
9
11
|
}
|
|
10
12
|
export declare const TemplateGallery: React.FC<TemplateGalleryProps>;
|
|
@@ -5,5 +5,7 @@ export interface TemplateSetupWizardProps {
|
|
|
5
5
|
template: WorkflowTemplate;
|
|
6
6
|
onApply: (configuredDef: WorkflowDef) => void;
|
|
7
7
|
onClose: () => void;
|
|
8
|
+
/** 向导内试跑结束:最终状态或 'error'(埋点用,不含数据) */
|
|
9
|
+
onSandboxRun?: (result: string) => void;
|
|
8
10
|
}
|
|
9
11
|
export declare const TemplateSetupWizard: React.FC<TemplateSetupWizardProps>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ImportedOperation → 业务动作(ActionDefinition)。
|
|
3
|
+
*
|
|
4
|
+
* - 字段:路径参数 / 查询参数 / 请求头参数 / 请求体属性,沿用 `buildFields` 规则(title → 标签、enum → 下拉、
|
|
5
|
+
* 类型 → 控件),全部支持插入数据胶囊;
|
|
6
|
+
* - 出参:2xx 响应 schema,沿用 `buildOutputs`,键为 Conductor HTTP 任务的真实输出路径
|
|
7
|
+
* `response.body.<字段>`,因此数据胶囊引用 `${ref.output.response.body.xxx}` 运行时可直接取到;
|
|
8
|
+
* - 编译:Conductor `HTTP` 任务,`inputParameters` 里保留 `_actionId` 与各字段值,
|
|
9
|
+
* 使步骤重新打开时能被 `decompile` 还原为同一动作(动作未注册时退回「专业步骤」卡片,定义无损)。
|
|
10
|
+
*/
|
|
11
|
+
import type { ActionDefinition } from '../actions/types';
|
|
12
|
+
import type { ImportedOperation } from './types';
|
|
13
|
+
export interface BuildHttpActionOptions {
|
|
14
|
+
/** 已存在的动作 id(完整 id,如 `import.get_tickets`):冲突时自动追加 `_2` 等后缀 */
|
|
15
|
+
existingIds?: Iterable<string>;
|
|
16
|
+
/** 动作 id 前缀,默认 `import` */
|
|
17
|
+
idPrefix?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 由导入的接口生成 HTTP 业务动作。
|
|
21
|
+
* 固定请求头会再做一次敏感值检查(解析器已处理时这里是空操作),保证动作定义里不会出现凭据。
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildHttpAction(op: ImportedOperation, opts?: BuildHttpActionOptions): ActionDefinition;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** 各格式解析器共用的收尾逻辑(纯函数)。 */
|
|
2
|
+
import type { ImportedOperation } from './types';
|
|
3
|
+
import type { ImportedParam } from './types';
|
|
4
|
+
/** 收尾:替换固定请求头里的敏感值,并把提示并入接口的 warnings */
|
|
5
|
+
export declare function finishOperation(op: ImportedOperation): ImportedOperation;
|
|
6
|
+
/** 接口的展示标识:`GET /tickets/{id}` */
|
|
7
|
+
export declare function operationLabel(op: Pick<ImportedOperation, 'method' | 'path'>): string;
|
|
8
|
+
/** 汇总所有接口的提示(带接口前缀,去重) */
|
|
9
|
+
export declare function collectWarnings(ops: ImportedOperation[], extra?: string[]): string[];
|
|
10
|
+
/** 把 JSON 示例的顶层属性作为默认值写入 schema;敏感字段名的默认值换成占位 */
|
|
11
|
+
export declare function schemaWithDefaults(example: unknown, warnings: string[]): Record<string, any>;
|
|
12
|
+
/** 把查询串解析为 query 参数(字面量作为默认值;敏感参数名的值替换为占位) */
|
|
13
|
+
export declare function queryParamsFromString(query: string, warnings: string[]): ImportedParam[];
|
|
14
|
+
/** Content-Type / Accept 由 body.contentType 与 accept 统一输出,不再作为固定头 */
|
|
15
|
+
export declare function dropContentHeaders(headers: Record<string, string>): Record<string, string>;
|
|
16
|
+
/** 不区分大小写取请求头的值 */
|
|
17
|
+
export declare function findHeader(headers: Record<string, string>, name: string): string | undefined;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* curl 命令 → ImportedOperation[](恒为 0 或 1 个接口)。
|
|
3
|
+
* 支持:-X、-H(多个)、-d / --data / --data-raw / --data-binary、-u、--url、-G、行尾 `\` 续行、
|
|
4
|
+
* 单引号 / 双引号 / `$'…'`(浏览器「复制为 cURL」)。不执行任何命令。
|
|
5
|
+
*/
|
|
6
|
+
import type { ParseResult } from './types';
|
|
7
|
+
/** 把命令行切成 token(兼容续行与常见引号写法) */
|
|
8
|
+
export declare function tokenizeCurl(input: string): string[];
|
|
9
|
+
/** 提示用的 curl 示例(对话框 placeholder 使用) */
|
|
10
|
+
export declare const CURL_SAMPLE = "curl -X POST 'https://api.example.com/v1/tickets' \\\n -H 'Content-Type: application/json' \\\n -H 'Authorization: Bearer <token>' \\\n -d '{\"title\":\"\u78C1\u76D8\u544A\u8B66\",\"priority\":\"high\"}'";
|
|
11
|
+
/** 解析一条 curl 命令 */
|
|
12
|
+
export declare function parseCurl(command: string): ParseResult;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** 输入格式识别与统一入口(纯函数,不抛异常)。 */
|
|
2
|
+
import type { DetectedFormat, ParseResult } from './types';
|
|
3
|
+
/** 识别输入文本的格式 */
|
|
4
|
+
export declare function detectFormat(text: string): DetectedFormat;
|
|
5
|
+
/**
|
|
6
|
+
* 识别并解析:返回 ParseResult,永不抛异常。
|
|
7
|
+
* YAML 不受支持,返回固定提示 {@link YAML_HINT}。
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseApiText(text: string): ParseResult;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export { detectFormat, parseApiText } from './detect';
|
|
3
|
+
export { parseOpenApi3, parseSwagger2 } from './openapi';
|
|
4
|
+
export { parsePostman21 } from './postman';
|
|
5
|
+
export { parseCurl, tokenizeCurl, CURL_SAMPLE } from './curl';
|
|
6
|
+
export { buildHttpAction } from './buildAction';
|
|
7
|
+
export type { BuildHttpActionOptions } from './buildAction';
|
|
8
|
+
export { appendImportedActions, blankImportWorkflow, collectWorkflowInputRefs } from './insert';
|
|
9
|
+
export { resolveSchema } from './schema';
|
|
10
|
+
export { isSensitiveHeader, sanitizeHeaders, inputPlaceholder } from './sensitive';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 把导入生成的动作作为步骤追加到流程末尾(纯函数,业务模式与专业模式共用)。
|
|
3
|
+
* B2 向导的「从接口导入」也可直接复用。
|
|
4
|
+
*/
|
|
5
|
+
import type { ActionDefinition } from '../actions/types';
|
|
6
|
+
import type { TaskDef, WorkflowDef } from '../types/conductor';
|
|
7
|
+
/** 没有当前流程时使用的空白骨架 */
|
|
8
|
+
export declare function blankImportWorkflow(name?: string): WorkflowDef;
|
|
9
|
+
/** 取出任务里引用的 `${workflow.input.xxx}` 的顶层入参名 */
|
|
10
|
+
export declare function collectWorkflowInputRefs(tasks: TaskDef[]): string[];
|
|
11
|
+
/**
|
|
12
|
+
* 为每个动作按默认值生成一个步骤并追加到 `def.tasks` 末尾;
|
|
13
|
+
* 步骤引用的 `${workflow.input.xxx}`(敏感头占位、路径参数默认值等)会补进流程的入参声明。
|
|
14
|
+
* 不修改入参,返回新的定义。
|
|
15
|
+
*/
|
|
16
|
+
export declare function appendImportedActions(def: WorkflowDef | null | undefined, actions: ActionDefinition[]): WorkflowDef;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI 3.x / Swagger 2.0(JSON 文档对象)→ ImportedOperation[]。
|
|
3
|
+
* 只做解析,不发请求;解析失败返回 { ok: false },不抛异常。
|
|
4
|
+
*/
|
|
5
|
+
import type { ParseResult } from './types';
|
|
6
|
+
/** 解析 OpenAPI 3.x 文档对象 */
|
|
7
|
+
export declare function parseOpenApi3(doc: unknown): ParseResult;
|
|
8
|
+
/** 解析 Swagger 2.0 文档对象 */
|
|
9
|
+
export declare function parseSwagger2(doc: unknown): ParseResult;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Postman Collection v2.1(JSON 文档对象)→ ImportedOperation[]。
|
|
3
|
+
* Postman 变量 `{{var}}` 转为 `${workflow.input.var}`;认证配置只生成占位,不读取凭据值。
|
|
4
|
+
*/
|
|
5
|
+
import type { ParseResult } from './types';
|
|
6
|
+
/** `{{var}}` → `${workflow.input.var}`;记录用到的变量名 */
|
|
7
|
+
export declare function convertPostmanVars(text: string, used?: Set<string>): string;
|
|
8
|
+
/** 解析 Postman Collection v2.1 文档对象 */
|
|
9
|
+
export declare function parsePostman21(doc: unknown): ParseResult;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema 本地 `$ref` 解析(OpenAPI 3 `#/components/schemas/...`、Swagger 2 `#/definitions/...`)。
|
|
3
|
+
* 防循环引用,最大展开深度 6;不处理远程引用。
|
|
4
|
+
*/
|
|
5
|
+
import type { JsonSchema } from './types';
|
|
6
|
+
export declare const MAX_SCHEMA_DEPTH = 6;
|
|
7
|
+
/** 按 JSON Pointer(`#/a/b`)取值,找不到返回 undefined */
|
|
8
|
+
export declare function resolvePointer(root: unknown, ref: string): unknown;
|
|
9
|
+
/** 解开非 schema 对象(parameter / requestBody / response)上的 `$ref`,最多跳 10 次 */
|
|
10
|
+
export declare function derefObject<T = any>(node: unknown, root: unknown): T | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* 解析 schema:展开本地 `$ref` 与 allOf,oneOf / anyOf 取第一个分支。
|
|
13
|
+
* 超过深度上限的节点只保留类型;循环引用处截断为 `{ type: 'object' }` 并在 warnings 中提示一次。
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveSchema(schema: unknown, root: unknown, warnings?: string[], maxDepth?: number): JsonSchema;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 敏感信息处理:请求头 / 查询参数 / 请求体字段里的凭据不落入流程定义,
|
|
3
|
+
* 一律替换为 `${workflow.input.xxx}` 占位,并给出提示。
|
|
4
|
+
*/
|
|
5
|
+
export declare function isSensitiveHeader(name: string): boolean;
|
|
6
|
+
/** 查询参数 / 请求体字段名是否敏感 */
|
|
7
|
+
export declare function isSensitiveName(name: string): boolean;
|
|
8
|
+
/** 占位表达式:`${workflow.input.<camelName>}` */
|
|
9
|
+
export declare function inputPlaceholder(name: string): string;
|
|
10
|
+
export declare function sensitiveHeaderWarning(name: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* 替换请求头中的敏感值。已是 `${...}` 表达式的值视为已处理,原样保留。
|
|
13
|
+
* 返回新对象,不修改入参。
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitizeHeaders(headers: Record<string, string>): {
|
|
16
|
+
headers: Record<string, string>;
|
|
17
|
+
warnings: string[];
|
|
18
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 接口导入:解析结果的公共类型(纯数据,无 React 依赖)。
|
|
3
|
+
* 设计见 docs/design/v1.3.0-自助接入设计.md 第 4 节。
|
|
4
|
+
*/
|
|
5
|
+
/** 可导入的来源格式 */
|
|
6
|
+
export type ImportFormat = 'openapi3' | 'swagger2' | 'postman21' | 'curl';
|
|
7
|
+
/** detectFormat 的结果:除可导入格式外,还可能是 YAML(不支持)或无法识别 */
|
|
8
|
+
export type DetectedFormat = ImportFormat | 'yaml' | 'unknown';
|
|
9
|
+
/** JSON Schema 片段(已解析本地 $ref,保持宽松类型) */
|
|
10
|
+
export type JsonSchema = Record<string, any>;
|
|
11
|
+
export type ParamLocation = 'path' | 'query' | 'header';
|
|
12
|
+
export interface ImportedParam {
|
|
13
|
+
name: string;
|
|
14
|
+
in: ParamLocation;
|
|
15
|
+
required: boolean;
|
|
16
|
+
schema: JsonSchema;
|
|
17
|
+
description?: string;
|
|
18
|
+
/** 导入时带入的默认值(curl / Postman 中的字面量;敏感名称已替换为占位) */
|
|
19
|
+
defaultValue?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ImportedBody {
|
|
22
|
+
/** 例如 application/json */
|
|
23
|
+
contentType: string;
|
|
24
|
+
/** object 且含 properties 时拆成多个字段;否则整体作为单个 `body` 字段 */
|
|
25
|
+
schema: JsonSchema;
|
|
26
|
+
}
|
|
27
|
+
export interface ImportedOperation {
|
|
28
|
+
/** 同一次解析内唯一,形如 `get_tickets_id`,用于动作 id(`import.<id>`) */
|
|
29
|
+
id: string;
|
|
30
|
+
/** 大写 HTTP 方法 */
|
|
31
|
+
method: string;
|
|
32
|
+
/** 服务地址(不含路径),可能为空或含 `${workflow.input.xxx}` */
|
|
33
|
+
baseUrl: string;
|
|
34
|
+
/** 路径模板,路径参数写作 `{id}` */
|
|
35
|
+
path: string;
|
|
36
|
+
summary?: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
operationId?: string;
|
|
39
|
+
tags: string[];
|
|
40
|
+
params: ImportedParam[];
|
|
41
|
+
/** 固定请求头(敏感头的值已替换为 `${workflow.input.xxx}` 占位) */
|
|
42
|
+
headers: Record<string, string>;
|
|
43
|
+
body?: ImportedBody;
|
|
44
|
+
/** 2xx 响应的 JSON Schema */
|
|
45
|
+
responseSchema?: JsonSchema;
|
|
46
|
+
/** 与该接口相关的提示(敏感头替换、不支持的部分等) */
|
|
47
|
+
warnings: string[];
|
|
48
|
+
}
|
|
49
|
+
export type ParseResult = {
|
|
50
|
+
ok: true;
|
|
51
|
+
format: ImportFormat;
|
|
52
|
+
operations: ImportedOperation[];
|
|
53
|
+
/** 汇总提示(含各接口的提示,已带接口前缀) */
|
|
54
|
+
warnings: string[];
|
|
55
|
+
} | {
|
|
56
|
+
ok: false;
|
|
57
|
+
format?: DetectedFormat;
|
|
58
|
+
/** 面向用户的中文错误信息 */
|
|
59
|
+
error: string;
|
|
60
|
+
};
|
|
61
|
+
/** 提示用户把 YAML 转成 JSON 的固定文案 */
|
|
62
|
+
export declare const YAML_HINT = "YAML \u8BF7\u5148\u8F6C\u4E3A JSON \u540E\u518D\u5BFC\u5165";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** 接口导入内部的小工具(纯函数)。 */
|
|
2
|
+
import type { JsonSchema } from './types';
|
|
3
|
+
export declare const HTTP_METHODS: readonly ["get", "post", "put", "delete", "patch", "head", "options"];
|
|
4
|
+
export declare function isPlainObject(v: unknown): v is Record<string, any>;
|
|
5
|
+
/** 去 BOM、首尾空白 */
|
|
6
|
+
export declare function normalizeText(text: string): string;
|
|
7
|
+
/** 把任意名称转为 snake_case 片段(只保留字母数字) */
|
|
8
|
+
export declare function slugify(raw: string, maxLen?: number): string;
|
|
9
|
+
/** 把名称转为 camelCase(用于 `${workflow.input.xxx}`) */
|
|
10
|
+
export declare function camelName(raw: string): string;
|
|
11
|
+
/** 在已有 id 集合内取唯一 id(冲突时追加 _2、_3…),并登记到集合 */
|
|
12
|
+
export declare function uniqueId(base: string, used: Set<string>): string;
|
|
13
|
+
/** 由一个 JSON 示例值推断简单 schema(不含 default) */
|
|
14
|
+
export declare function inferSchema(value: unknown, depth?: number): JsonSchema;
|
|
15
|
+
/** 取 schema 的主类型(忽略 null) */
|
|
16
|
+
export declare function schemaType(schema: JsonSchema | undefined): string;
|
|
17
|
+
/** 简单的 URL 拆分:baseUrl(协议+主机 或 `${...}` 变量)、路径、查询串 */
|
|
18
|
+
export declare function splitUrl(raw: string): {
|
|
19
|
+
baseUrl: string;
|
|
20
|
+
path: string;
|
|
21
|
+
query: string;
|
|
22
|
+
};
|
|
23
|
+
export declare function safeDecode(s: string): string;
|
package/dist/index.d.ts
CHANGED
|
@@ -43,3 +43,19 @@ export type { RunStoryTimelineProps } from './components/business/RunStoryTimeli
|
|
|
43
43
|
export * from './library';
|
|
44
44
|
export type { WorkflowLevel, WorkflowLibraryItem } from './types/workflowLibrary';
|
|
45
45
|
export type { TaskSchema } from './services/ai/schemaRegistry';
|
|
46
|
+
export { WorkflowIdeProvider, useIdeProviders } from './providers/WorkflowIdeProvider';
|
|
47
|
+
export type { WorkflowIdeProviderProps } from './providers/WorkflowIdeProvider';
|
|
48
|
+
export { resolveProviders, stabilizeProviders } from './providers/resolve';
|
|
49
|
+
export type { ProviderSources } from './providers/resolve';
|
|
50
|
+
export type { IdeProviders, OnboardingProvider, OnboardingContext, ProductInfo, StartTrialResult, PromotionStatus, } from './providers/types';
|
|
51
|
+
export { WorkflowNameBuilder, OnboardingWizard, PromotionPanel, OnboardingGuideCard } from './components/onboarding';
|
|
52
|
+
export type { WorkflowNameBuilderProps, OnboardingWizardProps, OnboardingCreateResult, PromotionPanelProps, OnboardingGuideCardProps, } from './components/onboarding';
|
|
53
|
+
export { buildWorkflowName, validateNameParts, suggestFuncSlug, promotionTargetName, isPromotableName, buildSkeletonWorkflow, nextPollDelay, isTerminalPromotionState, buildPromotionTimeline, promotionStateLabel, pollPromotion, } from './onboarding';
|
|
54
|
+
export type { WorkflowNameParts, PromotionTargetType, SkeletonInput, TimelineItem, PromotionState, StartSource } from './onboarding';
|
|
55
|
+
export { createTelemetryBuffer } from './telemetry/buffer';
|
|
56
|
+
export type { TelemetryBuffer, TelemetryBufferOptions } from './telemetry/buffer';
|
|
57
|
+
export type { TelemetrySink, IdeEvent, IdeEventName } from './telemetry/types';
|
|
58
|
+
export { detectFormat, parseApiText, parseOpenApi3, parseSwagger2, parsePostman21, parseCurl, buildHttpAction, appendImportedActions, sanitizeHeaders, } from './import';
|
|
59
|
+
export type { ImportFormat, DetectedFormat, ImportedOperation, ImportedParam, ImportedBody, ParseResult, BuildHttpActionOptions, } from './import';
|
|
60
|
+
export { ApiImportDialog } from './components/import/ApiImportDialog';
|
|
61
|
+
export type { ApiImportDialogProps, ApiImportInsertInfo } from './components/import/ApiImportDialog';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { buildWorkflowName, validateNameParts, suggestFuncSlug, promotionTargetName, isPromotableName, buildSkeletonWorkflow, } from './naming';
|
|
2
|
+
export type { WorkflowNameParts, PromotionTargetType, SkeletonInput } from './naming';
|
|
3
|
+
export { nextPollDelay, isTerminalPromotionState, buildPromotionTimeline, promotionStateLabel, pollPromotion, } from './poll';
|
|
4
|
+
export type { TimelineItem, PollOptions, PromotionState } from './poll';
|
|
5
|
+
export { WIZARD_STEPS, WIZARD_STEP_LABEL, createInitialDraft, validateProductName, productStepError, namingStepErrors, draftToNameParts, canAdvance, nextStep, prevStep, availableSources, } from './wizardState';
|
|
6
|
+
export type { WizardStep, WizardDraft, StartSource } from './wizardState';
|