@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
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { IdeEvent, TelemetrySink } from './types';
|
|
2
|
+
/** 定时器注入点(测试用);默认使用全局 setTimeout / clearTimeout */
|
|
3
|
+
export interface TelemetryTimers {
|
|
4
|
+
set(fn: () => void, ms: number): unknown;
|
|
5
|
+
clear(handle: unknown): void;
|
|
6
|
+
}
|
|
7
|
+
/** 最小事件目标接口(document / window 或测试替身) */
|
|
8
|
+
export interface TelemetryEventTarget {
|
|
9
|
+
addEventListener(type: string, listener: () => void): void;
|
|
10
|
+
removeEventListener(type: string, listener: () => void): void;
|
|
11
|
+
}
|
|
12
|
+
export interface TelemetryBufferOptions {
|
|
13
|
+
/** 距第一条待发送事件多久后 flush。默认 5000 */
|
|
14
|
+
flushIntervalMs?: number;
|
|
15
|
+
/** 累计多少条立即 flush。默认 20 */
|
|
16
|
+
maxBatchSize?: number;
|
|
17
|
+
timers?: TelemetryTimers;
|
|
18
|
+
/** 监听 `visibilitychange`(读取 visibilityState);默认取全局 document,非浏览器环境忽略 */
|
|
19
|
+
document?: (TelemetryEventTarget & {
|
|
20
|
+
visibilityState?: string;
|
|
21
|
+
}) | null;
|
|
22
|
+
/** 监听 `pagehide`;默认取全局 window,非浏览器环境忽略 */
|
|
23
|
+
window?: TelemetryEventTarget | null;
|
|
24
|
+
}
|
|
25
|
+
export interface TelemetryBuffer {
|
|
26
|
+
/** 入队;sink 缺失时丢弃。永不抛出 */
|
|
27
|
+
push(event: IdeEvent): void;
|
|
28
|
+
/** 立即发送队列中的事件。永不抛出 */
|
|
29
|
+
flush(): void;
|
|
30
|
+
/** flush 并移除定时器与页面监听;之后 push 无效 */
|
|
31
|
+
dispose(): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 创建埋点缓冲:批量发送、页面隐藏时 flush、吞掉 sink 的任何错误(只 warn 一次)。
|
|
35
|
+
* sink 为空时 push 直接丢弃,不产生定时器与监听。
|
|
36
|
+
*/
|
|
37
|
+
export declare function createTelemetryBuffer(sink: TelemetrySink | undefined | null, opts?: TelemetryBufferOptions): TelemetryBuffer;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 「每个实例只执行一次」的守卫,用于 `ide_opened` 去重。
|
|
3
|
+
*
|
|
4
|
+
* React StrictMode(开发环境)会把 effect 执行 → 清理 → 再执行一次,但 `useRef` 的值在两次之间保留,
|
|
5
|
+
* 所以把守卫放在 ref 里即可保证同一个 IDE 实例只上报一次;真正重新挂载(新实例)会得到新的守卫。
|
|
6
|
+
*/
|
|
7
|
+
export interface OnceGuard {
|
|
8
|
+
/** 第一次调用返回 true,之后都返回 false */
|
|
9
|
+
take(): boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function createOnceGuard(): OnceGuard;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IdeEvent, IdeEventName } from './types';
|
|
2
|
+
export type IdeEventProps = Record<string, string | number | boolean>;
|
|
3
|
+
/**
|
|
4
|
+
* 只保留 string / number(有限)/ boolean 的属性值,其余(对象、数组、函数、null、undefined、NaN)一律丢弃,
|
|
5
|
+
* 避免上层误把参数、表达式等载荷塞进埋点。全部被丢弃时返回 undefined。
|
|
6
|
+
*/
|
|
7
|
+
export declare function sanitizeProps(props: Record<string, unknown> | undefined | null): IdeEventProps | undefined;
|
|
8
|
+
export interface TrackerOptions {
|
|
9
|
+
ide: 'workflow' | 'ai';
|
|
10
|
+
/** 返回当前流程名;每次 track 时调用 */
|
|
11
|
+
getWorkflowName: () => string | undefined;
|
|
12
|
+
/** 事件发往的缓冲;返回 undefined 表示没有 sink */
|
|
13
|
+
push: (event: IdeEvent) => void;
|
|
14
|
+
now?: () => number;
|
|
15
|
+
}
|
|
16
|
+
/** 构造事件并交给 push:补齐 at / ide / workflowName,清洗 props。永不抛出。 */
|
|
17
|
+
export declare function createTracker(opts: TrackerOptions): (name: IdeEventName, props?: Record<string, unknown>) => void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 接入埋点:事件与 Sink 契约(设计见 docs/design/v1.3.0-自助接入设计.md 第 5 节)。
|
|
3
|
+
*
|
|
4
|
+
* 只采集「用了什么功能」,不采集参数值、表达式、提示词、对话内容、执行数据。
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 事件名清单(首批,与设计文档 5.2 节、接入指南「接入埋点」表一致;
|
|
8
|
+
* 单测会校验三处同步,新增事件时请一并更新文档)。
|
|
9
|
+
*/
|
|
10
|
+
export declare const IDE_EVENT_NAMES: readonly ["ide_opened", "trial_started", "workflow_created", "step_added", "api_imported", "sandbox_run", "workflow_saved", "promotion_requested", "promotion_state", "ai_event"];
|
|
11
|
+
export type IdeEventName = typeof IDE_EVENT_NAMES[number];
|
|
12
|
+
export interface IdeEvent {
|
|
13
|
+
name: IdeEventName;
|
|
14
|
+
/** epoch ms */
|
|
15
|
+
at: number;
|
|
16
|
+
ide: 'workflow' | 'ai';
|
|
17
|
+
/** 不含任何参数值 */
|
|
18
|
+
workflowName?: string;
|
|
19
|
+
props?: Record<string, string | number | boolean>;
|
|
20
|
+
}
|
|
21
|
+
export interface TelemetrySink {
|
|
22
|
+
/** SDK 侧批量调用(默认 5 秒或 20 条),页面隐藏时强制 flush */
|
|
23
|
+
track(events: IdeEvent[]): void | Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IdeEventName, TelemetrySink } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* IDE 内部使用:按解析后的 sink 维护一个缓冲,返回稳定的 `track(name, props?)`。
|
|
4
|
+
* - `at` / `ide` / `workflowName`(取当前画布流程名)自动补齐;
|
|
5
|
+
* - `props` 只保留 string / number / boolean;
|
|
6
|
+
* - sink 变化时先把旧缓冲 flush 给旧 sink;卸载时 flush;
|
|
7
|
+
* - 没有 sink 时 track 为空操作。
|
|
8
|
+
*/
|
|
9
|
+
export declare function useTelemetry(ide: 'workflow' | 'ai', sink: TelemetrySink | undefined): (name: IdeEventName, props?: Record<string, unknown>) => void;
|
|
10
|
+
type Track = (name: IdeEventName, props?: Record<string, unknown>) => void;
|
|
11
|
+
/**
|
|
12
|
+
* 挂载时上报一次 `ide_opened`。守卫放在 ref 里:StrictMode 的「执行 → 清理 → 再执行」不会重复上报;
|
|
13
|
+
* 真正重新挂载(新实例)会得到新的守卫。
|
|
14
|
+
*/
|
|
15
|
+
export declare function useIdeOpenedOnce(track: Track): void;
|
|
16
|
+
/**
|
|
17
|
+
* 专业模式经 store 的操作统一上报:
|
|
18
|
+
* - 本地试跑(`runLocalSandboxDryRun`)→ `sandbox_run`,`entry: 'pro'`
|
|
19
|
+
* - 画布新增步骤(`addNode`)→ `step_added`,`source: 'builtin'`
|
|
20
|
+
*/
|
|
21
|
+
export declare function useProStoreTelemetry(track: Track): void;
|
|
22
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yiyi_zhang/reactflow-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Conductor Workflow IDE — Next-Gen AI-Native visual workflow designer with W-LSP data lineage, deterministic in-browser sandbox dry-run, time-travel waterfall debugger, and live split-view sync built with React 19, ReactFlow and Zustand.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"conductor",
|