@nocobase/flow-engine 2.1.0-alpha.1 → 2.1.0-alpha.10
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/LICENSE +201 -661
- package/README.md +79 -10
- package/lib/BlockScopedFlowEngine.js +0 -1
- package/lib/FlowDefinition.d.ts +2 -0
- package/lib/JSRunner.d.ts +15 -0
- package/lib/JSRunner.js +82 -7
- package/lib/ViewScopedFlowEngine.js +8 -1
- package/lib/acl/Acl.js +13 -3
- package/lib/components/FlowContextSelector.js +155 -10
- package/lib/components/MobilePopup.js +6 -5
- package/lib/components/dnd/gridDragPlanner.d.ts +1 -0
- package/lib/components/dnd/gridDragPlanner.js +59 -3
- package/lib/components/settings/wrappers/component/SwitchWithTitle.js +2 -1
- package/lib/components/settings/wrappers/contextual/DefaultSettingsIcon.js +76 -15
- package/lib/components/settings/wrappers/contextual/FlowsContextMenu.js +24 -4
- package/lib/components/settings/wrappers/contextual/StepSettingsDialog.js +21 -3
- package/lib/components/subModel/AddSubModelButton.js +16 -1
- package/lib/components/subModel/utils.js +2 -2
- package/lib/components/variables/VariableInput.js +9 -4
- package/lib/components/variables/VariableTag.js +46 -39
- package/lib/components/variables/utils.d.ts +7 -0
- package/lib/components/variables/utils.js +42 -2
- package/lib/data-source/index.d.ts +7 -27
- package/lib/data-source/index.js +84 -51
- package/lib/executor/FlowExecutor.d.ts +2 -1
- package/lib/executor/FlowExecutor.js +190 -26
- package/lib/flowContext.d.ts +230 -7
- package/lib/flowContext.js +2270 -148
- package/lib/flowEngine.d.ts +160 -1
- package/lib/flowEngine.js +383 -26
- package/lib/flowI18n.js +6 -4
- package/lib/flowSettings.d.ts +14 -6
- package/lib/flowSettings.js +51 -17
- package/lib/index.d.ts +7 -1
- package/lib/index.js +21 -0
- package/lib/lazy-helper.d.ts +14 -0
- package/lib/lazy-helper.js +71 -0
- package/lib/locale/en-US.json +9 -2
- package/lib/locale/index.d.ts +14 -0
- package/lib/locale/zh-CN.json +8 -1
- package/lib/models/CollectionFieldModel.d.ts +1 -0
- package/lib/models/CollectionFieldModel.js +3 -2
- package/lib/models/flowModel.d.ts +7 -0
- package/lib/models/flowModel.js +83 -8
- package/lib/provider.js +7 -6
- package/lib/resources/baseRecordResource.d.ts +5 -0
- package/lib/resources/baseRecordResource.js +24 -0
- package/lib/resources/multiRecordResource.d.ts +1 -0
- package/lib/resources/multiRecordResource.js +11 -4
- package/lib/resources/singleRecordResource.js +2 -0
- package/lib/resources/sqlResource.d.ts +4 -3
- package/lib/resources/sqlResource.js +8 -3
- package/lib/runjs-context/contexts/FormJSFieldItemRunJSContext.js +12 -2
- package/lib/runjs-context/contexts/JSBlockRunJSContext.js +2 -2
- package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.d.ts +16 -0
- package/lib/runjs-context/contexts/JSEditableFieldRunJSContext.js +125 -0
- package/lib/runjs-context/contexts/JSItemRunJSContext.js +12 -2
- package/lib/runjs-context/contexts/base.js +706 -41
- package/lib/runjs-context/contributions.d.ts +33 -0
- package/lib/runjs-context/contributions.js +88 -0
- package/lib/runjs-context/helpers.js +12 -1
- package/lib/runjs-context/registry.d.ts +1 -1
- package/lib/runjs-context/setup.js +22 -9
- package/lib/runjs-context/snippets/global/api-request.snippet.js +3 -3
- package/lib/runjs-context/snippets/global/import-esm.snippet.js +2 -3
- package/lib/runjs-context/snippets/global/query-selector.snippet.js +8 -3
- package/lib/runjs-context/snippets/global/require-amd.snippet.js +1 -1
- package/lib/runjs-context/snippets/index.d.ts +11 -1
- package/lib/runjs-context/snippets/index.js +61 -40
- package/lib/runjs-context/snippets/scene/block/add-event-listener.snippet.js +10 -7
- package/lib/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.js +3 -3
- package/lib/runjs-context/snippets/scene/block/chartjs-bar.snippet.js +2 -2
- package/lib/runjs-context/snippets/scene/block/echarts-init.snippet.js +2 -2
- package/lib/runjs-context/snippets/scene/block/render-iframe.snippet.js +2 -2
- package/lib/runjs-context/snippets/scene/block/render-react.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/block/render-statistics.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/block/render-timeline.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/block/resource-example.snippet.js +5 -5
- package/lib/runjs-context/snippets/scene/block/three-users-orbit.snippet.js +6 -6
- package/lib/runjs-context/snippets/scene/block/vue-component.snippet.js +3 -4
- package/lib/runjs-context/snippets/scene/detail/color-by-value.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.js +20 -3
- package/lib/runjs-context/snippets/scene/detail/format-number.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/detail/innerHTML-value.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/detail/percentage-bar.snippet.js +3 -3
- package/lib/runjs-context/snippets/scene/detail/relative-time.snippet.js +3 -3
- package/lib/runjs-context/snippets/scene/detail/status-tag.snippet.js +2 -2
- package/lib/runjs-context/snippets/scene/form/cascade-select.snippet.js +1 -1
- package/lib/runjs-context/snippets/scene/form/render-basic.snippet.js +2 -2
- package/lib/runjs-context/snippets/scene/table/cell-open-dialog.snippet.js +6 -3
- package/lib/runjs-context/snippets/scene/table/concat-fields.snippet.js +3 -1
- package/lib/runjsLibs.d.ts +28 -0
- package/lib/runjsLibs.js +532 -0
- package/lib/scheduler/ModelOperationScheduler.d.ts +7 -1
- package/lib/scheduler/ModelOperationScheduler.js +28 -23
- package/lib/types.d.ts +63 -1
- package/lib/utils/associationObjectVariable.d.ts +2 -2
- package/lib/utils/createCollectionContextMeta.js +1 -0
- package/lib/utils/createEphemeralContext.js +2 -2
- package/lib/utils/dateVariable.d.ts +16 -0
- package/lib/utils/dateVariable.js +380 -0
- package/lib/utils/exceptions.d.ts +7 -0
- package/lib/utils/exceptions.js +10 -0
- package/lib/utils/index.d.ts +8 -3
- package/lib/utils/index.js +49 -0
- package/lib/utils/params-resolvers.js +16 -9
- package/lib/utils/parsePathnameToViewParams.js +1 -1
- package/lib/utils/resolveModuleUrl.d.ts +58 -0
- package/lib/utils/resolveModuleUrl.js +65 -0
- package/lib/utils/resolveRunJSObjectValues.d.ts +16 -0
- package/lib/utils/resolveRunJSObjectValues.js +61 -0
- package/lib/utils/runjsModuleLoader.d.ts +58 -0
- package/lib/utils/runjsModuleLoader.js +422 -0
- package/lib/utils/runjsTemplateCompat.d.ts +35 -0
- package/lib/utils/runjsTemplateCompat.js +743 -0
- package/lib/utils/runjsValue.d.ts +29 -0
- package/lib/utils/runjsValue.js +275 -0
- package/lib/utils/safeGlobals.d.ts +18 -8
- package/lib/utils/safeGlobals.js +164 -17
- package/lib/utils/schema-utils.d.ts +17 -1
- package/lib/utils/schema-utils.js +80 -0
- package/lib/views/FlowView.d.ts +7 -1
- package/lib/views/createViewMeta.d.ts +0 -7
- package/lib/views/createViewMeta.js +19 -70
- package/lib/views/index.d.ts +1 -2
- package/lib/views/index.js +4 -3
- package/lib/views/runViewBeforeClose.d.ts +10 -0
- package/lib/views/runViewBeforeClose.js +45 -0
- package/lib/views/useDialog.d.ts +2 -1
- package/lib/views/useDialog.js +28 -6
- package/lib/views/useDrawer.d.ts +2 -1
- package/lib/views/useDrawer.js +27 -5
- package/lib/views/usePage.d.ts +6 -1
- package/lib/views/usePage.js +53 -9
- package/lib/views/usePopover.js +4 -1
- package/lib/views/viewEvents.d.ts +17 -0
- package/lib/views/viewEvents.js +90 -0
- package/package.json +5 -5
- package/src/BlockScopedFlowEngine.ts +2 -5
- package/src/JSRunner.ts +111 -5
- package/src/ViewScopedFlowEngine.ts +8 -0
- package/src/__tests__/JSRunner.test.ts +91 -1
- package/src/__tests__/createViewMeta.popup.test.ts +62 -1
- package/src/__tests__/flowContext.test.ts +693 -1
- package/src/__tests__/flowEngine.dataSourceDirty.test.ts +63 -0
- package/src/__tests__/flowEngine.modelLoaders.test.ts +245 -0
- package/src/__tests__/flowModel.openView.navigation.test.ts +28 -0
- package/src/__tests__/flowRunJSContextDefine.test.ts +63 -0
- package/src/__tests__/flowRuntimeContext.test.ts +2 -1
- package/src/__tests__/flowSettings.open.test.tsx +123 -19
- package/src/__tests__/flowSettings.test.ts +94 -15
- package/src/__tests__/provider.test.tsx +0 -5
- package/src/__tests__/renderHiddenInConfig.test.tsx +6 -6
- package/src/__tests__/runjsContext.test.ts +23 -7
- package/src/__tests__/runjsContextImplementations.test.ts +34 -3
- package/src/__tests__/runjsContextRuntime.test.ts +3 -3
- package/src/__tests__/runjsContributions.test.ts +89 -0
- package/src/__tests__/runjsExternalLibs.test.ts +242 -0
- package/src/__tests__/runjsLibsLazyLoading.test.ts +44 -0
- package/src/__tests__/runjsLocales.test.ts +4 -1
- package/src/__tests__/runjsPreprocessDefault.test.ts +72 -0
- package/src/__tests__/runjsRuntimeFeatures.test.ts +166 -0
- package/src/__tests__/runjsSnippets.test.ts +40 -3
- package/src/__tests__/viewScopedFlowEngine.test.ts +3 -3
- package/src/acl/Acl.tsx +3 -3
- package/src/components/FlowContextSelector.tsx +208 -12
- package/src/components/MobilePopup.tsx +4 -2
- package/src/components/__tests__/flow-model-render-error-fallback.test.tsx +3 -3
- package/src/components/__tests__/gridDragPlanner.test.ts +229 -1
- package/src/components/dnd/gridDragPlanner.ts +68 -2
- package/src/components/settings/wrappers/component/SwitchWithTitle.tsx +2 -1
- package/src/components/settings/wrappers/component/__tests__/InlineControls.test.tsx +74 -0
- package/src/components/settings/wrappers/contextual/DefaultSettingsIcon.tsx +109 -16
- package/src/components/settings/wrappers/contextual/FlowsContextMenu.tsx +41 -7
- package/src/components/settings/wrappers/contextual/StepSettingsDialog.tsx +31 -4
- package/src/components/settings/wrappers/contextual/__tests__/DefaultSettingsIcon.test.tsx +157 -5
- package/src/components/subModel/AddSubModelButton.tsx +17 -1
- package/src/components/subModel/__tests__/AddSubModelButton.test.tsx +142 -32
- package/src/components/subModel/utils.ts +1 -1
- package/src/components/variables/VariableInput.tsx +12 -4
- package/src/components/variables/VariableTag.tsx +54 -45
- package/src/components/variables/__tests__/FlowContextSelector.test.tsx +260 -3
- package/src/components/variables/__tests__/VariableTag.test.tsx +50 -0
- package/src/components/variables/__tests__/utils.test.ts +81 -3
- package/src/components/variables/utils.ts +67 -6
- package/src/data-source/index.ts +88 -110
- package/src/executor/FlowExecutor.ts +230 -28
- package/src/executor/__tests__/flowExecutor.test.ts +123 -0
- package/src/flowContext.ts +2989 -212
- package/src/flowEngine.ts +427 -22
- package/src/flowI18n.ts +7 -5
- package/src/flowSettings.ts +58 -18
- package/src/index.ts +14 -1
- package/src/lazy-helper.tsx +57 -0
- package/src/locale/en-US.json +9 -2
- package/src/locale/zh-CN.json +8 -1
- package/src/models/CollectionFieldModel.tsx +3 -1
- package/src/models/__tests__/dispatchEvent.when.test.ts +768 -0
- package/src/models/__tests__/flowModel.clone.test.ts +416 -0
- package/src/models/__tests__/flowModel.test.ts +20 -4
- package/src/models/flowModel.tsx +112 -7
- package/src/provider.tsx +9 -7
- package/src/resources/__tests__/multiRecordResource.test.ts +44 -0
- package/src/resources/__tests__/sqlResource.test.ts +60 -0
- package/src/resources/baseRecordResource.ts +31 -0
- package/src/resources/multiRecordResource.ts +11 -4
- package/src/resources/singleRecordResource.ts +3 -0
- package/src/resources/sqlResource.ts +11 -6
- package/src/runjs-context/contexts/FormJSFieldItemRunJSContext.ts +10 -0
- package/src/runjs-context/contexts/JSBlockRunJSContext.ts +6 -2
- package/src/runjs-context/contexts/JSEditableFieldRunJSContext.ts +106 -0
- package/src/runjs-context/contexts/JSItemRunJSContext.ts +10 -0
- package/src/runjs-context/contexts/base.ts +715 -44
- package/src/runjs-context/contributions.ts +88 -0
- package/src/runjs-context/helpers.ts +11 -1
- package/src/runjs-context/registry.ts +1 -1
- package/src/runjs-context/setup.ts +24 -9
- package/src/runjs-context/snippets/global/api-request.snippet.ts +3 -3
- package/src/runjs-context/snippets/global/import-esm.snippet.ts +2 -3
- package/src/runjs-context/snippets/global/query-selector.snippet.ts +8 -3
- package/src/runjs-context/snippets/global/require-amd.snippet.ts +1 -1
- package/src/runjs-context/snippets/index.ts +75 -41
- package/src/runjs-context/snippets/scene/block/add-event-listener.snippet.ts +11 -13
- package/src/runjs-context/snippets/scene/block/api-fetch-render-list.snippet.ts +3 -3
- package/src/runjs-context/snippets/scene/block/chartjs-bar.snippet.ts +2 -2
- package/src/runjs-context/snippets/scene/block/echarts-init.snippet.ts +2 -2
- package/src/runjs-context/snippets/scene/block/render-iframe.snippet.ts +2 -2
- package/src/runjs-context/snippets/scene/block/render-react.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/block/render-statistics.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/block/render-timeline.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/block/resource-example.snippet.ts +6 -11
- package/src/runjs-context/snippets/scene/block/three-users-orbit.snippet.ts +6 -6
- package/src/runjs-context/snippets/scene/block/vue-component.snippet.ts +3 -4
- package/src/runjs-context/snippets/scene/detail/color-by-value.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/detail/copy-to-clipboard.snippet.ts +20 -3
- package/src/runjs-context/snippets/scene/detail/format-number.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/detail/innerHTML-value.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/detail/percentage-bar.snippet.ts +3 -3
- package/src/runjs-context/snippets/scene/detail/relative-time.snippet.ts +3 -3
- package/src/runjs-context/snippets/scene/detail/status-tag.snippet.ts +2 -2
- package/src/runjs-context/snippets/scene/form/cascade-select.snippet.ts +1 -1
- package/src/runjs-context/snippets/scene/form/render-basic.snippet.ts +3 -8
- package/src/runjs-context/snippets/scene/table/cell-open-dialog.snippet.ts +6 -3
- package/src/runjs-context/snippets/scene/table/concat-fields.snippet.ts +3 -1
- package/src/runjsLibs.ts +622 -0
- package/src/scheduler/ModelOperationScheduler.ts +41 -24
- package/src/types.ts +86 -1
- package/src/utils/__tests__/dateVariable.test.ts +101 -0
- package/src/utils/__tests__/params-resolvers.test.ts +40 -0
- package/src/utils/__tests__/parsePathnameToViewParams.test.ts +7 -0
- package/src/utils/__tests__/runjsRequireAsyncAutoWhitelist.test.ts +38 -0
- package/src/utils/__tests__/runjsTemplateCompat.test.ts +159 -0
- package/src/utils/__tests__/runjsValue.test.ts +44 -0
- package/src/utils/__tests__/safeGlobals.test.ts +57 -2
- package/src/utils/__tests__/utils.test.ts +157 -0
- package/src/utils/associationObjectVariable.ts +2 -2
- package/src/utils/createCollectionContextMeta.ts +1 -0
- package/src/utils/createEphemeralContext.ts +5 -4
- package/src/utils/dateVariable.ts +397 -0
- package/src/utils/exceptions.ts +11 -0
- package/src/utils/index.ts +38 -3
- package/src/utils/params-resolvers.ts +23 -9
- package/src/utils/parsePathnameToViewParams.ts +2 -2
- package/src/utils/resolveModuleUrl.ts +91 -0
- package/src/utils/resolveRunJSObjectValues.ts +46 -0
- package/src/utils/runjsModuleLoader.ts +553 -0
- package/src/utils/runjsTemplateCompat.ts +828 -0
- package/src/utils/runjsValue.ts +287 -0
- package/src/utils/safeGlobals.ts +188 -17
- package/src/utils/schema-utils.ts +109 -1
- package/src/views/FlowView.tsx +11 -1
- package/src/views/__tests__/FlowView.usePage.test.tsx +54 -1
- package/src/views/__tests__/runViewBeforeClose.test.ts +30 -0
- package/src/views/__tests__/useDialog.closeDestroy.test.tsx +44 -16
- package/src/views/__tests__/viewEvents.resolveOpenerEngine.test.ts +28 -0
- package/src/views/createViewMeta.ts +22 -75
- package/src/views/index.tsx +1 -2
- package/src/views/runViewBeforeClose.ts +19 -0
- package/src/views/useDialog.tsx +34 -5
- package/src/views/useDrawer.tsx +33 -4
- package/src/views/usePage.tsx +63 -8
- package/src/views/usePopover.tsx +4 -1
- package/src/views/viewEvents.ts +55 -0
package/lib/flowContext.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { ISchema } from '@formily/json-schema';
|
|
10
|
-
import { APIClient } from '@nocobase/sdk';
|
|
10
|
+
import { APIClient, RequestOptions } from '@nocobase/sdk';
|
|
11
11
|
import type { Router } from '@remix-run/router';
|
|
12
12
|
import { MessageInstance } from 'antd/es/message/interface';
|
|
13
13
|
import type { HookAPI } from 'antd/es/modal/useModal';
|
|
@@ -25,12 +25,51 @@ import type { ActionDefinition, EventDefinition, ResourceType } from './types';
|
|
|
25
25
|
import { JSONValue } from './utils/params-resolvers';
|
|
26
26
|
import type { RecordRef } from './utils/serverContextParams';
|
|
27
27
|
import { FlowView, FlowViewer } from './views/FlowView';
|
|
28
|
+
import { type RunJSVersion } from './runjs-context/registry';
|
|
28
29
|
type Getter<T = any> = (ctx: FlowContext) => T | Promise<T>;
|
|
30
|
+
export type FlowContextDocRef = string | {
|
|
31
|
+
url: string;
|
|
32
|
+
title?: string;
|
|
33
|
+
};
|
|
34
|
+
export type FlowDeprecationDoc = boolean | {
|
|
35
|
+
/**
|
|
36
|
+
* 废弃说明(面向人/大模型)。
|
|
37
|
+
*/
|
|
38
|
+
message?: string;
|
|
39
|
+
/**
|
|
40
|
+
* 推荐替代 API(例如 'ctx.resolveJsonTemplate')。
|
|
41
|
+
*/
|
|
42
|
+
replacedBy?: string | string[];
|
|
43
|
+
/**
|
|
44
|
+
* 开始废弃的版本号(可选)。
|
|
45
|
+
*/
|
|
46
|
+
since?: string;
|
|
47
|
+
/**
|
|
48
|
+
* 预计移除的版本号(可选)。
|
|
49
|
+
*/
|
|
50
|
+
removedIn?: string;
|
|
51
|
+
/**
|
|
52
|
+
* 参考链接(可选)。
|
|
53
|
+
*/
|
|
54
|
+
ref?: FlowContextDocRef;
|
|
55
|
+
};
|
|
56
|
+
export type FlowContextDocParam = {
|
|
57
|
+
name: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
type?: string;
|
|
60
|
+
optional?: boolean;
|
|
61
|
+
default?: JSONValue;
|
|
62
|
+
};
|
|
63
|
+
export type FlowContextDocReturn = {
|
|
64
|
+
description?: string;
|
|
65
|
+
type?: string;
|
|
66
|
+
};
|
|
29
67
|
export interface MetaTreeNode {
|
|
30
68
|
name: string;
|
|
31
69
|
title: string;
|
|
32
70
|
type: string;
|
|
33
71
|
interface?: string;
|
|
72
|
+
options?: any;
|
|
34
73
|
uiSchema?: ISchema;
|
|
35
74
|
render?: (props: any) => JSX.Element;
|
|
36
75
|
paths: string[];
|
|
@@ -44,13 +83,14 @@ export interface PropertyMeta {
|
|
|
44
83
|
type: string;
|
|
45
84
|
title: string;
|
|
46
85
|
interface?: string;
|
|
86
|
+
options?: any;
|
|
47
87
|
uiSchema?: ISchema;
|
|
48
88
|
render?: (props: any) => JSX.Element;
|
|
49
89
|
sort?: number;
|
|
50
90
|
properties?: Record<string, PropertyMeta> | (() => Promise<Record<string, PropertyMeta>>);
|
|
51
|
-
disabled?: boolean | (() => boolean);
|
|
52
|
-
disabledReason?: string | (() => string | undefined);
|
|
53
|
-
hidden?: boolean | (() => boolean);
|
|
91
|
+
disabled?: boolean | (() => boolean | Promise<boolean>);
|
|
92
|
+
disabledReason?: string | (() => string | undefined | Promise<string | undefined>);
|
|
93
|
+
hidden?: boolean | (() => boolean | Promise<boolean>);
|
|
54
94
|
buildVariablesParams?: (ctx: FlowContext) => RecordRef | Record<string, any> | Promise<RecordRef | Record<string, any> | undefined> | undefined;
|
|
55
95
|
}
|
|
56
96
|
export type PropertyMetaFactory = {
|
|
@@ -73,9 +113,130 @@ export interface PropertyOptions {
|
|
|
73
113
|
cache?: boolean;
|
|
74
114
|
observable?: boolean;
|
|
75
115
|
meta?: PropertyMetaOrFactory;
|
|
116
|
+
/**
|
|
117
|
+
* 面向工具/大模型的静态文档信息(不影响变量选择器 UI)。
|
|
118
|
+
* - `getApiInfos()` 仅使用 RunJS doc + 这里的 `info`(不会读取/展开 `meta`)
|
|
119
|
+
* - 变量结构信息请使用 `getVarInfos()`(来源于 `meta`)
|
|
120
|
+
*/
|
|
121
|
+
info?: FlowContextPropertyInfoOrFactory;
|
|
76
122
|
resolveOnServer?: boolean | ((subPath: string) => boolean);
|
|
77
123
|
serverOnlyWhenContextParams?: boolean;
|
|
78
124
|
}
|
|
125
|
+
export type FlowContextMethodInfoInput = {
|
|
126
|
+
description?: string;
|
|
127
|
+
detail?: string;
|
|
128
|
+
examples?: string[];
|
|
129
|
+
completion?: RunJSDocCompletionDoc;
|
|
130
|
+
ref?: FlowContextDocRef;
|
|
131
|
+
deprecated?: FlowDeprecationDoc;
|
|
132
|
+
params?: FlowContextDocParam[];
|
|
133
|
+
returns?: FlowContextDocReturn;
|
|
134
|
+
hidden?: boolean | ((ctx: any) => boolean | Promise<boolean>);
|
|
135
|
+
disabled?: boolean | ((ctx: any) => boolean | Promise<boolean>);
|
|
136
|
+
disabledReason?: string | ((ctx: any) => string | undefined | Promise<string | undefined>);
|
|
137
|
+
};
|
|
138
|
+
export type FlowContextMethodInfo = {
|
|
139
|
+
description?: string;
|
|
140
|
+
detail?: string;
|
|
141
|
+
examples?: string[];
|
|
142
|
+
completion?: RunJSDocCompletionDoc;
|
|
143
|
+
ref?: FlowContextDocRef;
|
|
144
|
+
deprecated?: FlowDeprecationDoc;
|
|
145
|
+
params?: FlowContextDocParam[];
|
|
146
|
+
returns?: FlowContextDocReturn;
|
|
147
|
+
disabled?: boolean;
|
|
148
|
+
disabledReason?: string;
|
|
149
|
+
};
|
|
150
|
+
export type FlowContextPropertyInfoObjectInput = Omit<FlowContextPropertyInfo, 'disabled' | 'disabledReason' | 'properties'> & {
|
|
151
|
+
properties?: Record<string, FlowContextPropertyInfoInput> | (() => Promise<Record<string, FlowContextPropertyInfoInput>>);
|
|
152
|
+
hidden?: RunJSDocHiddenOrPathsDoc;
|
|
153
|
+
disabled?: boolean | ((ctx: any) => boolean | Promise<boolean>);
|
|
154
|
+
disabledReason?: string | ((ctx: any) => string | undefined | Promise<string | undefined>);
|
|
155
|
+
};
|
|
156
|
+
export type FlowContextPropertyInfoInput = string | FlowContextPropertyInfoObjectInput;
|
|
157
|
+
export type FlowContextPropertyInfoFactory = {
|
|
158
|
+
(): FlowContextPropertyInfoInput | Promise<FlowContextPropertyInfoInput | null> | null;
|
|
159
|
+
};
|
|
160
|
+
export type FlowContextPropertyInfoOrFactory = FlowContextPropertyInfoInput | FlowContextPropertyInfoFactory;
|
|
161
|
+
export type FlowContextPropertyInfo = {
|
|
162
|
+
title?: string;
|
|
163
|
+
type?: string;
|
|
164
|
+
interface?: string;
|
|
165
|
+
description?: string;
|
|
166
|
+
detail?: string;
|
|
167
|
+
examples?: string[];
|
|
168
|
+
completion?: RunJSDocCompletionDoc;
|
|
169
|
+
ref?: FlowContextDocRef;
|
|
170
|
+
deprecated?: FlowDeprecationDoc;
|
|
171
|
+
params?: FlowContextDocParam[];
|
|
172
|
+
returns?: FlowContextDocReturn;
|
|
173
|
+
disabled?: boolean;
|
|
174
|
+
disabledReason?: string;
|
|
175
|
+
properties?: Record<string, FlowContextPropertyInfo>;
|
|
176
|
+
};
|
|
177
|
+
export type FlowContextApiInfo = {
|
|
178
|
+
title?: string;
|
|
179
|
+
type?: string;
|
|
180
|
+
interface?: string;
|
|
181
|
+
description?: string;
|
|
182
|
+
examples?: string[];
|
|
183
|
+
completion?: RunJSDocCompletionDoc;
|
|
184
|
+
ref?: FlowContextDocRef;
|
|
185
|
+
deprecated?: FlowDeprecationDoc;
|
|
186
|
+
params?: FlowContextDocParam[];
|
|
187
|
+
returns?: FlowContextDocReturn;
|
|
188
|
+
disabled?: boolean;
|
|
189
|
+
disabledReason?: string;
|
|
190
|
+
properties?: Record<string, FlowContextApiInfo>;
|
|
191
|
+
};
|
|
192
|
+
export type FlowContextInfosEnvNode = {
|
|
193
|
+
/**
|
|
194
|
+
* 说明(面向人/大模型)。建议为一句话。
|
|
195
|
+
*/
|
|
196
|
+
description?: string;
|
|
197
|
+
/**
|
|
198
|
+
* 可用于 `await ctx.getVar(getVar)` 的表达式字符串,推荐以 `ctx.` 开头。
|
|
199
|
+
* 例如:'ctx.popup'、'ctx.resource.collectionName'
|
|
200
|
+
*/
|
|
201
|
+
getVar?: string;
|
|
202
|
+
/**
|
|
203
|
+
* 已解析/可序列化的静态值(用于 prompt 直接使用)。
|
|
204
|
+
* 注意:应保持小体积,避免放入 record 等大对象。
|
|
205
|
+
*/
|
|
206
|
+
value?: JSONValue;
|
|
207
|
+
/**
|
|
208
|
+
* 子节点(用于表达 popup.resource.xxx 等层级结构)。
|
|
209
|
+
*/
|
|
210
|
+
properties?: Record<string, FlowContextInfosEnvNode>;
|
|
211
|
+
};
|
|
212
|
+
export type FlowContextInfosEnvs = {
|
|
213
|
+
popup?: FlowContextInfosEnvNode;
|
|
214
|
+
block?: FlowContextInfosEnvNode;
|
|
215
|
+
currentViewBlocks?: FlowContextInfosEnvNode;
|
|
216
|
+
flowModel?: FlowContextInfosEnvNode;
|
|
217
|
+
resource?: FlowContextInfosEnvNode;
|
|
218
|
+
record?: FlowContextInfosEnvNode;
|
|
219
|
+
};
|
|
220
|
+
export type FlowContextGetApiInfosOptions = {
|
|
221
|
+
/**
|
|
222
|
+
* RunJS 文档版本(默认 v1)。
|
|
223
|
+
*/
|
|
224
|
+
version?: RunJSVersion;
|
|
225
|
+
};
|
|
226
|
+
export type FlowContextGetVarInfosOptions = {
|
|
227
|
+
/**
|
|
228
|
+
* 最大展开层级(默认 3)。
|
|
229
|
+
* - 当不传 path 时,top-level property depth=1。
|
|
230
|
+
* - 当传 path 时,path 对应节点 depth=1。
|
|
231
|
+
*/
|
|
232
|
+
maxDepth?: number;
|
|
233
|
+
/**
|
|
234
|
+
* 剪裁:仅收集指定 path 下的变量结构信息。
|
|
235
|
+
* - string 形式支持:'record'、'record.id'、'ctx.record'、'{{ ctx.record }}'
|
|
236
|
+
* - string[] 表示多个剪裁路径合并
|
|
237
|
+
*/
|
|
238
|
+
path?: string | string[];
|
|
239
|
+
};
|
|
79
240
|
type RouteOptions = {
|
|
80
241
|
name?: string;
|
|
81
242
|
path?: string;
|
|
@@ -86,6 +247,7 @@ export declare class FlowContext {
|
|
|
86
247
|
#private;
|
|
87
248
|
_props: Record<string, PropertyOptions>;
|
|
88
249
|
_methods: Record<string, (...args: any[]) => any>;
|
|
250
|
+
_methodInfos: Record<string, FlowContextMethodInfoInput>;
|
|
89
251
|
protected _cache: Record<string, any>;
|
|
90
252
|
protected _observableCache: Record<string, any>;
|
|
91
253
|
protected _delegates: FlowContext[];
|
|
@@ -95,7 +257,7 @@ export declare class FlowContext {
|
|
|
95
257
|
createProxy(): FlowContext;
|
|
96
258
|
constructor();
|
|
97
259
|
defineProperty(key: string, options: PropertyOptions): void;
|
|
98
|
-
defineMethod(name: string, fn: (...args: any[]) => any,
|
|
260
|
+
defineMethod(name: string, fn: (...args: any[]) => any, info?: string | FlowContextMethodInfoInput): void;
|
|
99
261
|
removeCache(key: string): boolean;
|
|
100
262
|
delegate(ctx: FlowContext): void;
|
|
101
263
|
addDelegate(ctx: FlowContext): void;
|
|
@@ -125,6 +287,26 @@ export declare class FlowContext {
|
|
|
125
287
|
getPropertyMetaTree(value?: string, options?: {
|
|
126
288
|
flatten?: boolean;
|
|
127
289
|
}): MetaTreeNode[];
|
|
290
|
+
/**
|
|
291
|
+
* 获取静态 API 文档信息(仅顶层一层)。
|
|
292
|
+
*
|
|
293
|
+
* - 输出仅来自 RunJS doc 与 defineProperty/defineMethod 的 info
|
|
294
|
+
* - 不读取/展开 PropertyMeta(变量结构)
|
|
295
|
+
* - 不自动展开深层 properties
|
|
296
|
+
* - 不返回自动补全字段(例如 completion)
|
|
297
|
+
*/
|
|
298
|
+
getApiInfos(options?: FlowContextGetApiInfosOptions): Promise<Record<string, FlowContextApiInfo>>;
|
|
299
|
+
/**
|
|
300
|
+
* 获取运行时环境快照信息(小体积、可序列化)。
|
|
301
|
+
*/
|
|
302
|
+
getEnvInfos(): Promise<FlowContextInfosEnvs>;
|
|
303
|
+
/**
|
|
304
|
+
* 获取变量结构信息(来源于 PropertyMeta)。
|
|
305
|
+
*
|
|
306
|
+
* - 返回静态 plain object(不包含函数)
|
|
307
|
+
* - 支持 maxDepth(默认 3)与 path 剪裁
|
|
308
|
+
*/
|
|
309
|
+
getVarInfos(options?: FlowContextGetVarInfosOptions): Promise<Record<string, FlowContextApiInfo>>;
|
|
128
310
|
_getPropertiesMeta(): Record<string, PropertyMetaOrFactory>;
|
|
129
311
|
protected _getOwnProperty(key: string, currentContext: any): any;
|
|
130
312
|
protected _getOwnMethod(key: string, flowContext?: FlowContext): any;
|
|
@@ -147,7 +329,7 @@ declare class BaseFlowEngineContext extends FlowContext {
|
|
|
147
329
|
dataSourceManager: DataSourceManager;
|
|
148
330
|
requireAsync: (url: string) => Promise<any>;
|
|
149
331
|
importAsync: (url: string) => Promise<any>;
|
|
150
|
-
createJSRunner: (options?: JSRunnerOptions) => JSRunner
|
|
332
|
+
createJSRunner: (options?: JSRunnerOptions) => Promise<JSRunner>;
|
|
151
333
|
pageInfo: {
|
|
152
334
|
version?: 'v1' | 'v2';
|
|
153
335
|
};
|
|
@@ -156,6 +338,8 @@ declare class BaseFlowEngineContext extends FlowContext {
|
|
|
156
338
|
*/
|
|
157
339
|
renderJson: (template: JSONValue) => Promise<any>;
|
|
158
340
|
resolveJsonTemplate: (template: JSONValue) => Promise<any>;
|
|
341
|
+
getVar: (path: string) => Promise<any>;
|
|
342
|
+
request: (options: RequestOptions) => Promise<any>;
|
|
159
343
|
runjs: (code: string, variables?: Record<string, any>, options?: JSRunnerOptions) => Promise<any>;
|
|
160
344
|
getAction: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>(name: string) => ActionDefinition<TModel, TCtx> | undefined;
|
|
161
345
|
getActions: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>() => Map<string, ActionDefinition<TModel, TCtx>>;
|
|
@@ -172,6 +356,7 @@ declare class BaseFlowEngineContext extends FlowContext {
|
|
|
172
356
|
location: Location;
|
|
173
357
|
sql: FlowSQLRepository;
|
|
174
358
|
logger: pino.Logger;
|
|
359
|
+
constructor();
|
|
175
360
|
}
|
|
176
361
|
declare class BaseFlowModelContext extends BaseFlowEngineContext {
|
|
177
362
|
model: FlowModel;
|
|
@@ -180,7 +365,16 @@ declare class BaseFlowModelContext extends BaseFlowEngineContext {
|
|
|
180
365
|
getActions: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>() => Map<string, ActionDefinition<TModel, TCtx>>;
|
|
181
366
|
getEvents: <TModel extends FlowModel = FlowModel, TCtx extends FlowContext = FlowContext>() => Map<string, EventDefinition<TModel, TCtx>>;
|
|
182
367
|
runAction: (actionName: string, params?: Record<string, any>) => Promise<any> | any;
|
|
368
|
+
/**
|
|
369
|
+
* @deprecated use `makeResource` instead
|
|
370
|
+
*/
|
|
183
371
|
createResource: <T extends FlowResource = FlowResource>(resourceType: ResourceType<T>) => T;
|
|
372
|
+
/**
|
|
373
|
+
* Create a new resource instance without adding it to the context.
|
|
374
|
+
* @param resourceType - The resource type.
|
|
375
|
+
* @returns The resource instance.
|
|
376
|
+
*/
|
|
377
|
+
makeResource: <T extends FlowResource = FlowResource>(resourceType: ResourceType<T>) => T;
|
|
184
378
|
}
|
|
185
379
|
export declare class FlowEngineContext extends BaseFlowEngineContext {
|
|
186
380
|
engine: FlowEngine;
|
|
@@ -204,7 +398,15 @@ export declare class FlowRuntimeContext<TModel extends FlowModel = FlowModel, TM
|
|
|
204
398
|
result?: any;
|
|
205
399
|
}>;
|
|
206
400
|
stepResults: Record<string, any>;
|
|
207
|
-
|
|
401
|
+
/**
|
|
402
|
+
* @deprecated use `initResource` instead
|
|
403
|
+
*/
|
|
404
|
+
useResource: (className: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource') => void;
|
|
405
|
+
/**
|
|
406
|
+
* Initialize a resource instance without adding it to the context.
|
|
407
|
+
* @param className - The resource class name.
|
|
408
|
+
*/
|
|
409
|
+
initResource: (className: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource') => void;
|
|
208
410
|
getStepParams: (stepKey: string) => Record<string, any>;
|
|
209
411
|
setStepParams: (stepKey: string, params?: any) => void;
|
|
210
412
|
getStepResults: (stepKey: string) => any;
|
|
@@ -219,19 +421,35 @@ export type FlowSettingsContext<TModel extends FlowModel = FlowModel> = FlowRunt
|
|
|
219
421
|
export type RunJSDocCompletionDoc = {
|
|
220
422
|
insertText?: string;
|
|
221
423
|
};
|
|
424
|
+
export type RunJSDocHiddenDoc = boolean | ((ctx: any) => boolean | Promise<boolean>);
|
|
425
|
+
export type RunJSDocHiddenOrPathsDoc = boolean | string[] | ((ctx: any) => boolean | string[] | Promise<boolean | string[]>);
|
|
222
426
|
export type RunJSDocPropertyDoc = string | {
|
|
223
427
|
description?: string;
|
|
224
428
|
detail?: string;
|
|
225
429
|
type?: string;
|
|
226
430
|
examples?: string[];
|
|
227
431
|
completion?: RunJSDocCompletionDoc;
|
|
432
|
+
ref?: FlowContextDocRef;
|
|
433
|
+
deprecated?: FlowDeprecationDoc;
|
|
434
|
+
params?: FlowContextDocParam[];
|
|
435
|
+
returns?: FlowContextDocReturn;
|
|
228
436
|
properties?: Record<string, RunJSDocPropertyDoc>;
|
|
437
|
+
hidden?: RunJSDocHiddenOrPathsDoc;
|
|
438
|
+
disabled?: boolean | ((ctx: any) => boolean | Promise<boolean>);
|
|
439
|
+
disabledReason?: string | ((ctx: any) => string | undefined | Promise<string | undefined>);
|
|
229
440
|
};
|
|
230
441
|
export type RunJSDocMethodDoc = string | {
|
|
231
442
|
description?: string;
|
|
232
443
|
detail?: string;
|
|
233
444
|
examples?: string[];
|
|
234
445
|
completion?: RunJSDocCompletionDoc;
|
|
446
|
+
ref?: FlowContextDocRef;
|
|
447
|
+
deprecated?: FlowDeprecationDoc;
|
|
448
|
+
params?: FlowContextDocParam[];
|
|
449
|
+
returns?: FlowContextDocReturn;
|
|
450
|
+
hidden?: RunJSDocHiddenDoc;
|
|
451
|
+
disabled?: boolean | ((ctx: any) => boolean | Promise<boolean>);
|
|
452
|
+
disabledReason?: string | ((ctx: any) => string | undefined | Promise<string | undefined>);
|
|
235
453
|
};
|
|
236
454
|
export type RunJSDocMeta = {
|
|
237
455
|
label?: string;
|
|
@@ -239,8 +457,13 @@ export type RunJSDocMeta = {
|
|
|
239
457
|
methods?: Record<string, RunJSDocMethodDoc>;
|
|
240
458
|
snippets?: Record<string, any>;
|
|
241
459
|
};
|
|
460
|
+
export declare function createRunJSDeprecationProxy(ctx: any, options?: {
|
|
461
|
+
doc?: RunJSDocMeta;
|
|
462
|
+
}): any;
|
|
242
463
|
export declare class FlowRunJSContext extends FlowContext {
|
|
243
464
|
constructor(delegate: FlowContext);
|
|
465
|
+
exit(): void;
|
|
466
|
+
exitAll(): void;
|
|
244
467
|
static define(meta: RunJSDocMeta, options?: {
|
|
245
468
|
locale?: string;
|
|
246
469
|
}): void;
|