@endge/core 2.0.4 → 3.0.2
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/core.cjs +346 -322
- package/dist/core.js +30478 -30384
- package/dist/domain/entities/reflect/RAction.d.ts +11 -29
- package/dist/domain/entities/runtime/hosts/ActionRuntimeHost.d.ts +1 -1
- package/dist/domain/entities/runtime/hosts/CompositionRuntimeHost.d.ts +2 -0
- package/dist/domain/types/component/sfc/table-events.types.d.ts +13 -0
- package/dist/domain/types/component/sfc/tag-attribute-contract.types.d.ts +7 -0
- package/dist/domain/types/component/sfc/visual-projection.types.d.ts +2 -1
- package/dist/domain/types/program/action-program.types.d.ts +8 -0
- package/dist/domain/types/program/program.types.d.ts +5 -21
- package/dist/domain/types/runtime/action.types.d.ts +6 -3
- package/dist/domain/types/runtime/context-persistence.types.d.ts +4 -0
- package/dist/domain/types/runtime/runtime-host.types.d.ts +2 -11
- package/dist/domain/types/source/action-source.types.d.ts +40 -0
- package/dist/domain/types/source/composition-source.types.d.ts +24 -3
- package/dist/domain/types/source/source-engine.types.d.ts +25 -2
- package/dist/domain/types/source/source-expression.types.d.ts +9 -0
- package/dist/main.d.ts +5 -7
- package/dist/model/kernel/endge.d.ts +4 -15
- package/dist/model/modules/context/endge-context.d.ts +3 -1
- package/dist/model/modules/program/endge-compiler.d.ts +2 -0
- package/dist/model/modules/program/endge-program.d.ts +3 -6
- package/dist/model/modules/program/endge-source.d.ts +2 -1
- package/dist/model/modules/runtime/core/endge-actions.d.ts +16 -12
- package/dist/model/modules/runtime/core/endge-runtime.d.ts +5 -5
- package/dist/model/modules/runtime/execution/action/action-program-executor.d.ts +13 -0
- package/dist/model/modules/runtime/execution/computation/EndgeComputation.d.ts +36 -1
- package/dist/model/modules/runtime/execution/endge-converters.d.ts +36 -0
- package/dist/model/modules/runtime/implementation/endge-implementations.d.ts +3 -0
- package/dist/model/modules/runtime/operation/endge-operations.d.ts +18 -0
- package/dist/model/modules/runtime/operation/operation-history.d.ts +54 -0
- package/dist/model/services/compiler/action/action-compile.d.ts +3 -2
- package/dist/model/services/compiler/component-sfc/component-sfc-ports.d.ts +2 -0
- package/dist/model/services/compiler/computation/computation-compile.d.ts +3 -0
- package/dist/model/services/source-engine/compilers/action-source-compile.d.ts +17 -0
- package/dist/model/services/source-engine/strategies/ActionSourceEngineStrategy.d.ts +7 -0
- package/dist/model/services/source-engine/strategies/ActionSourceLanguageStrategy.d.ts +23 -0
- package/dist/model/services/source-engine/templates/action.default.source.d.ts +1 -0
- package/dist/test/fixtures/action-source.d.ts +1 -0
- package/dist/test/model/modules/context/endge-context-theme-default.test.d.ts +1 -0
- package/dist/test/model/modules/runtime/action-runtime.test.d.ts +1 -0
- package/dist/test/model/modules/runtime/executable-implementations.test.d.ts +1 -0
- package/dist/test/model/modules/runtime/operation-history.test.d.ts +1 -0
- package/dist/test/model/services/compiler/component-sfc/component-sfc-action-reactions.test.d.ts +1 -0
- package/dist/test/model/services/source-engine/action-source-compile.test.d.ts +1 -0
- package/package.json +4 -4
- package/dist/domain/entities/action-flow/REndgeFlow.d.ts +0 -27
- package/dist/domain/types/flow/action.types.d.ts +0 -65
- package/dist/domain/types/flow/endge-flow-runtime.types.d.ts +0 -28
- package/dist/domain/types/flow/endge-flow.types.d.ts +0 -110
- package/dist/domain/types/flow/flow-condition.types.d.ts +0 -39
- package/dist/model/modules/runtime/core/endge-bind.d.ts +0 -39
- package/dist/model/modules/runtime/flow/endge-flow-registry.d.ts +0 -34
- package/dist/model/modules/runtime/flow/endge-flow.d.ts +0 -94
- /package/dist/test/{action-implementations.test.d.ts → domain/entities/runtime/composition-operation-history.integration.test.d.ts} +0 -0
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Канонический тип шага внутри action-flow.
|
|
3
|
-
* Описывает поведение шага на уровне UX/runtime, а не форму graph-node.
|
|
4
|
-
*/
|
|
5
|
-
export type ActionFlowStepKind = 'builtin' | 'action' | 'runtime' | 'flow-ref';
|
|
6
|
-
/**
|
|
7
|
-
* Тип graph-node внутри action-flow.
|
|
8
|
-
* Определяет, какой блок должен быть исполнен рантаймом flow.
|
|
9
|
-
*/
|
|
10
|
-
export type EndgeFlowNodeKind = 'start' | 'watch' | 'eventSubscribe' | 'delay' | 'timer' | 'intervalTimer' | 'action' | 'query' | 'runtimeAction' | 'switch' | 'forEach' | 'while' | 'parallel';
|
|
11
|
-
/**
|
|
12
|
-
* Направление порта graph-node.
|
|
13
|
-
*/
|
|
14
|
-
export type EndgeFlowPortDirection = 'input' | 'output';
|
|
15
|
-
/**
|
|
16
|
-
* Режим сериализации значения параметра node.
|
|
17
|
-
*/
|
|
18
|
-
export type EndgeFlowBindingMode = 'literal' | 'context' | 'block-output';
|
|
19
|
-
/**
|
|
20
|
-
* Декларативная ссылка на значение, которое должно быть подставлено в параметр node.
|
|
21
|
-
*/
|
|
22
|
-
export interface EndgeFlowBinding {
|
|
23
|
-
/** Способ получения значения. */
|
|
24
|
-
mode: EndgeFlowBindingMode;
|
|
25
|
-
/** Буквальное значение для режима `literal`. */
|
|
26
|
-
value?: unknown;
|
|
27
|
-
/** Путь внутри execution-state для режима `context`. */
|
|
28
|
-
path?: string | null;
|
|
29
|
-
/** Источник значения в другом node для режима `block-output`. */
|
|
30
|
-
nodeId?: string | null;
|
|
31
|
-
/** Порт источника значения в другом node. */
|
|
32
|
-
portId?: string | null;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Сериализованные параметры graph-node.
|
|
36
|
-
* В editor-слое сюда могут попадать как structured bindings, так и уже развернутые plain values.
|
|
37
|
-
*/
|
|
38
|
-
export type EndgeFlowNodeParams = Record<string, EndgeFlowBinding | unknown>;
|
|
39
|
-
/**
|
|
40
|
-
* Описание входного или выходного порта flow-блока.
|
|
41
|
-
*/
|
|
42
|
-
export interface EndgeFlowPortDefinition {
|
|
43
|
-
/** Уникальный идентификатор порта внутри блока. */
|
|
44
|
-
id: string;
|
|
45
|
-
/** Название порта для UI и debug. */
|
|
46
|
-
label: string;
|
|
47
|
-
/** Направление порта. */
|
|
48
|
-
direction: EndgeFlowPortDirection;
|
|
49
|
-
/** Может ли порт иметь несколько подключений одновременно. */
|
|
50
|
-
multiple?: boolean;
|
|
51
|
-
/** Обязателен ли порт для корректного исполнения блока. */
|
|
52
|
-
required?: boolean;
|
|
53
|
-
/** Человекочитаемый тип значения, проходящего через порт. */
|
|
54
|
-
valueType?: string | null;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Описание graph-node внутри action-flow definition.
|
|
58
|
-
*/
|
|
59
|
-
export interface EndgeFlowNodeDefinition {
|
|
60
|
-
/** Уникальный идентификатор node внутри flow. */
|
|
61
|
-
id: string;
|
|
62
|
-
/** Название шага для UI и debug. */
|
|
63
|
-
title: string;
|
|
64
|
-
/** Идентификатор block-spec, который должен быть исполнен. */
|
|
65
|
-
blockId: string;
|
|
66
|
-
/** Технический вид node в графе. */
|
|
67
|
-
kind: EndgeFlowNodeKind;
|
|
68
|
-
/** Параметры node в сериализованном виде. */
|
|
69
|
-
params?: EndgeFlowNodeParams;
|
|
70
|
-
/** Свободные метаданные node для editor/runtime. */
|
|
71
|
-
meta?: Record<string, unknown>;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Описание связи между двумя node в action-flow.
|
|
75
|
-
*/
|
|
76
|
-
export interface EndgeFlowEdgeDefinition {
|
|
77
|
-
/** Уникальный идентификатор ребра. */
|
|
78
|
-
id: string;
|
|
79
|
-
/** Node-источник. Для входа в граф допускается ссылка на entrypoint. */
|
|
80
|
-
sourceNodeId: string;
|
|
81
|
-
/** Порт источника. */
|
|
82
|
-
sourcePortId: string;
|
|
83
|
-
/** Node-получатель. */
|
|
84
|
-
targetNodeId: string;
|
|
85
|
-
/** Порт получателя. */
|
|
86
|
-
targetPortId: string;
|
|
87
|
-
/** Пользовательская подпись ребра. */
|
|
88
|
-
label?: string | null;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Каноническое декларативное описание action как flow-графа.
|
|
92
|
-
*/
|
|
93
|
-
export interface EndgeFlowDefinition {
|
|
94
|
-
/** Версия формата сериализации flow. */
|
|
95
|
-
version: number;
|
|
96
|
-
/** Идентификатор стартовой точки графа. Каноническое значение: `flow-entry`. */
|
|
97
|
-
entrypoint: string;
|
|
98
|
-
/** Список node action-flow. */
|
|
99
|
-
nodes: EndgeFlowNodeDefinition[];
|
|
100
|
-
/** Список ориентированных связей между node. */
|
|
101
|
-
edges: EndgeFlowEdgeDefinition[];
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Контракт action-definition в формате flow.
|
|
105
|
-
* Отдельные alias добавлены для ясности в action-контексте.
|
|
106
|
-
*/
|
|
107
|
-
export type ActionFlowNodeKind = EndgeFlowNodeKind;
|
|
108
|
-
export type ActionFlowNodeDefinition = EndgeFlowNodeDefinition;
|
|
109
|
-
export type ActionFlowEdgeDefinition = EndgeFlowEdgeDefinition;
|
|
110
|
-
export type ActionFlowDefinition = EndgeFlowDefinition;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { FlowHandlerContext } from './action.types';
|
|
2
|
-
export type { FlowHandlerContext };
|
|
3
|
-
/**
|
|
4
|
-
* Параметр входа условия из реестра (для UI и валидации).
|
|
5
|
-
*/
|
|
6
|
-
export interface FlowConditionInputParam {
|
|
7
|
-
name: string;
|
|
8
|
-
label: string;
|
|
9
|
-
valueType: string;
|
|
10
|
-
optional?: boolean;
|
|
11
|
-
/** Секции домена, с которых разрешён выбор сущности (например vocabs). */
|
|
12
|
-
acceptSectionTypes?: string[];
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Спека условия для реестра (метаданные + evaluator).
|
|
16
|
-
*/
|
|
17
|
-
export interface FlowConditionSpec {
|
|
18
|
-
id: string;
|
|
19
|
-
title: string;
|
|
20
|
-
description: string | null;
|
|
21
|
-
inputParams: FlowConditionInputParam[];
|
|
22
|
-
evaluate(ctx: FlowHandlerContext, params: Record<string, unknown>): boolean | Promise<boolean>;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Конфиг одной ветки switch в режиме реестра.
|
|
26
|
-
*/
|
|
27
|
-
export interface FlowSwitchBranchConfig {
|
|
28
|
-
conditionId: string;
|
|
29
|
-
params: Record<string, unknown>;
|
|
30
|
-
portId: string;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Параметры узла switch в flow.
|
|
34
|
-
*/
|
|
35
|
-
export interface FlowSwitchParams {
|
|
36
|
-
conditionMode?: 'script' | 'registry';
|
|
37
|
-
scriptExpression?: string;
|
|
38
|
-
branches?: FlowSwitchBranchConfig[];
|
|
39
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ActionStepHandler } from '../../../../domain/types/flow/action.types';
|
|
2
|
-
import { ComputationOverride } from '../../../../domain/types/computation/computation-runtime.types';
|
|
3
|
-
import { EndgeModule } from '../../../../domain/entities/endge/EndgeModule';
|
|
4
|
-
import { RAction } from '../../../../domain/entities/reflect/RAction';
|
|
5
|
-
/**
|
|
6
|
-
* Привязка кастомного кода к существующим сущностям ядра.
|
|
7
|
-
* Не связана с declarative bindings и event contracts.
|
|
8
|
-
*/
|
|
9
|
-
export declare class EndgeBind extends EndgeModule {
|
|
10
|
-
private readonly computationOverrides;
|
|
11
|
-
/**
|
|
12
|
-
* Регистрирует built-in converters после загрузки домена.
|
|
13
|
-
*/
|
|
14
|
-
start(): void;
|
|
15
|
-
/**
|
|
16
|
-
* Регистрирует Default Converters.
|
|
17
|
-
*/
|
|
18
|
-
private registerDefaultConverters;
|
|
19
|
-
/**
|
|
20
|
-
* Находит конвертер по identity и ставит кастомный обработчик (setCustom).
|
|
21
|
-
* @param identity - id конвертера в домене
|
|
22
|
-
* @param handler - функция (value) => convertedValue
|
|
23
|
-
* @returns true, если конвертер найден и обработчик установлен
|
|
24
|
-
*/
|
|
25
|
-
converter(identity: string, handler: (v: any, options?: Record<string, unknown>) => any): boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Привязывает обработчик runtime-step в контексте конкретного action.
|
|
28
|
-
* @deprecated Для полного Action используйте Endge.actions.override(); этот API оставлен только для legacy runtimeAction nodes.
|
|
29
|
-
* @param actionOrId - действие или его id/identity
|
|
30
|
-
* @param runtimeId - id runtime-step внутри переданного action
|
|
31
|
-
* @param handler - обработчик шага
|
|
32
|
-
* @returns true, если action и runtime-step найдены, и обработчик установлен
|
|
33
|
-
*/
|
|
34
|
-
action(actionOrId: RAction | string | number, runtimeId: string, handler: ActionStepHandler): boolean;
|
|
35
|
-
/** Registers a local full replacement for a persisted computation graph. */
|
|
36
|
-
computation(identity: string, override: ComputationOverride): VoidFunction;
|
|
37
|
-
/** Runtime-only lookup used by EndgeComputation. */
|
|
38
|
-
getComputation(identity: string): ComputationOverride | null;
|
|
39
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { FlowConditionSpec } from '../../../../domain/types/flow/flow-condition.types';
|
|
2
|
-
import { FlowHandlerContext } from '../../../../domain/types/flow/action.types';
|
|
3
|
-
/**
|
|
4
|
-
* Реестр конструкций flow: условия и в будущем другие сущности.
|
|
5
|
-
* Принадлежит runtime flow executor и не участвует в federation lifecycle.
|
|
6
|
-
*/
|
|
7
|
-
export declare class EndgeFlowRegistry {
|
|
8
|
-
private _conditions;
|
|
9
|
-
constructor();
|
|
10
|
-
/**
|
|
11
|
-
* Регистрирует условие flow.
|
|
12
|
-
*/
|
|
13
|
-
registerCondition(spec: FlowConditionSpec): void;
|
|
14
|
-
/**
|
|
15
|
-
* Возвращает список спецификаций условий для UI.
|
|
16
|
-
*/
|
|
17
|
-
listConditions(): FlowConditionSpec[];
|
|
18
|
-
/**
|
|
19
|
-
* Возвращает спецификацию условия по id.
|
|
20
|
-
*/
|
|
21
|
-
getCondition(id: string): FlowConditionSpec | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Выполняет условие по id с runtime-контекстом и параметрами.
|
|
24
|
-
*/
|
|
25
|
-
evaluateCondition(conditionId: string, ctx: FlowHandlerContext, params: Record<string, unknown>): Promise<boolean>;
|
|
26
|
-
/**
|
|
27
|
-
* Регистрирует стандартные flow-условия на стадии start.
|
|
28
|
-
*/
|
|
29
|
-
reset(): void;
|
|
30
|
-
/**
|
|
31
|
-
* Регистрирует условия по умолчанию.
|
|
32
|
-
*/
|
|
33
|
-
private _registerDefaultConditions;
|
|
34
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { FlowExecutionResult } from '../../../../domain/types/flow/endge-flow-runtime.types';
|
|
2
|
-
import { RuntimeHost } from '../../../../domain/types/runtime/runtime-host.types';
|
|
3
|
-
import { EndgeFlowRegistry } from './endge-flow-registry';
|
|
4
|
-
/**
|
|
5
|
-
* Модуль исполнения compiled flow для action runtime-host.
|
|
6
|
-
*/
|
|
7
|
-
export declare class EndgeFlow {
|
|
8
|
-
readonly conditions: EndgeFlowRegistry;
|
|
9
|
-
constructor(conditions?: EndgeFlowRegistry);
|
|
10
|
-
/**
|
|
11
|
-
* Исполняет flow целиком внутри переданного action runtime-host.
|
|
12
|
-
*/
|
|
13
|
-
run(host: RuntimeHost<'action'>): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Исполняет один block внутри переданного action runtime-host.
|
|
16
|
-
*/
|
|
17
|
-
runBlock(host: RuntimeHost<'action'>, blockId: string): Promise<FlowExecutionResult>;
|
|
18
|
-
/** Создаёт пустой flow-state для случаев, когда состояние ещё не инициализировано. */
|
|
19
|
-
/**
|
|
20
|
-
* Создает Default State.
|
|
21
|
-
*/
|
|
22
|
-
private _createDefaultState;
|
|
23
|
-
/** Формирует канонический результат выполнения flow/block. */
|
|
24
|
-
/**
|
|
25
|
-
* Создает Execution Result.
|
|
26
|
-
*/
|
|
27
|
-
private _createExecutionResult;
|
|
28
|
-
/** Преобразует параметры node в плоский объект значений для рантайма. */
|
|
29
|
-
/**
|
|
30
|
-
* Преобразует значение в Plain Params.
|
|
31
|
-
*/
|
|
32
|
-
private _toPlainParams;
|
|
33
|
-
/** Собирает error-результат с единым форматом issue. */
|
|
34
|
-
/**
|
|
35
|
-
* Создает Error Result.
|
|
36
|
-
*/
|
|
37
|
-
private _createErrorResult;
|
|
38
|
-
/**
|
|
39
|
-
* Определяет порт switch по условию (скрипт или реестр).
|
|
40
|
-
* Возвращает portId для выбора исходящего ребра.
|
|
41
|
-
*/
|
|
42
|
-
private _getSwitchSelectedPortId;
|
|
43
|
-
/**
|
|
44
|
-
* Параметры, приходящие по входящему ребру на порт 'in':
|
|
45
|
-
* если источник — entrypoint (flow-entry), берём state.input; иначе — выход предыдущего шага.
|
|
46
|
-
*/
|
|
47
|
-
private _getParamsFromIncomingEdge;
|
|
48
|
-
/**
|
|
49
|
-
* Строит payload для action с учётом input-схемы.
|
|
50
|
-
* Если params = { input: value } (единственный ключ "input"), передаём в action только value (массив и т.д.), без обёртки.
|
|
51
|
-
*/
|
|
52
|
-
private _buildActionInput;
|
|
53
|
-
/**
|
|
54
|
-
* Подготавливает payload для query с учётом сигнатуры параметров.
|
|
55
|
-
* Поддерживает сценарий, когда в flow передаётся только `input`, а у query объявлен единственный параметр.
|
|
56
|
-
*/
|
|
57
|
-
private _buildQueryInput;
|
|
58
|
-
/** Возвращает имена props, объявленных в Query artifact. */
|
|
59
|
-
private _getQueryArtifactParamNames;
|
|
60
|
-
/** Формирует runtime-контекст, который передаётся в custom/runtime handlers. */
|
|
61
|
-
/**
|
|
62
|
-
* Создает Flow Handler Context.
|
|
63
|
-
*/
|
|
64
|
-
private _createFlowHandlerContext;
|
|
65
|
-
/**
|
|
66
|
-
* Возвращает Compiled Flow.
|
|
67
|
-
*/
|
|
68
|
-
private _getCompiledFlow;
|
|
69
|
-
/** Рекурсивно резолвит параметры node через текущий flow-state. */
|
|
70
|
-
/**
|
|
71
|
-
* Разрешает Node Params.
|
|
72
|
-
*/
|
|
73
|
-
private _resolveNodeParams;
|
|
74
|
-
/** Рекурсивно резолвит значение параметра: строки, массивы и объекты. */
|
|
75
|
-
/**
|
|
76
|
-
* Разрешает Value.
|
|
77
|
-
*/
|
|
78
|
-
private _resolveValue;
|
|
79
|
-
/** Резолвит выражения вида `{ctx...}` в строках параметров node. */
|
|
80
|
-
/**
|
|
81
|
-
* Разрешает String Value.
|
|
82
|
-
*/
|
|
83
|
-
private _resolveStringValue;
|
|
84
|
-
/** Достаёт значение из flow-state по пути `ctx.*`. */
|
|
85
|
-
/**
|
|
86
|
-
* Возвращает Context Value.
|
|
87
|
-
*/
|
|
88
|
-
private _getContextValue;
|
|
89
|
-
/** Проверяет, является ли строка полным выражением контекста (`{ctx...}`). */
|
|
90
|
-
/**
|
|
91
|
-
* Внутренний helper модуля: extract Full Context Path.
|
|
92
|
-
*/
|
|
93
|
-
private _extractFullContextPath;
|
|
94
|
-
}
|