@endge/core 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ReadMe.md +21 -0
- package/dist/core.js +85019 -0
- package/dist/domain/data-source-graphql.d.ts +4 -0
- package/dist/domain/data-source-mock.d.ts +4 -0
- package/dist/domain/data-source-rest.d.ts +4 -0
- package/dist/domain/declare/jsx.d.ts +68 -0
- package/dist/domain/declare/scenario.d.ts +19 -0
- package/dist/domain/dependency-graph.d.ts +19 -0
- package/dist/domain/entities/action-flow/REndgeFlow.d.ts +27 -0
- package/dist/domain/entities/data/DataSource.d.ts +8 -0
- package/dist/domain/entities/data/DependencyEdge.d.ts +48 -0
- package/dist/domain/entities/data/DependencyGraph.d.ts +25 -0
- package/dist/domain/entities/data/DependencyNode.d.ts +30 -0
- package/dist/domain/entities/debug/MemoryStore.d.ts +34 -0
- package/dist/domain/entities/debug/tools/base.d.ts +5 -0
- package/dist/domain/entities/debug/tools/tree.d.ts +12 -0
- package/dist/domain/entities/diagnostics/DiagnosticsRecordStore.d.ts +33 -0
- package/dist/domain/entities/diagnostics/DiagnosticsScopeHandle.d.ts +21 -0
- package/dist/domain/entities/diagnostics/DiagnosticsSpan.d.ts +9 -0
- package/dist/domain/entities/diagnostics/DiagnosticsTrace.d.ts +9 -0
- package/dist/domain/entities/endge/EndgeActionJsonScript.d.ts +2 -0
- package/dist/domain/entities/endge/EndgeApi.d.ts +23 -0
- package/dist/domain/entities/endge/EndgeEvent.d.ts +33 -0
- package/dist/domain/entities/endge/EndgeFederation.d.ts +64 -0
- package/dist/domain/entities/endge/EndgeModule.d.ts +36 -0
- package/dist/domain/entities/endge/EndgeModuleController.d.ts +18 -0
- package/dist/domain/entities/endge/EndgeSlotRegistry.d.ts +14 -0
- package/dist/domain/entities/reflect/RAction.d.ts +30 -0
- package/dist/domain/entities/reflect/RBehaviorBinding.d.ts +19 -0
- package/dist/domain/entities/reflect/RComponent.d.ts +25 -0
- package/dist/domain/entities/reflect/RComponentBase.d.ts +39 -0
- package/dist/domain/entities/reflect/RComponentDSL.d.ts +14 -0
- package/dist/domain/entities/reflect/RComponentTable.d.ts +21 -0
- package/dist/domain/entities/reflect/RComponentTableColumn.d.ts +64 -0
- package/dist/domain/entities/reflect/RConverter.d.ts +14 -0
- package/dist/domain/entities/reflect/REntity.d.ts +47 -0
- package/dist/domain/entities/reflect/REnvironment.d.ts +6 -0
- package/dist/domain/entities/reflect/RField.d.ts +9 -0
- package/dist/domain/entities/reflect/RFilter.d.ts +11 -0
- package/dist/domain/entities/reflect/RFolder.d.ts +23 -0
- package/dist/domain/entities/reflect/RI18nBundle.d.ts +16 -0
- package/dist/domain/entities/reflect/RIntegration.d.ts +13 -0
- package/dist/domain/entities/reflect/RNavigation.d.ts +24 -0
- package/dist/domain/entities/reflect/RPage.d.ts +45 -0
- package/dist/domain/entities/reflect/RPageTemplate.d.ts +32 -0
- package/dist/domain/entities/reflect/RParameter.d.ts +13 -0
- package/dist/domain/entities/reflect/RPolicy.d.ts +7 -0
- package/dist/domain/entities/reflect/RPresentationBinding.d.ts +20 -0
- package/dist/domain/entities/reflect/RProject.d.ts +68 -0
- package/dist/domain/entities/reflect/RQuery.d.ts +43 -0
- package/dist/domain/entities/reflect/RQueryFilter.d.ts +12 -0
- package/dist/domain/entities/reflect/RQueryRest.d.ts +21 -0
- package/dist/domain/entities/reflect/RScenario.d.ts +20 -0
- package/dist/domain/entities/reflect/RSettings.d.ts +49 -0
- package/dist/domain/entities/reflect/RStyle.d.ts +7 -0
- package/dist/domain/entities/reflect/RTenant.d.ts +8 -0
- package/dist/domain/entities/reflect/RType.d.ts +17 -0
- package/dist/domain/entities/reflect/RVersion.d.ts +29 -0
- package/dist/domain/entities/reflect/RView.d.ts +21 -0
- package/dist/domain/entities/reflect/RVocabs.d.ts +16 -0
- package/dist/domain/entities/runtime/RuntimeBindingScope.d.ts +48 -0
- package/dist/domain/entities/runtime/RuntimeContext.d.ts +26 -0
- package/dist/domain/entities/runtime/RuntimeEnvironment.d.ts +12 -0
- package/dist/domain/entities/runtime/RuntimeHostBase.d.ts +100 -0
- package/dist/domain/entities/runtime/RuntimeHostFactory.d.ts +15 -0
- package/dist/domain/entities/runtime/RuntimeHostRegistry.d.ts +56 -0
- package/dist/domain/entities/runtime/RuntimeScope.d.ts +45 -0
- package/dist/domain/entities/runtime/hosts/ActionRuntimeHost.d.ts +30 -0
- package/dist/domain/entities/runtime/hosts/ComponentRuntimeHost.d.ts +22 -0
- package/dist/domain/entities/runtime/hosts/PageRuntimeHost.d.ts +22 -0
- package/dist/domain/entities/runtime/hosts/ProjectRuntimeHost.d.ts +22 -0
- package/dist/domain/entities/runtime/hosts/QueryRuntimeHost.d.ts +22 -0
- package/dist/domain/entities/runtime/hosts/TableRuntimeHost.d.ts +22 -0
- package/dist/domain/entities/runtime/hosts/ViewRuntimeHost.d.ts +22 -0
- package/dist/domain/script-api/expose.d.ts +6 -0
- package/dist/domain/script-api/mount.d.ts +7 -0
- package/dist/domain/script-api/query.d.ts +7 -0
- package/dist/domain/script-api/watch.d.ts +7 -0
- package/dist/domain/services/AbstractSyntaxTree_JSX.d.ts +30 -0
- package/dist/domain/services/AbstractSyntaxTree_TS.d.ts +18 -0
- package/dist/domain/services/GraphQLBuilderService.d.ts +19 -0
- package/dist/domain/services/ScenarioScriptBuilderService.d.ts +19 -0
- package/dist/domain/services/auth.d.ts +17 -0
- package/dist/domain/services/component-render-host.d.ts +20 -0
- package/dist/domain/types/action.types.d.ts +65 -0
- package/dist/domain/types/api.types.d.ts +29 -0
- package/dist/domain/types/auth.types.d.ts +82 -0
- package/dist/domain/types/bootstrap.types.d.ts +35 -0
- package/dist/domain/types/codegen.types.d.ts +23 -0
- package/dist/domain/types/component.types.d.ts +8 -0
- package/dist/domain/types/configuration-contract.types.d.ts +53 -0
- package/dist/domain/types/debug/base.types.d.ts +74 -0
- package/dist/domain/types/debug/events.types.d.ts +3 -0
- package/dist/domain/types/debug/tree.types.d.ts +27 -0
- package/dist/domain/types/diagnostics.types.d.ts +235 -0
- package/dist/domain/types/document.types.d.ts +93 -0
- package/dist/domain/types/endge-flow-runtime.types.d.ts +28 -0
- package/dist/domain/types/endge-flow.types.d.ts +110 -0
- package/dist/domain/types/events.types.d.ts +29 -0
- package/dist/domain/types/faceted-cascade.d.ts +300 -0
- package/dist/domain/types/filter.types.d.ts +39 -0
- package/dist/domain/types/flow-condition.types.d.ts +39 -0
- package/dist/domain/types/forge.types.d.ts +30 -0
- package/dist/domain/types/jsx.types.d.ts +16 -0
- package/dist/domain/types/models.types.d.ts +7 -0
- package/dist/domain/types/navigation.types.d.ts +27 -0
- package/dist/domain/types/query.types.d.ts +66 -0
- package/dist/domain/types/resolve.types.d.ts +70 -0
- package/dist/domain/types/runtime-entity-map.types.d.ts +28 -0
- package/dist/domain/types/runtime-host.types.d.ts +168 -0
- package/dist/domain/types/runtime-registry.types.d.ts +38 -0
- package/dist/domain/types/runtime.types.d.ts +103 -0
- package/dist/domain/types/schema.types.d.ts +92 -0
- package/dist/domain/types/settings.types.d.ts +117 -0
- package/dist/domain/types/styles.types.d.ts +25 -0
- package/dist/domain/types/table.types.d.ts +15 -0
- package/dist/domain/types/types.d.ts +99 -0
- package/dist/domain/types/ui-composition.types.d.ts +201 -0
- package/dist/domain/types/ui.types.d.ts +17 -0
- package/dist/main.d.ts +154 -0
- package/dist/model/config/contracts/behavior/component.d.ts +2 -0
- package/dist/model/config/contracts/behavior/index.d.ts +8 -0
- package/dist/model/config/contracts/behavior/page-template.d.ts +2 -0
- package/dist/model/config/contracts/behavior/page.d.ts +30 -0
- package/dist/model/config/contracts/behavior/project.d.ts +2 -0
- package/dist/model/config/contracts/behavior/query.d.ts +2 -0
- package/dist/model/config/contracts/behavior/view.d.ts +2 -0
- package/dist/model/config/contracts/configuration/index.d.ts +3 -0
- package/dist/model/config/contracts/configuration/navigation.d.ts +3 -0
- package/dist/model/config/contracts/index.d.ts +17 -0
- package/dist/model/config/contracts/presentation/component.d.ts +2 -0
- package/dist/model/config/contracts/presentation/index.d.ts +8 -0
- package/dist/model/config/contracts/presentation/page-template.d.ts +2 -0
- package/dist/model/config/contracts/presentation/page.d.ts +2 -0
- package/dist/model/config/contracts/presentation/project.d.ts +2 -0
- package/dist/model/config/contracts/presentation/query.d.ts +2 -0
- package/dist/model/config/contracts/presentation/view.d.ts +2 -0
- package/dist/model/config/debug.d.ts +11 -0
- package/dist/model/config/events.d.ts +16 -0
- package/dist/model/config/index.d.ts +7 -0
- package/dist/model/config/persistance_config.d.ts +6 -0
- package/dist/model/config/storage_config.d.ts +4 -0
- package/dist/model/config/ui-composition-defaults.d.ts +523 -0
- package/dist/model/db/repositories/Actions_Repository.d.ts +35 -0
- package/dist/model/db/repositories/BehaviorBindings_Repository.d.ts +16 -0
- package/dist/model/db/repositories/Components_Repository.d.ts +64 -0
- package/dist/model/db/repositories/Converters_Repository.d.ts +40 -0
- package/dist/model/db/repositories/Environments_Repository.d.ts +35 -0
- package/dist/model/db/repositories/Filters_Repository.d.ts +56 -0
- package/dist/model/db/repositories/Folders_Repository.d.ts +30 -0
- package/dist/model/db/repositories/I18nBundles_Repository.d.ts +47 -0
- package/dist/model/db/repositories/Integrations_Repository.d.ts +40 -0
- package/dist/model/db/repositories/Navigations_Repository.d.ts +40 -0
- package/dist/model/db/repositories/PageTemplates_Repository.d.ts +56 -0
- package/dist/model/db/repositories/Pages_Repository.d.ts +89 -0
- package/dist/model/db/repositories/Parameters_Repository.d.ts +56 -0
- package/dist/model/db/repositories/Policies_Repository.d.ts +35 -0
- package/dist/model/db/repositories/PresentationBindings_Repository.d.ts +14 -0
- package/dist/model/db/repositories/Projects_Repository.d.ts +38 -0
- package/dist/model/db/repositories/Queries_Repository.d.ts +45 -0
- package/dist/model/db/repositories/Scenarios_Repository.d.ts +41 -0
- package/dist/model/db/repositories/Settings_Repository.d.ts +48 -0
- package/dist/model/db/repositories/Styles_Repository.d.ts +51 -0
- package/dist/model/db/repositories/Tenants_Repository.d.ts +39 -0
- package/dist/model/db/repositories/Types_Repository.d.ts +48 -0
- package/dist/model/db/repositories/Versions_Repository.d.ts +15 -0
- package/dist/model/db/repositories/Views_Repository.d.ts +65 -0
- package/dist/model/db/repositories/Vocabs_Repository.d.ts +59 -0
- package/dist/model/db/repositories/payload-api.d.ts +10 -0
- package/dist/model/db/schema-database/BaseSchemaRepositoriy.d.ts +19 -0
- package/dist/model/db/schema-database/PayloadSchemaAdapter.d.ts +34 -0
- package/dist/model/db/schema-database/SchemaStorageAdapter.d.ts +40 -0
- package/dist/model/endge/endge-app.d.ts +47 -0
- package/dist/model/endge/endge-auth.d.ts +56 -0
- package/dist/model/endge/endge-bind.d.ts +32 -0
- package/dist/model/endge/endge-bindings-behavior.d.ts +39 -0
- package/dist/model/endge/endge-bindings-presentation.d.ts +30 -0
- package/dist/model/endge/endge-bootstrap.d.ts +23 -0
- package/dist/model/endge/endge-console.d.ts +35 -0
- package/dist/model/endge/endge-contracts.d.ts +77 -0
- package/dist/model/endge/endge-debug.d.ts +37 -0
- package/dist/model/endge/endge-diagnostics.d.ts +111 -0
- package/dist/model/endge/endge-domain.d.ts +519 -0
- package/dist/model/endge/endge-events.d.ts +25 -0
- package/dist/model/endge/endge-extract.d.ts +84 -0
- package/dist/model/endge/endge-flow-registry.d.ts +21 -0
- package/dist/model/endge/endge-flow.d.ts +51 -0
- package/dist/model/endge/endge-query.d.ts +20 -0
- package/dist/model/endge/endge-render.d.ts +17 -0
- package/dist/model/endge/endge-reports.d.ts +22 -0
- package/dist/model/endge/endge-runtime-debugger.d.ts +60 -0
- package/dist/model/endge/endge-runtime.d.ts +87 -0
- package/dist/model/endge/endge-schema-database.d.ts +217 -0
- package/dist/model/endge/endge-script.d.ts +42 -0
- package/dist/model/endge/endge-sse.d.ts +19 -0
- package/dist/model/endge/endge-store.d.ts +41 -0
- package/dist/model/endge/endge-styles.d.ts +45 -0
- package/dist/model/endge/endge-testing.d.ts +16 -0
- package/dist/model/endge/endge-ui-registry.d.ts +50 -0
- package/dist/model/endge/endge-ui.d.ts +43 -0
- package/dist/model/endge/endge-updates.d.ts +34 -0
- package/dist/model/endge/endge-vars.d.ts +50 -0
- package/dist/model/endge/endge-vocabs.d.ts +47 -0
- package/dist/model/endge/endge.d.ts +98 -0
- package/dist/model/factories/DataSourceFactory.d.ts +14 -0
- package/dist/model/factories/DocumentFactory.d.ts +24 -0
- package/dist/model/helpers/endge-resolve-engine.d.ts +93 -0
- package/dist/model/helpers/raph-phases/endge-runtime-boundary.d.ts +13 -0
- package/dist/model/helpers/raph-phases/queries-phase.d.ts +7 -0
- package/dist/model/helpers/raph-phases/tables-phase.d.ts +7 -0
- package/dist/model/seed/actions/console_log.d.ts +3 -0
- package/dist/model/seed/actions/load_vocabs.d.ts +3 -0
- package/dist/model/seed/converters/arrays/split.d.ts +2 -0
- package/dist/model/seed/converters/arrays/to-array.d.ts +2 -0
- package/dist/model/seed/converters/date/date-to-date-string.d.ts +2 -0
- package/dist/model/seed/converters/date/date-to-iso-string.d.ts +2 -0
- package/dist/model/seed/converters/date/date-to-iso-z.d.ts +2 -0
- package/dist/model/seed/converters/date/date-to-time-string.d.ts +2 -0
- package/dist/model/seed/converters/date/iso-string-to-date.d.ts +2 -0
- package/dist/model/seed/converters/date/iso-string-to-time-string.d.ts +2 -0
- package/dist/model/seed/converters/date/string-to-date.d.ts +2 -0
- package/dist/model/seed/converters/date/time-string-to-date.d.ts +2 -0
- package/dist/model/seed/converters/date/timestamp-to-date.d.ts +2 -0
- package/dist/model/seed/converters/date/weekdays-range.d.ts +5 -0
- package/dist/model/seed/converters/json/json-parse.d.ts +2 -0
- package/dist/model/seed/converters/json/json-stringify.d.ts +2 -0
- package/dist/model/seed/converters/numbers/number-to-string.d.ts +2 -0
- package/dist/model/seed/converters/numbers/string-to-number.d.ts +2 -0
- package/dist/model/seed/converters/strings/default-if-empty.d.ts +2 -0
- package/dist/model/seed/converters/strings/string-to-boolean.d.ts +2 -0
- package/dist/model/seed/converters/strings/string-trim.d.ts +2 -0
- package/dist/model/services/Auth_Service.d.ts +23 -0
- package/dist/tmp/hierarchial-faceted-configuration-cascade/tmp.d.ts +82 -0
- package/dist/tools/ScheduleUpdate-sse-generator.d.ts +9 -0
- package/dist/tools/graphql-parser.d.ts +5 -0
- package/dist/tools/mock-generator.d.ts +16 -0
- package/dist/tools/openapi-parser.d.ts +4 -0
- package/dist/tools/table.d.ts +4 -0
- package/dist/tools/updates-generator.d.ts +12 -0
- package/package.json +71 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { FlowExecutionResult, FlowExecutionState } from './endge-flow-runtime.types';
|
|
2
|
+
import { RuntimeEntityModelMap, RuntimeEntityType } from './runtime-entity-map.types';
|
|
3
|
+
import { RuntimeKind } from './runtime.types';
|
|
4
|
+
import { RaphNode } from '@endge/raph';
|
|
5
|
+
export type RuntimeHostStatus = 'created' | 'active' | 'idle' | 'stopped' | 'destroyed' | 'error';
|
|
6
|
+
export type RuntimeHostResourceKind = 'raph-node' | 'behavior-binding' | 'contract' | 'event-subscription' | 'scope' | 'meta';
|
|
7
|
+
export interface RuntimeHostResource {
|
|
8
|
+
/** Уникальный идентификатор ресурса внутри host. */
|
|
9
|
+
id: string;
|
|
10
|
+
/** Тип ресурса (raph-node, binding, contract и т.д.). */
|
|
11
|
+
kind: RuntimeHostResourceKind;
|
|
12
|
+
/** Короткий заголовок для UI/инспектора. */
|
|
13
|
+
title: string;
|
|
14
|
+
/** Дополнительная подпись для контекста. */
|
|
15
|
+
subtitle?: string;
|
|
16
|
+
/** Произвольные метаданные ресурса. */
|
|
17
|
+
payload?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export type RuntimeHostChannelKind = 'raph' | 'event-contract' | 'behavior-bindings' | 'event-bus' | 'external';
|
|
20
|
+
export interface RuntimeHostChannel {
|
|
21
|
+
/** Уникальный идентификатор канала. */
|
|
22
|
+
id: string;
|
|
23
|
+
/** Семантический тип канала коммуникации. */
|
|
24
|
+
kind: RuntimeHostChannelKind;
|
|
25
|
+
/** Отображаемое имя канала. */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Направление потока сообщений для канала. */
|
|
28
|
+
direction: 'in' | 'out' | 'both';
|
|
29
|
+
/** Дополнительная поясняющая подпись. */
|
|
30
|
+
subtitle?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface RuntimeHostContextBase {
|
|
33
|
+
status: 'idle' | 'running' | 'success' | 'error';
|
|
34
|
+
startedAt: string | null;
|
|
35
|
+
updatedAt: string | null;
|
|
36
|
+
}
|
|
37
|
+
export interface ActionRuntimeHostContext extends RuntimeHostContextBase {
|
|
38
|
+
/** Нормализованный input последнего запуска action-flow. */
|
|
39
|
+
input: Record<string, unknown>;
|
|
40
|
+
/** Каноническое runtime-state action-flow внутри этого host. */
|
|
41
|
+
flowState: FlowExecutionState;
|
|
42
|
+
/** Текущий node-id, который считается активным в host. */
|
|
43
|
+
currentNodeId: string | null;
|
|
44
|
+
/** Стек вызовов вложенных action-run'ов. */
|
|
45
|
+
callStack: string[];
|
|
46
|
+
/** Последний результат исполнения action-flow. */
|
|
47
|
+
lastFlowResult: FlowExecutionResult | null;
|
|
48
|
+
/** Контекст родительского action-host, если этот action вызван из другого flow (иерархия без мутации). */
|
|
49
|
+
parent?: ActionRuntimeHostContext | null;
|
|
50
|
+
}
|
|
51
|
+
export interface QueryRuntimeHostContext extends RuntimeHostContextBase {
|
|
52
|
+
lastFilterChangeAt: string | null;
|
|
53
|
+
}
|
|
54
|
+
export interface TableRuntimeHostContext extends RuntimeHostContextBase {
|
|
55
|
+
lastDataSyncAt: string | null;
|
|
56
|
+
}
|
|
57
|
+
export interface ComponentRuntimeHostContext extends RuntimeHostContextBase {
|
|
58
|
+
lastRenderAt: string | null;
|
|
59
|
+
}
|
|
60
|
+
export interface ViewRuntimeHostContext extends RuntimeHostContextBase {
|
|
61
|
+
lastRenderAt: string | null;
|
|
62
|
+
}
|
|
63
|
+
export interface PageRuntimeHostContext extends RuntimeHostContextBase {
|
|
64
|
+
lastRenderAt: string | null;
|
|
65
|
+
}
|
|
66
|
+
export interface ProjectRuntimeHostContext extends RuntimeHostContextBase {
|
|
67
|
+
lastRefreshAt: string | null;
|
|
68
|
+
}
|
|
69
|
+
export interface RuntimeHostContextMap {
|
|
70
|
+
action: ActionRuntimeHostContext;
|
|
71
|
+
query: QueryRuntimeHostContext;
|
|
72
|
+
table: TableRuntimeHostContext;
|
|
73
|
+
component: ComponentRuntimeHostContext;
|
|
74
|
+
view: ViewRuntimeHostContext;
|
|
75
|
+
page: PageRuntimeHostContext;
|
|
76
|
+
project: ProjectRuntimeHostContext;
|
|
77
|
+
}
|
|
78
|
+
export type RuntimeHostContext<TType extends RuntimeEntityType> = RuntimeHostContextMap[TType];
|
|
79
|
+
export interface RuntimeHostSnapshot {
|
|
80
|
+
/** Идентификатор runtime-host. */
|
|
81
|
+
id: string;
|
|
82
|
+
/** Runtime-id родительского host, если host запущен как дочерний. */
|
|
83
|
+
parentId: string | null;
|
|
84
|
+
/** Время удаления host, если snapshot попал в debug-архив удалённых. */
|
|
85
|
+
removedAt: number | null;
|
|
86
|
+
/** Технический тип runtime-host реализации. */
|
|
87
|
+
runtimeType: string;
|
|
88
|
+
/** Тип доменной сущности, к которой привязан host. */
|
|
89
|
+
entityType: RuntimeEntityType;
|
|
90
|
+
/** Identity доменной сущности. */
|
|
91
|
+
entityIdentity: string;
|
|
92
|
+
/** Заголовок host для отображения в UI. */
|
|
93
|
+
title: string;
|
|
94
|
+
/** Текущий статус жизненного цикла host. */
|
|
95
|
+
status: RuntimeHostStatus;
|
|
96
|
+
/** Время создания host (timestamp ms). */
|
|
97
|
+
createdAt: number;
|
|
98
|
+
/** Время последнего изменения host (timestamp ms). */
|
|
99
|
+
updatedAt: number;
|
|
100
|
+
/** Список ресурсов, связанных с host. */
|
|
101
|
+
resources: RuntimeHostResource[];
|
|
102
|
+
/** Список каналов, через которые host взаимодействует с окружением. */
|
|
103
|
+
channels: RuntimeHostChannel[];
|
|
104
|
+
/** Произвольные метаданные host. */
|
|
105
|
+
meta: Record<string, unknown>;
|
|
106
|
+
/** Контекст host (для debug/inspection). */
|
|
107
|
+
context: Record<string, unknown>;
|
|
108
|
+
}
|
|
109
|
+
export interface RuntimeHostLifecycle {
|
|
110
|
+
/** Поднять host и перевести в рабочее состояние. */
|
|
111
|
+
create: () => Promise<void> | void;
|
|
112
|
+
/** Корректно остановить host и освободить ресурсы. */
|
|
113
|
+
destroy: () => Promise<void> | void;
|
|
114
|
+
}
|
|
115
|
+
export interface RuntimeHost<TType extends RuntimeEntityType = RuntimeEntityType, TContext extends RuntimeHostContext<TType> = RuntimeHostContext<TType>> extends RuntimeHostLifecycle {
|
|
116
|
+
/** Уникальный runtime-id host. */
|
|
117
|
+
readonly id: string;
|
|
118
|
+
/** Родительский runtime-host для отладки вложенных запусков. */
|
|
119
|
+
readonly parent: RuntimeHost<any, any> | null;
|
|
120
|
+
/** Канонический runtime kind (query/table/action/runtime). */
|
|
121
|
+
readonly kind: RuntimeKind | 'runtime';
|
|
122
|
+
/**
|
|
123
|
+
* Имя конкретной runtime-реализации host.
|
|
124
|
+
*/
|
|
125
|
+
readonly runtimeType: string;
|
|
126
|
+
/** Тип привязанной доменной сущности. */
|
|
127
|
+
readonly entityType: TType;
|
|
128
|
+
/** Привязанная доменная модель. */
|
|
129
|
+
readonly model: RuntimeEntityModelMap[TType];
|
|
130
|
+
/** Identity привязанной доменной сущности. */
|
|
131
|
+
readonly entityIdentity: string;
|
|
132
|
+
/** Человекочитаемое имя host. */
|
|
133
|
+
readonly title: string;
|
|
134
|
+
/** Текущее состояние жизненного цикла host. */
|
|
135
|
+
status: RuntimeHostStatus;
|
|
136
|
+
/** Время создания host (timestamp ms). */
|
|
137
|
+
readonly createdAt: number;
|
|
138
|
+
/** Время последнего изменения host (timestamp ms). */
|
|
139
|
+
updatedAt: number;
|
|
140
|
+
/** Связанные runtime-ресурсы host. */
|
|
141
|
+
readonly resources: RuntimeHostResource[];
|
|
142
|
+
/** Связанные каналы взаимодействия host. */
|
|
143
|
+
readonly channels: RuntimeHostChannel[];
|
|
144
|
+
/** Произвольные runtime-метаданные host. */
|
|
145
|
+
readonly meta: Record<string, unknown>;
|
|
146
|
+
/** Контекст runtime-host (тип зависит от host). */
|
|
147
|
+
context: TContext;
|
|
148
|
+
/** Корневая raph-нода host (если есть). */
|
|
149
|
+
readonly node: RaphNode | null;
|
|
150
|
+
/** Изменить статус host и обновить updatedAt. */
|
|
151
|
+
setStatus: (status: RuntimeHostStatus) => void;
|
|
152
|
+
/** Добавить/обновить runtime-ресурс host. */
|
|
153
|
+
addResource: (resource: RuntimeHostResource) => void;
|
|
154
|
+
/** Добавить/обновить канал host. */
|
|
155
|
+
addChannel: (channel: RuntimeHostChannel) => void;
|
|
156
|
+
/** Сгенерировать runtime-событие host. */
|
|
157
|
+
emit: (event: string, payload: any) => void;
|
|
158
|
+
/** Подписаться на runtime-событие host. */
|
|
159
|
+
on: (event: string, listener: (payload: any) => void) => any;
|
|
160
|
+
/** Отписаться от runtime-события host. */
|
|
161
|
+
off: (event: string, listener: (payload: any) => void) => any;
|
|
162
|
+
/** Частично обновить context host. */
|
|
163
|
+
setContext: (patch: Partial<TContext>) => void;
|
|
164
|
+
/** Полностью заменить context host. */
|
|
165
|
+
replaceContext: (context: TContext) => void;
|
|
166
|
+
/** Сериализовать host в снимок для UI/диагностики. */
|
|
167
|
+
snapshot: () => RuntimeHostSnapshot;
|
|
168
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { RuntimeEntityType } from './runtime-entity-map.types';
|
|
2
|
+
import { RuntimeHost, RuntimeHostSnapshot } from './runtime-host.types';
|
|
3
|
+
export interface RuntimeHostRegistrySnapshot {
|
|
4
|
+
/** Общее количество зарегистрированных host. */
|
|
5
|
+
total: number;
|
|
6
|
+
/** Группировка host по статусу. */
|
|
7
|
+
byStatus: Record<string, number>;
|
|
8
|
+
/** Снимки всех host на момент запроса. */
|
|
9
|
+
hosts: RuntimeHostSnapshot[];
|
|
10
|
+
/** Общее количество удалённых host, сохранённых в debug-архиве. */
|
|
11
|
+
deletedTotal: number;
|
|
12
|
+
/** Снимки удалённых host из debug-архива. */
|
|
13
|
+
deletedHosts: RuntimeHostSnapshot[];
|
|
14
|
+
}
|
|
15
|
+
export interface RuntimeHostRegistryLike {
|
|
16
|
+
/** Зарегистрировать host в registry и вернуть его же. */
|
|
17
|
+
register<T extends RuntimeHost<any, any>>(host: T): T;
|
|
18
|
+
/** Найти host по runtime-id. */
|
|
19
|
+
getById(id: string): RuntimeHost<any, any> | null;
|
|
20
|
+
/** Получить список всех host. */
|
|
21
|
+
getAll(): RuntimeHost<any, any>[];
|
|
22
|
+
/** Получить host для конкретной доменной сущности. */
|
|
23
|
+
getByEntity(entityType: RuntimeEntityType, entityIdentity: string): RuntimeHost<any, any>[];
|
|
24
|
+
/** Удалить host по runtime-id и вернуть удаленный экземпляр. */
|
|
25
|
+
removeById(id: string): RuntimeHost<any, any> | null;
|
|
26
|
+
/** Очистить registry и разрушить все host. */
|
|
27
|
+
clear(): void;
|
|
28
|
+
/** Сохранить snapshot удалённого host в debug-архив. */
|
|
29
|
+
rememberDeletedSnapshot(snapshot: RuntimeHostSnapshot): void;
|
|
30
|
+
/** Получить снимки удалённых host из debug-архива. */
|
|
31
|
+
getDeletedSnapshots(): RuntimeHostSnapshot[];
|
|
32
|
+
/** Удалить один snapshot из debug-архива по runtime-id. */
|
|
33
|
+
removeDeletedSnapshot(id: string): RuntimeHostSnapshot | null;
|
|
34
|
+
/** Очистить debug-архив удалённых host. */
|
|
35
|
+
clearDeleted(): void;
|
|
36
|
+
/** Получить сериализованный snapshot registry. */
|
|
37
|
+
snapshot(): RuntimeHostRegistrySnapshot;
|
|
38
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { RComponentTableColumn } from '../entities/reflect/RComponentTableColumn';
|
|
2
|
+
import { PhaseExecutorContext } from '@endge/raph';
|
|
3
|
+
/**
|
|
4
|
+
* Runtime kinds
|
|
5
|
+
*/
|
|
6
|
+
export type RuntimeKind = 'query' | 'table' | 'table-column' | 'action' | 'runtime';
|
|
7
|
+
/**
|
|
8
|
+
* Событие для query: изменение фильтра
|
|
9
|
+
*/
|
|
10
|
+
export interface FilterChangeEvent {
|
|
11
|
+
filterId: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Query runtime events
|
|
15
|
+
*/
|
|
16
|
+
export interface QueryRuntimeEvents {
|
|
17
|
+
'filter:change': FilterChangeEvent;
|
|
18
|
+
}
|
|
19
|
+
export interface TableCellEvent<Row = any> {
|
|
20
|
+
/** Нативное DOM-событие */
|
|
21
|
+
event?: Event;
|
|
22
|
+
/** Колонка */
|
|
23
|
+
column: RComponentTableColumn;
|
|
24
|
+
columnIndex: number;
|
|
25
|
+
/** Строка */
|
|
26
|
+
rowIndex: number;
|
|
27
|
+
row: Row;
|
|
28
|
+
}
|
|
29
|
+
export interface TableCellsUpdateEvent {
|
|
30
|
+
children: Array<{
|
|
31
|
+
node: {
|
|
32
|
+
meta?: {
|
|
33
|
+
columnIndex?: number;
|
|
34
|
+
columnId?: string | number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
events?: PhaseExecutorContext['events'];
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Table runtime events (всё что было + filter:change)
|
|
42
|
+
*/
|
|
43
|
+
export interface TableRuntimeEvents {
|
|
44
|
+
'update:root': {
|
|
45
|
+
events?: unknown[];
|
|
46
|
+
meta?: Record<string, unknown>;
|
|
47
|
+
};
|
|
48
|
+
'update:cells': TableCellsUpdateEvent;
|
|
49
|
+
'update:boundaries': {
|
|
50
|
+
children: PhaseExecutorContext[];
|
|
51
|
+
};
|
|
52
|
+
'table-cell:click': TableCellEvent;
|
|
53
|
+
'table-cell:dblclick': TableCellEvent;
|
|
54
|
+
'table-cell:contextmenu': TableCellEvent;
|
|
55
|
+
'table-cell:mousedown': TableCellEvent;
|
|
56
|
+
'table-cell:mouseup': TableCellEvent;
|
|
57
|
+
}
|
|
58
|
+
export interface ActionRuntimeEvents {
|
|
59
|
+
'source:change': {
|
|
60
|
+
events?: unknown[];
|
|
61
|
+
meta?: Record<string, unknown>;
|
|
62
|
+
};
|
|
63
|
+
'step:start': {
|
|
64
|
+
stepId: string;
|
|
65
|
+
runtimeId?: string | null;
|
|
66
|
+
actionId?: string | null;
|
|
67
|
+
title?: string | null;
|
|
68
|
+
meta?: Record<string, unknown>;
|
|
69
|
+
};
|
|
70
|
+
'step:success': {
|
|
71
|
+
stepId: string;
|
|
72
|
+
runtimeId?: string | null;
|
|
73
|
+
actionId?: string | null;
|
|
74
|
+
title?: string | null;
|
|
75
|
+
output?: unknown;
|
|
76
|
+
meta?: Record<string, unknown>;
|
|
77
|
+
};
|
|
78
|
+
'step:error': {
|
|
79
|
+
stepId: string;
|
|
80
|
+
runtimeId?: string | null;
|
|
81
|
+
actionId?: string | null;
|
|
82
|
+
title?: string | null;
|
|
83
|
+
error: unknown;
|
|
84
|
+
meta?: Record<string, unknown>;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Runtime profile types
|
|
89
|
+
*/
|
|
90
|
+
export interface RuntimeProfile<K extends RuntimeKind, E extends Record<string, any>> {
|
|
91
|
+
kind: K;
|
|
92
|
+
events: E;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Profiles registry
|
|
96
|
+
*/
|
|
97
|
+
export interface RuntimeProfiles {
|
|
98
|
+
table: RuntimeProfile<'table', TableRuntimeEvents>;
|
|
99
|
+
query: RuntimeProfile<'query', QueryRuntimeEvents>;
|
|
100
|
+
action: RuntimeProfile<'action', ActionRuntimeEvents>;
|
|
101
|
+
}
|
|
102
|
+
export type RuntimeProfileByKind<K extends RuntimeKind> = RuntimeProfiles[K];
|
|
103
|
+
export type RuntimeEventsByKind<K extends RuntimeKind> = RuntimeProfileByKind<K>['events'];
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Projects_Repository } from '../../model/db/repositories/Projects_Repository';
|
|
2
|
+
import { Types_Repository } from '../../model/db/repositories/Types_Repository';
|
|
3
|
+
import { Queries_Repository } from '../../model/db/repositories/Queries_Repository';
|
|
4
|
+
import { Folders_Repository } from '../../model/db/repositories/Folders_Repository';
|
|
5
|
+
import { Components_Repository } from '../../model/db/repositories/Components_Repository';
|
|
6
|
+
import { Scenarios_Repository } from '../../model/db/repositories/Scenarios_Repository';
|
|
7
|
+
import { Actions_Repository } from '../../model/db/repositories/Actions_Repository';
|
|
8
|
+
import { Settings_Repository } from '../../model/db/repositories/Settings_Repository';
|
|
9
|
+
import { Vocabs_Repository } from '../../model/db/repositories/Vocabs_Repository';
|
|
10
|
+
import { I18nBundles_Repository } from '../../model/db/repositories/I18nBundles_Repository';
|
|
11
|
+
import { Parameters_Repository } from '../../model/db/repositories/Parameters_Repository';
|
|
12
|
+
import { Filters_Repository } from '../../model/db/repositories/Filters_Repository';
|
|
13
|
+
import { Converters_Repository } from '../../model/db/repositories/Converters_Repository';
|
|
14
|
+
import { Integrations_Repository } from '../../model/db/repositories/Integrations_Repository';
|
|
15
|
+
import { Versions_Repository } from '../../model/db/repositories/Versions_Repository';
|
|
16
|
+
import { Views_Repository } from '../../model/db/repositories/Views_Repository';
|
|
17
|
+
import { PageTemplates_Repository } from '../../model/db/repositories/PageTemplates_Repository';
|
|
18
|
+
import { Pages_Repository } from '../../model/db/repositories/Pages_Repository';
|
|
19
|
+
import { Navigations_Repository } from '../../model/db/repositories/Navigations_Repository';
|
|
20
|
+
import { Environments_Repository } from '../../model/db/repositories/Environments_Repository';
|
|
21
|
+
import { Policies_Repository } from '../../model/db/repositories/Policies_Repository';
|
|
22
|
+
import { Styles_Repository } from '../../model/db/repositories/Styles_Repository';
|
|
23
|
+
import { Tenants_Repository } from '../../model/db/repositories/Tenants_Repository';
|
|
24
|
+
import { BehaviorBindings_Repository } from '../../model/db/repositories/BehaviorBindings_Repository';
|
|
25
|
+
import { PresentationBindings_Repository } from '../../model/db/repositories/PresentationBindings_Repository';
|
|
26
|
+
export interface EndgeSchemaDump {
|
|
27
|
+
projects: any[];
|
|
28
|
+
types: any[];
|
|
29
|
+
queries: any[];
|
|
30
|
+
folders: any[];
|
|
31
|
+
components: any[];
|
|
32
|
+
scenarios: any[];
|
|
33
|
+
actions: any[];
|
|
34
|
+
converters: any[];
|
|
35
|
+
integrations: any[];
|
|
36
|
+
views: any[];
|
|
37
|
+
settings: any[];
|
|
38
|
+
vocabs: any[];
|
|
39
|
+
i18nBundles: any[];
|
|
40
|
+
parameters: any[];
|
|
41
|
+
filters: any[];
|
|
42
|
+
versions: any[];
|
|
43
|
+
environments: any[];
|
|
44
|
+
tenants: any[];
|
|
45
|
+
behaviorBindings: any[];
|
|
46
|
+
presentationBindings: any[];
|
|
47
|
+
policies: any[];
|
|
48
|
+
styles: any[];
|
|
49
|
+
pageTemplates: any[];
|
|
50
|
+
pages: any[];
|
|
51
|
+
navigations: any[];
|
|
52
|
+
}
|
|
53
|
+
export type EndgeSchemaErrorKind = 'PAYLOAD_NOT_CONFIGURED' | 'PAYLOAD_PING_FAILED' | 'COLLECTION_UNREACHABLE';
|
|
54
|
+
export interface EndgeSchemaError {
|
|
55
|
+
kind: EndgeSchemaErrorKind;
|
|
56
|
+
message: string;
|
|
57
|
+
collection?: string;
|
|
58
|
+
details?: any;
|
|
59
|
+
at: string;
|
|
60
|
+
}
|
|
61
|
+
export type RepositoriesBag = {
|
|
62
|
+
projects: Projects_Repository;
|
|
63
|
+
types: Types_Repository;
|
|
64
|
+
queries: Queries_Repository;
|
|
65
|
+
folders: Folders_Repository;
|
|
66
|
+
components: Components_Repository;
|
|
67
|
+
scenarios: Scenarios_Repository;
|
|
68
|
+
actions: Actions_Repository;
|
|
69
|
+
settings: Settings_Repository;
|
|
70
|
+
vocabs: Vocabs_Repository;
|
|
71
|
+
i18nBundles: I18nBundles_Repository;
|
|
72
|
+
parameters: Parameters_Repository;
|
|
73
|
+
filters: Filters_Repository;
|
|
74
|
+
converters: Converters_Repository;
|
|
75
|
+
integrations: Integrations_Repository;
|
|
76
|
+
views: Views_Repository;
|
|
77
|
+
versions: Versions_Repository;
|
|
78
|
+
environments: Environments_Repository;
|
|
79
|
+
tenants: Tenants_Repository;
|
|
80
|
+
behaviorBindings: BehaviorBindings_Repository;
|
|
81
|
+
presentationBindings: PresentationBindings_Repository;
|
|
82
|
+
policies: Policies_Repository;
|
|
83
|
+
styles: Styles_Repository;
|
|
84
|
+
pageTemplates: PageTemplates_Repository;
|
|
85
|
+
pages: Pages_Repository;
|
|
86
|
+
navigations: Navigations_Repository;
|
|
87
|
+
};
|
|
88
|
+
export interface EndgeSchemaStorageOptions {
|
|
89
|
+
payloadBaseAPI: string;
|
|
90
|
+
payloadSecret: string;
|
|
91
|
+
collectionsToCheck?: string[];
|
|
92
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/** Откуда брать значение переменной */
|
|
2
|
+
export type SettingsVarSecretSource = 'pure' | 'secret';
|
|
3
|
+
export interface SettingsVarSchema {
|
|
4
|
+
/** Имя переменной (ключ). Уникален в рамках settings.vars */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Значение по умолчанию */
|
|
7
|
+
defaultValue: string;
|
|
8
|
+
/** Текущее значение (может быть пустым => брать defaultValue) */
|
|
9
|
+
currentValue?: string;
|
|
10
|
+
/** Источник (как в Payload-схеме) */
|
|
11
|
+
secret?: SettingsVarSecretSource;
|
|
12
|
+
}
|
|
13
|
+
/** Провайдер авторизации */
|
|
14
|
+
export type SettingsAuthProvider = 'keycloak_manual' | 'keycloak_form';
|
|
15
|
+
export type StringRecord = Record<string, string>;
|
|
16
|
+
export interface SettingsAuthKeycloakBase {
|
|
17
|
+
provider: SettingsAuthProvider;
|
|
18
|
+
KeycloakBaseUrl: string;
|
|
19
|
+
storageKey: string;
|
|
20
|
+
clientId: string;
|
|
21
|
+
scope: string;
|
|
22
|
+
refreshSkewMs: number;
|
|
23
|
+
tokenPath?: string;
|
|
24
|
+
logoutPath?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SettingsAuthKeycloakManualConfig extends SettingsAuthKeycloakBase {
|
|
27
|
+
provider: 'keycloak_manual';
|
|
28
|
+
login?: string;
|
|
29
|
+
password?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface SettingsAuthKeycloakFormConfig extends SettingsAuthKeycloakBase {
|
|
32
|
+
provider: 'keycloak_form';
|
|
33
|
+
}
|
|
34
|
+
export type SettingsAuthSchema = SettingsAuthKeycloakManualConfig | SettingsAuthKeycloakFormConfig;
|
|
35
|
+
export interface SettingsVocabCollectionSchema {
|
|
36
|
+
/** slug коллекции во внешнем репозитории */
|
|
37
|
+
name: string;
|
|
38
|
+
}
|
|
39
|
+
export interface SettingsVocabSourceSchema {
|
|
40
|
+
/** Идентификатор набора словарей */
|
|
41
|
+
identity: string;
|
|
42
|
+
/** Base URL до внешнего Payload API */
|
|
43
|
+
baseApiUrl: string;
|
|
44
|
+
/** Коллекции, которые считаем словарями */
|
|
45
|
+
collections: SettingsVocabCollectionSchema[];
|
|
46
|
+
}
|
|
47
|
+
export type SettingsCustomFieldType = 'string' | 'boolean' | 'select';
|
|
48
|
+
export interface SettingsCustomFieldSchema {
|
|
49
|
+
/** Ключ поля (используется в рантайме) */
|
|
50
|
+
key: string;
|
|
51
|
+
label: string;
|
|
52
|
+
type: SettingsCustomFieldType;
|
|
53
|
+
required?: boolean;
|
|
54
|
+
/** Опции для select - формат не жёстко типизируем, оставим any */
|
|
55
|
+
options?: any;
|
|
56
|
+
/** Дефолты (динамично по type) */
|
|
57
|
+
defaultString?: string;
|
|
58
|
+
defaultBoolean?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface SettingsCustomSectionSchema {
|
|
61
|
+
/** Уникальный ключ секции, типа "ui.colors" */
|
|
62
|
+
key: string;
|
|
63
|
+
label: string;
|
|
64
|
+
description?: string;
|
|
65
|
+
fields: SettingsCustomFieldSchema[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Основная схема настроек, которая будет храниться в EndgeSchemaDump.settings[]
|
|
69
|
+
*
|
|
70
|
+
* ВАЖНО: это "schema-часть", без storage-мета. Метаданные (createdAt и т.п.)
|
|
71
|
+
* живут в REntity и приходят при необходимости из payload-документа.
|
|
72
|
+
*/
|
|
73
|
+
export interface SettingsSchema {
|
|
74
|
+
/** id сущности в domain-смысле (identity/id) */
|
|
75
|
+
id: string;
|
|
76
|
+
/** identity документа настроек (из поля identity в Payload) */
|
|
77
|
+
identity: string;
|
|
78
|
+
/** Человекочитаемое имя (унифицированное) */
|
|
79
|
+
name: string;
|
|
80
|
+
/** Название настроек (displayName) */
|
|
81
|
+
displayName: string;
|
|
82
|
+
/** identity проекта, если настройки проектные; null/undefined - глобальные */
|
|
83
|
+
project?: string | null;
|
|
84
|
+
/** soft-delete отметка, если документ удалён */
|
|
85
|
+
deletedAt?: string | null;
|
|
86
|
+
/** Секция глобальных переменных */
|
|
87
|
+
vars?: SettingsVarSchema[];
|
|
88
|
+
/** Секция авторизации */
|
|
89
|
+
auth?: SettingsAuthSchema;
|
|
90
|
+
/** Внешние словари (vocabs) */
|
|
91
|
+
vocabs?: SettingsVocabSourceSchema[];
|
|
92
|
+
/** Пользовательские секции */
|
|
93
|
+
customSections?: SettingsCustomSectionSchema[];
|
|
94
|
+
}
|
|
95
|
+
export interface SettingsUpdateFieldSchema {
|
|
96
|
+
/**
|
|
97
|
+
* Типы обновлений через запятую, как хранится в Payload.
|
|
98
|
+
* На этапе нормализации можно превратить в string[].
|
|
99
|
+
*/
|
|
100
|
+
types: string;
|
|
101
|
+
/** JSON схема применения обновления */
|
|
102
|
+
jsonSchema?: unknown;
|
|
103
|
+
}
|
|
104
|
+
export interface SettingsUpdateProfileSchema {
|
|
105
|
+
/** identity профиля обновлений */
|
|
106
|
+
identity: string;
|
|
107
|
+
/** путь к типу события в сообщении (пример: "eventInfo.name") */
|
|
108
|
+
updateTypePath: string;
|
|
109
|
+
/** обработчики типов сообщений */
|
|
110
|
+
fields: SettingsUpdateFieldSchema[];
|
|
111
|
+
}
|
|
112
|
+
export type SettingsSSEAuthMode = 'inherit' | 'none' | 'manual';
|
|
113
|
+
export interface SettingsSSESchema {
|
|
114
|
+
url: string;
|
|
115
|
+
authMode?: SettingsSSEAuthMode;
|
|
116
|
+
manualToken?: string;
|
|
117
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы для системы стилей Endge (новый формат).
|
|
3
|
+
*
|
|
4
|
+
* В Payload поле `styles` хранится как JSON-массив (по умолчанию `[]`):
|
|
5
|
+
*
|
|
6
|
+
* [
|
|
7
|
+
* {
|
|
8
|
+
* "component:my-table-id": {
|
|
9
|
+
* "backgroundColor": "red",
|
|
10
|
+
* "tag-root:root-id": {
|
|
11
|
+
* "padding": "8px"
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ]
|
|
16
|
+
*
|
|
17
|
+
* Ключи вида "<selectorType>:<id>" описывают селекторы (вложенность как в SCSS),
|
|
18
|
+
* остальные ключи - CSS-свойства в camelCase.
|
|
19
|
+
*/
|
|
20
|
+
/** Ключ селектора в JSON, например "component:my-table-id". */
|
|
21
|
+
export type StyleSelectorKey = string;
|
|
22
|
+
/** Один объект-блок с деревом вложенных селекторов и свойств. */
|
|
23
|
+
export type StyleJsonBlock = Record<string, any>;
|
|
24
|
+
/** Весь JSON стиля - массив блоков. */
|
|
25
|
+
export type StyleBlocksPayload = StyleJsonBlock[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Описание сортировки, привязанное к колонке.
|
|
3
|
+
* Направление (asc/desc) задаётся пользователем в рантайме.
|
|
4
|
+
*/
|
|
5
|
+
export interface ColumnSortConfig {
|
|
6
|
+
/**
|
|
7
|
+
* ключ внутри колонки (обычно один из keys dataPaths),
|
|
8
|
+
* например: "status" / "data" / "number"
|
|
9
|
+
*/
|
|
10
|
+
by: string;
|
|
11
|
+
/**
|
|
12
|
+
* "String" | "Number" | "Date" | "DateTime" ...
|
|
13
|
+
*/
|
|
14
|
+
type: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { RComponentBase } from '../entities/reflect/RComponentBase';
|
|
2
|
+
import { RuntimeScope } from '../entities/runtime/RuntimeScope';
|
|
3
|
+
import { ElementNode } from '@vue/compiler-dom';
|
|
4
|
+
import { VNode } from 'vue';
|
|
5
|
+
import { RComponent } from './component.types';
|
|
6
|
+
export declare enum RenderComponentType {
|
|
7
|
+
Functional = "functional",// функциональный компонент
|
|
8
|
+
Component = "component"
|
|
9
|
+
}
|
|
10
|
+
export interface RenderComponentInfo {
|
|
11
|
+
type: RenderComponentType;
|
|
12
|
+
component: any;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Описывает UI оформление данных
|
|
16
|
+
*/
|
|
17
|
+
export declare enum Prefix {
|
|
18
|
+
ComponentWrapper = "endge-component",
|
|
19
|
+
TooltipAttributeText = "endge-tooltip-text",
|
|
20
|
+
TooltipAttributeId = "endge-tooltip-id"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Props для рендер-компонента
|
|
24
|
+
*/
|
|
25
|
+
export interface ComponentType_Props<T extends RComponentBase> {
|
|
26
|
+
model: T;
|
|
27
|
+
comData: Record<string, any>;
|
|
28
|
+
scope: RuntimeScope;
|
|
29
|
+
context?: Record<string, any>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Входной тип для рендер-компонента (в частности h-функций)
|
|
33
|
+
*/
|
|
34
|
+
export type ComponentRendererInput = ComponentType_Props<RComponent>;
|
|
35
|
+
/**
|
|
36
|
+
* Props для компонента JSX
|
|
37
|
+
*/
|
|
38
|
+
export interface JSXComponentProps {
|
|
39
|
+
node: ElementNode;
|
|
40
|
+
children: (VNode | string | null)[];
|
|
41
|
+
scope: RuntimeScope;
|
|
42
|
+
handlers?: Record<string, CallableFunction>;
|
|
43
|
+
comData: Record<string, any>;
|
|
44
|
+
styles?: Record<string, string>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Входные данные для middleware-функции
|
|
48
|
+
*/
|
|
49
|
+
export interface JSXRenderMiddlewareInput {
|
|
50
|
+
h: any;
|
|
51
|
+
props: JSXComponentProps;
|
|
52
|
+
node: ElementNode;
|
|
53
|
+
vnode: VNode | null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Модель для описания того, как извлекаются данные под некоторый входной тип
|
|
57
|
+
*/
|
|
58
|
+
export interface AccessorDescriptor {
|
|
59
|
+
name: string;
|
|
60
|
+
accessor: string;
|
|
61
|
+
converter?: string;
|
|
62
|
+
}
|
|
63
|
+
export declare enum ComponentKind {
|
|
64
|
+
JSX = "jsx",// компонент на JSX синтаксисе
|
|
65
|
+
Vue = "vue"
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Представление узла GraphQL-запроса.
|
|
69
|
+
*/
|
|
70
|
+
export interface GQLQueryNode {
|
|
71
|
+
field: string;
|
|
72
|
+
children?: GQLQueryNode[];
|
|
73
|
+
args?: Record<string, any>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Параметры для запуска сценария с настройками из панели тестирования.
|
|
77
|
+
*/
|
|
78
|
+
export interface EndgeScenarioTestingOptions {
|
|
79
|
+
generatorCount?: number;
|
|
80
|
+
updatesPerSeconds?: number;
|
|
81
|
+
updatesOptions?: {
|
|
82
|
+
paths: Set<string>;
|
|
83
|
+
vars: Record<string, any>;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export interface EndgeGlobalVar {
|
|
87
|
+
name: string;
|
|
88
|
+
defaultValue: any;
|
|
89
|
+
currentValue: any;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Одна вкладка проекта в верхней панели.
|
|
93
|
+
*/
|
|
94
|
+
export interface ProjectTab {
|
|
95
|
+
/** Уникальный идентификатор проекта / вкладки. */
|
|
96
|
+
id: string;
|
|
97
|
+
/** Отображаемое имя проекта. */
|
|
98
|
+
name: string;
|
|
99
|
+
}
|