@acorex/platform 21.0.0-next.3 → 21.0.0-next.34
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/fesm2022/acorex-platform-auth.mjs +295 -45
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +60 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +960 -319
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +1352 -832
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +554 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +530 -154
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +5969 -2347
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +15380 -9274
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +393 -110
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +511 -450
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +39 -16
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +7865 -4026
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +8 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +220 -169
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +18 -25
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +1717 -66
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +11 -11
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +563 -561
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +1735 -1750
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +31 -31
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +247 -10
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +492 -31
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +606 -392
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +128 -56
- package/types/acorex-platform-layout-components.d.ts +2927 -0
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +1133 -237
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +90 -31
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +206 -102
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +942 -137
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +113 -5
- package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +1 -1
- package/types/acorex-platform-workflow.d.ts +1806 -0
- package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +0 -1542
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
- package/layout/components/index.d.ts +0 -1669
- package/workflow/index.d.ts +0 -2443
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -1,38 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken,
|
|
2
|
+
import { InjectionToken, Type, EnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { AXPExpression, AXPMetaData, AXPDataType, AXPOptionsData, AXPValidationRules } from '@acorex/platform/core';
|
|
3
4
|
import * as i1 from '@acorex/platform/runtime';
|
|
4
|
-
import { AXPExpression, AXPValidationRules, AXPOptionsData, AXPMetaData } from '@acorex/platform/core';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Token for entity CRUD setup. Consumed by AXPDomainModule.
|
|
8
|
+
* The actual provider is provideEntity() from @acorex/platform/layout/entity
|
|
9
|
+
* to avoid circular dependency (domain must not depend on layout/entity).
|
|
10
|
+
*/
|
|
6
11
|
declare const AXP_ENTITY_CRUD_SETUP: InjectionToken<void>;
|
|
7
|
-
declare function provideEntity(entityKeys: string[]): EnvironmentProviders;
|
|
8
12
|
|
|
9
|
-
declare
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* Used during application bootstrap to register global middleware
|
|
15
|
-
* that applies to all schema resolutions. This enables centralized
|
|
16
|
-
* schema processing logic.
|
|
17
|
-
*/
|
|
18
|
-
private _schemaSetup;
|
|
19
|
-
private _schemaMiddlewareSetup;
|
|
20
|
-
private _schemaLoaderSetup;
|
|
21
|
-
/**
|
|
22
|
-
* Injection token for domain loader setup initialization.
|
|
23
|
-
*
|
|
24
|
-
* Used during application bootstrap to register domain loaders
|
|
25
|
-
* that can provide domain definitions on-demand when they're not found in
|
|
26
|
-
* the registry.
|
|
27
|
-
*/
|
|
28
|
-
private _domainLoaderSetup;
|
|
29
|
-
private _domainMiddlewareSetup;
|
|
30
|
-
private _domainSetup;
|
|
31
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXPDomainModule, never>;
|
|
32
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AXPDomainModule, never, [typeof i1.AXPRuntimeModule], never>;
|
|
33
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<AXPDomainModule>;
|
|
13
|
+
declare enum AXPDomainActionSide {
|
|
14
|
+
Client = "client",
|
|
15
|
+
Server = "server",
|
|
16
|
+
Both = "both"
|
|
34
17
|
}
|
|
35
|
-
|
|
36
18
|
/**
|
|
37
19
|
* Interface for defining actions
|
|
38
20
|
*/
|
|
@@ -48,31 +30,124 @@ declare enum AXPEntityCommandScope {
|
|
|
48
30
|
Individual = "individual",
|
|
49
31
|
Section = "section"
|
|
50
32
|
}
|
|
33
|
+
interface AXPDomainRealtedModuleEntity {
|
|
34
|
+
moduleId?: string;
|
|
35
|
+
module?: {
|
|
36
|
+
id?: string;
|
|
37
|
+
name?: string;
|
|
38
|
+
title?: string;
|
|
39
|
+
};
|
|
40
|
+
entityId?: string;
|
|
41
|
+
entity?: {
|
|
42
|
+
id?: string;
|
|
43
|
+
name?: string;
|
|
44
|
+
title?: string;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
51
47
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Where the validation rule runs: client-side only, server-side only, or both.
|
|
50
|
+
*/
|
|
51
|
+
type AXPValidationRunAt = 'client' | 'server' | 'both';
|
|
52
|
+
/**
|
|
53
|
+
* Validation rule definition (catalog model): metadata for available validation rules.
|
|
54
|
+
* Used in UI to list validation rules: name (rule key), title, description, and runAt.
|
|
55
|
+
* The actual rule usage on properties uses AXPValidationRule from @acorex/platform/core.
|
|
56
|
+
*/
|
|
57
|
+
interface AXPValidationRuleDefinition extends AXPDomainRealtedModuleEntity {
|
|
58
|
+
rule: string;
|
|
59
|
+
title: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
icon?: string;
|
|
62
|
+
/** Where the validation runs: client-side, server-side, or both. Default: 'client' */
|
|
63
|
+
runAt?: AXPValidationRunAt;
|
|
64
|
+
message?: string;
|
|
65
|
+
options?: AXPPropertyDefinition[];
|
|
56
66
|
}
|
|
57
|
-
interface
|
|
67
|
+
interface AXPValidationRuleValue {
|
|
68
|
+
rule: string;
|
|
69
|
+
title?: string;
|
|
70
|
+
message?: string;
|
|
71
|
+
options?: AXPMetaData;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
interface AXPPropertyFeatures {
|
|
75
|
+
searchable?: {
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
fullText: boolean;
|
|
78
|
+
};
|
|
79
|
+
filterable?: {
|
|
80
|
+
enabled: boolean;
|
|
81
|
+
inline: boolean;
|
|
82
|
+
};
|
|
83
|
+
sortable?: {
|
|
84
|
+
enabled: boolean;
|
|
85
|
+
};
|
|
86
|
+
auditable?: {
|
|
87
|
+
enabled: boolean;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
interface AXPPropertyDefinition {
|
|
58
91
|
name: string;
|
|
59
92
|
title: string;
|
|
60
|
-
|
|
61
|
-
|
|
93
|
+
description?: string;
|
|
94
|
+
icon?: string;
|
|
95
|
+
defaultValue?: unknown;
|
|
96
|
+
disabled?: boolean;
|
|
97
|
+
dataType?: AXPDataType;
|
|
98
|
+
interface: AXPInterfaceDefinitionValue;
|
|
99
|
+
validations?: AXPValidationRuleValue[];
|
|
100
|
+
features?: AXPPropertyFeatures;
|
|
101
|
+
metadata?: AXPMetaData;
|
|
62
102
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
103
|
+
|
|
104
|
+
/** Widget category for interface grouping (e.g. Editors, Layout, Action). */
|
|
105
|
+
interface AXPInterfaceCategory {
|
|
106
|
+
name: string;
|
|
107
|
+
title: string;
|
|
108
|
+
order?: number;
|
|
109
|
+
}
|
|
110
|
+
/** Widget interface definition stored in DB (display metadata + option definitions). Values are stored in schema. */
|
|
111
|
+
interface AXPInterfaceDefinition {
|
|
112
|
+
name: string;
|
|
113
|
+
title?: string;
|
|
114
|
+
description?: string;
|
|
115
|
+
icon?: string;
|
|
116
|
+
dataType?: AXPDataType;
|
|
117
|
+
/** Widget categories (e.g. Editors, Layout). */
|
|
118
|
+
categories?: AXPInterfaceCategory | AXPInterfaceCategory[];
|
|
119
|
+
/** Widget groups (e.g. form-element, entity-widget). */
|
|
120
|
+
groups?: string[];
|
|
121
|
+
/** Widget type: editor, view, filter, container, action, etc. */
|
|
122
|
+
type?: string;
|
|
123
|
+
/** Default filter widget name when used as filter (e.g. string-filter, number-filter). */
|
|
124
|
+
defaultFilterWidgetName?: string;
|
|
125
|
+
optionDefinitions?: AXPPropertyDefinition[];
|
|
66
126
|
}
|
|
67
|
-
interface
|
|
127
|
+
interface AXPInterfaceDefinitionValue {
|
|
128
|
+
name: string;
|
|
129
|
+
title: string;
|
|
130
|
+
options?: AXPOptionsData;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Plugin definition (catalog model): metadata for available plugins.
|
|
135
|
+
* Used in UI to list plugins: name, title, optional icon, description, and options schema.
|
|
136
|
+
*/
|
|
137
|
+
interface AXPPluginDefinition extends AXPDomainRealtedModuleEntity {
|
|
68
138
|
name: string;
|
|
69
139
|
title: string;
|
|
70
140
|
description?: string;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
141
|
+
icon?: string;
|
|
142
|
+
options?: AXPPropertyDefinition[];
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Plugin value in entity: name + optional options (key-value).
|
|
146
|
+
* Fills the definition when used on an entity.
|
|
147
|
+
*/
|
|
148
|
+
interface AXPPluginDefinitionValue {
|
|
149
|
+
name: string;
|
|
150
|
+
options?: AXPMetaData;
|
|
76
151
|
}
|
|
77
152
|
|
|
78
153
|
declare enum AXPRelationshipKind {
|
|
@@ -86,188 +161,383 @@ declare enum AXPRelationshipCardinality {
|
|
|
86
161
|
ManyToMany = 2
|
|
87
162
|
}
|
|
88
163
|
/**
|
|
89
|
-
*
|
|
164
|
+
* Standalone relation definition with full source and target.
|
|
165
|
+
* Relations live in their own collection, independent of aggregates.
|
|
90
166
|
*/
|
|
91
|
-
interface
|
|
167
|
+
interface AXPRelationDefinition {
|
|
168
|
+
id?: string;
|
|
92
169
|
type: AXPRelationshipCardinality;
|
|
93
170
|
kind: AXPRelationshipKind;
|
|
94
|
-
|
|
171
|
+
source: {
|
|
95
172
|
aggregate: string;
|
|
96
173
|
entity: string;
|
|
97
174
|
key: string;
|
|
98
175
|
};
|
|
99
|
-
|
|
176
|
+
target: {
|
|
177
|
+
aggregate: string;
|
|
100
178
|
entity: string;
|
|
101
179
|
key: string;
|
|
102
180
|
};
|
|
103
181
|
isRequired: boolean;
|
|
104
182
|
}
|
|
105
183
|
|
|
106
|
-
|
|
107
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Discriminated JSON for `AXPMenuDefinitionRecord.command`.
|
|
186
|
+
* Modal navigation is omitted (Angular `Type` is not JSON-serializable).
|
|
187
|
+
*/
|
|
188
|
+
type AXPMenuDefinitionStoredCommand = {
|
|
189
|
+
kind: 'navigate';
|
|
190
|
+
navigateType: 'router';
|
|
191
|
+
path: string;
|
|
192
|
+
extras?: Record<string, unknown>;
|
|
193
|
+
} | {
|
|
194
|
+
kind: 'execute';
|
|
195
|
+
name: string;
|
|
196
|
+
options?: Record<string, unknown>;
|
|
108
197
|
};
|
|
109
|
-
|
|
198
|
+
/**
|
|
199
|
+
* Optional reference to an entity list route: resolved at runtime via `AXPEntityService.createPath`.
|
|
200
|
+
*/
|
|
201
|
+
interface AXPMenuDefinitionEntityListRef {
|
|
202
|
+
module: string;
|
|
203
|
+
entity: string;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Serializable menu definition for definition stores (Dexie/Firestore in mock today).
|
|
207
|
+
* Mirrors persisted shape for `AXPEntityDefinitionCrudService` menu APIs — not identical to shell `AXPMenuItem`.
|
|
208
|
+
*/
|
|
209
|
+
interface AXPMenuDefinitionRecord {
|
|
210
|
+
/** Same as `AXPMenuItem.name` (unique key). */
|
|
110
211
|
name: string;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
212
|
+
text: string;
|
|
213
|
+
description?: string;
|
|
214
|
+
icon?: string;
|
|
215
|
+
priority?: number;
|
|
216
|
+
type?: 'menu' | 'group' | 'break';
|
|
217
|
+
/**
|
|
218
|
+
* Parent menu `name` for `context.find(attachParentName).addItems(...)`.
|
|
219
|
+
* Empty omits attachment (provider may add to root — see implementation).
|
|
220
|
+
*/
|
|
221
|
+
attachParentName?: string;
|
|
222
|
+
/** Literal router path; if both this and `entityListRef` are set, implementations may prefer this. */
|
|
223
|
+
path?: string;
|
|
224
|
+
entityListRef?: AXPMenuDefinitionEntityListRef;
|
|
225
|
+
policyFeatures?: string[];
|
|
226
|
+
policyPermissions?: string[];
|
|
227
|
+
badgeKey?: string;
|
|
228
|
+
command?: AXPMenuDefinitionStoredCommand;
|
|
229
|
+
/**
|
|
230
|
+
* Optional module classification (references `PlatformManagement.ModuleDefinitions` when using the category plugin).
|
|
231
|
+
*/
|
|
232
|
+
categoryIds?: string[];
|
|
233
|
+
/** Denormalized labels for list/display (mirrors product category pattern). */
|
|
234
|
+
categories?: Array<{
|
|
235
|
+
id: string;
|
|
236
|
+
title?: string;
|
|
237
|
+
}>;
|
|
238
|
+
meta?: Record<string, unknown>;
|
|
116
239
|
}
|
|
117
240
|
|
|
118
|
-
|
|
241
|
+
/**
|
|
242
|
+
* One level of child permissions under a root permission (fluent `addChild` only).
|
|
243
|
+
* Nested `children` under leaves are not part of the storage contract.
|
|
244
|
+
*/
|
|
245
|
+
interface AXPPermissionLeafRecord {
|
|
119
246
|
name: string;
|
|
120
247
|
title: string;
|
|
121
|
-
|
|
248
|
+
description?: string;
|
|
249
|
+
requiredFeatures?: string[];
|
|
122
250
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
251
|
+
/**
|
|
252
|
+
* Root permission row: one `addPermission` … `endPermission` chain, with optional sibling `addChild` entries.
|
|
253
|
+
*/
|
|
254
|
+
interface AXPPermissionDefinitionRecord {
|
|
255
|
+
name: string;
|
|
256
|
+
title: string;
|
|
257
|
+
description?: string;
|
|
258
|
+
requiredFeatures?: string[];
|
|
259
|
+
/** At most one level — matches `AXPPermissionDefinitionProviderContext` fluent API. */
|
|
260
|
+
children?: AXPPermissionLeafRecord[];
|
|
129
261
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Serializable permission group for definition stores (Dexie/Firestore).
|
|
264
|
+
* Aligns with `AXPPermissionGroupDefinition` / fluent providers; one row per group.
|
|
265
|
+
*/
|
|
266
|
+
interface AXPPermissionGroupDefinitionRecord {
|
|
267
|
+
name: string;
|
|
268
|
+
title: string;
|
|
269
|
+
description?: string;
|
|
270
|
+
permissions: AXPPermissionDefinitionRecord[];
|
|
271
|
+
/**
|
|
272
|
+
* Optional module classification (references `PlatformManagement.ModuleDefinitions` when using the category plugin).
|
|
273
|
+
*/
|
|
274
|
+
categoryIds?: string[];
|
|
275
|
+
/** Denormalized labels for list/display (mirrors product category pattern). */
|
|
276
|
+
categories?: Array<{
|
|
277
|
+
id: string;
|
|
278
|
+
title?: string;
|
|
279
|
+
}>;
|
|
145
280
|
}
|
|
146
|
-
|
|
281
|
+
|
|
282
|
+
/** Surfaces where a command may be exposed (tooling / automation). Build-time: optional on `defineCommand`. */
|
|
283
|
+
type AXPCommandCapability = 'ai' | 'workflow';
|
|
284
|
+
/**
|
|
285
|
+
* Persisted command registry row (e.g. Dexie/Firestore via AXPEntityDefinitionCrudService).
|
|
286
|
+
* `name` is the runtime command key; `active` is the toggle stored for mock/admin UIs.
|
|
287
|
+
*/
|
|
288
|
+
interface AXPCommandRegistryRecord {
|
|
147
289
|
name: string;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
290
|
+
active: boolean;
|
|
291
|
+
/** Human / AI-oriented description of what the command does. */
|
|
292
|
+
description?: string;
|
|
293
|
+
/** Input parameters as schema rows (same shape as interface `optionDefinitions`). */
|
|
294
|
+
inputOptionDefinitions?: AXPPropertyDefinition[];
|
|
295
|
+
/** Output shape as schema rows (same shape as interface `optionDefinitions`). */
|
|
296
|
+
outputOptionDefinitions?: AXPPropertyDefinition[];
|
|
297
|
+
/** Display title from build-time command metadata (`*.definition.ts`). */
|
|
298
|
+
catalogTitle?: string;
|
|
299
|
+
/** Where the command runs (metadata). */
|
|
300
|
+
executionMode?: 'frontend' | 'backend' | 'both';
|
|
301
|
+
/** Pretty-printed JSON of the outcomes definition from metadata (readonly display). */
|
|
302
|
+
outcomesDefinitionJson?: string;
|
|
303
|
+
/** Pretty-printed JSON of AI hints from metadata (readonly display). */
|
|
304
|
+
aiMetadataJson?: string;
|
|
305
|
+
/**
|
|
306
|
+
* Optional capability flags (from build-time `capabilities` on command metadata).
|
|
307
|
+
* Omitted or empty means no declared surface; consumers may still apply legacy rules (e.g. AI `ai-tool` tag).
|
|
308
|
+
*/
|
|
309
|
+
capabilities?: AXPCommandCapability[];
|
|
153
310
|
}
|
|
154
311
|
|
|
155
312
|
/**
|
|
156
|
-
*
|
|
313
|
+
* Persisted query registry row (e.g. Dexie/Firestore via AXPEntityDefinitionCrudService).
|
|
314
|
+
* `name` is the runtime query key; `active` is the toggle stored for mock/admin UIs.
|
|
315
|
+
* Queries expose `fetch(input)` only — no command outcomes.
|
|
157
316
|
*/
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
readonly
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
*
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
317
|
+
interface AXPQueryRegistryRecord {
|
|
318
|
+
name: string;
|
|
319
|
+
active: boolean;
|
|
320
|
+
/** Human / AI-oriented description of what the query returns. */
|
|
321
|
+
description?: string;
|
|
322
|
+
/** Input parameters (filter / criteria) as property definition rows. */
|
|
323
|
+
inputOptionDefinitions?: AXPPropertyDefinition[];
|
|
324
|
+
/** Result shape as property definition rows (documentation / tooling). */
|
|
325
|
+
outputOptionDefinitions?: AXPPropertyDefinition[];
|
|
326
|
+
/** Display title from build-time query metadata (`*.query.definition.ts`). */
|
|
327
|
+
catalogTitle?: string;
|
|
328
|
+
/** Where the query runs (metadata). */
|
|
329
|
+
executionMode?: 'frontend' | 'backend' | 'both';
|
|
330
|
+
/** Pretty-printed JSON of AI hints from metadata (readonly display). */
|
|
331
|
+
aiMetadataJson?: string;
|
|
332
|
+
/**
|
|
333
|
+
* Optional capability flags (from build-time `capabilities` on query metadata).
|
|
334
|
+
* Omitted or empty means no declared surface; consumers may still apply legacy rules (e.g. AI `ai-tool` tag).
|
|
335
|
+
*/
|
|
336
|
+
capabilities?: AXPCommandCapability[];
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Service interface for CRUD operations on entity and related definition records stored in Dexie/Firestore.
|
|
341
|
+
* Provided by connectivity mock when using Dexie or Firestore as entity definition source.
|
|
342
|
+
* Use this service from anywhere in the app (not just mock).
|
|
343
|
+
*/
|
|
344
|
+
interface AXPEntityDefinitionCrudService {
|
|
345
|
+
list(): Promise<{
|
|
346
|
+
name: string;
|
|
347
|
+
module: string;
|
|
348
|
+
entityName?: string;
|
|
349
|
+
}[]>;
|
|
350
|
+
getRaw(moduleName: string, entityName: string): Promise<Record<string, unknown> | null>;
|
|
351
|
+
create(entityName: string, definition: Record<string, unknown>): Promise<void>;
|
|
352
|
+
update(entityName: string, definition: Record<string, unknown>): Promise<void>;
|
|
353
|
+
delete(entityName: string): Promise<void>;
|
|
354
|
+
listInterfaces(): Promise<AXPInterfaceDefinition[]>;
|
|
355
|
+
listInterfacesByCategory(categoryName: string): Promise<AXPInterfaceDefinition[]>;
|
|
356
|
+
getInterface(name: string): Promise<AXPInterfaceDefinition | null>;
|
|
357
|
+
createInterface(name: string, definition: AXPInterfaceDefinition): Promise<void>;
|
|
358
|
+
updateInterface(name: string, definition: AXPInterfaceDefinition): Promise<void>;
|
|
359
|
+
deleteInterface(name: string): Promise<void>;
|
|
360
|
+
listPlugins(): Promise<AXPPluginDefinition[]>;
|
|
361
|
+
getPlugin(name: string): Promise<AXPPluginDefinition | null>;
|
|
362
|
+
createPlugin(name: string, definition: AXPPluginDefinition): Promise<void>;
|
|
363
|
+
updatePlugin(name: string, definition: AXPPluginDefinition): Promise<void>;
|
|
364
|
+
deletePlugin(name: string): Promise<void>;
|
|
365
|
+
listValidations(): Promise<AXPValidationRuleDefinition[]>;
|
|
366
|
+
getValidation(name: string): Promise<AXPValidationRuleDefinition | null>;
|
|
367
|
+
createValidation(name: string, definition: AXPValidationRuleDefinition): Promise<void>;
|
|
368
|
+
updateValidation(name: string, definition: AXPValidationRuleDefinition): Promise<void>;
|
|
369
|
+
deleteValidation(name: string): Promise<void>;
|
|
370
|
+
listRelations(): Promise<Array<AXPRelationDefinition & {
|
|
371
|
+
id: string;
|
|
372
|
+
}>>;
|
|
373
|
+
getRelation(id: string): Promise<AXPRelationDefinition | null>;
|
|
374
|
+
createRelation(id: string, definition: AXPRelationDefinition): Promise<void>;
|
|
375
|
+
updateRelation(id: string, definition: AXPRelationDefinition): Promise<void>;
|
|
376
|
+
deleteRelation(id: string): Promise<void>;
|
|
377
|
+
listModules(): Promise<Array<{
|
|
378
|
+
name: string;
|
|
379
|
+
title?: string;
|
|
380
|
+
icon?: string;
|
|
381
|
+
}>>;
|
|
382
|
+
getModule(name: string): Promise<{
|
|
383
|
+
name: string;
|
|
384
|
+
title?: string;
|
|
385
|
+
icon?: string;
|
|
386
|
+
} | null>;
|
|
387
|
+
createModule(name: string, definition: {
|
|
388
|
+
name: string;
|
|
389
|
+
title?: string;
|
|
390
|
+
icon?: string;
|
|
391
|
+
}): Promise<void>;
|
|
392
|
+
updateModule(name: string, definition: {
|
|
393
|
+
name: string;
|
|
394
|
+
title?: string;
|
|
395
|
+
icon?: string;
|
|
396
|
+
}): Promise<void>;
|
|
397
|
+
deleteModule(name: string): Promise<void>;
|
|
398
|
+
listAggregates(filter?: {
|
|
399
|
+
module?: string;
|
|
400
|
+
}): Promise<Array<{
|
|
401
|
+
id: string;
|
|
402
|
+
definition: Record<string, unknown>;
|
|
403
|
+
}>>;
|
|
404
|
+
getAggregate(id: string): Promise<Record<string, unknown> | null>;
|
|
405
|
+
createAggregate(id: string, definition: Record<string, unknown>): Promise<void>;
|
|
406
|
+
updateAggregate(id: string, definition: Record<string, unknown>): Promise<void>;
|
|
407
|
+
deleteAggregate(id: string): Promise<void>;
|
|
408
|
+
listMenus(): Promise<Array<{
|
|
409
|
+
id: string;
|
|
410
|
+
definition: AXPMenuDefinitionRecord;
|
|
411
|
+
}>>;
|
|
412
|
+
getMenu(id: string): Promise<AXPMenuDefinitionRecord | null>;
|
|
413
|
+
createMenu(id: string, definition: AXPMenuDefinitionRecord): Promise<void>;
|
|
414
|
+
updateMenu(id: string, definition: AXPMenuDefinitionRecord): Promise<void>;
|
|
415
|
+
deleteMenu(id: string): Promise<void>;
|
|
416
|
+
listPermissionGroups(): Promise<Array<{
|
|
417
|
+
id: string;
|
|
418
|
+
definition: AXPPermissionGroupDefinitionRecord;
|
|
419
|
+
}>>;
|
|
420
|
+
getPermissionGroup(id: string): Promise<AXPPermissionGroupDefinitionRecord | null>;
|
|
421
|
+
createPermissionGroup(id: string, definition: AXPPermissionGroupDefinitionRecord): Promise<void>;
|
|
422
|
+
updatePermissionGroup(id: string, definition: AXPPermissionGroupDefinitionRecord): Promise<void>;
|
|
423
|
+
deletePermissionGroup(id: string): Promise<void>;
|
|
424
|
+
listCommands(): Promise<Array<{
|
|
425
|
+
id: string;
|
|
426
|
+
definition: AXPCommandRegistryRecord;
|
|
427
|
+
}>>;
|
|
428
|
+
getCommand(id: string): Promise<AXPCommandRegistryRecord | null>;
|
|
429
|
+
createCommand(id: string, definition: AXPCommandRegistryRecord): Promise<void>;
|
|
430
|
+
updateCommand(id: string, definition: AXPCommandRegistryRecord): Promise<void>;
|
|
431
|
+
deleteCommand(id: string): Promise<void>;
|
|
432
|
+
listQueries(): Promise<Array<{
|
|
433
|
+
id: string;
|
|
434
|
+
definition: AXPQueryRegistryRecord;
|
|
435
|
+
}>>;
|
|
436
|
+
getQuery(id: string): Promise<AXPQueryRegistryRecord | null>;
|
|
437
|
+
createQuery(id: string, definition: AXPQueryRegistryRecord): Promise<void>;
|
|
438
|
+
updateQuery(id: string, definition: AXPQueryRegistryRecord): Promise<void>;
|
|
439
|
+
deleteQuery(id: string): Promise<void>;
|
|
440
|
+
}
|
|
441
|
+
declare const AXP_ENTITY_DEFINITION_CRUD_SERVICE: InjectionToken<AXPEntityDefinitionCrudService | null>;
|
|
442
|
+
|
|
443
|
+
declare class AXPDomainModule {
|
|
444
|
+
private _commandSetup;
|
|
225
445
|
/**
|
|
226
|
-
*
|
|
446
|
+
* Optional bootstrap hooks for registered property definitions (see {@link AXP_PROPERTY_SETUP} and related tokens).
|
|
227
447
|
*/
|
|
228
|
-
|
|
448
|
+
private _propertySetup;
|
|
449
|
+
private _propertyMiddlewareSetup;
|
|
450
|
+
private _propertyLoaderSetup;
|
|
229
451
|
/**
|
|
230
|
-
*
|
|
452
|
+
* Injection token for domain loader setup initialization.
|
|
453
|
+
*
|
|
454
|
+
* Used during application bootstrap to register domain loaders
|
|
455
|
+
* that can provide domain definitions on-demand when they're not found in
|
|
456
|
+
* the registry.
|
|
231
457
|
*/
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
458
|
+
private _domainLoaderSetup;
|
|
459
|
+
private _domainMiddlewareSetup;
|
|
460
|
+
private _domainSetup;
|
|
461
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPDomainModule, never>;
|
|
462
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXPDomainModule, never, [typeof i1.AXPRuntimeModule], never>;
|
|
463
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXPDomainModule>;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
declare enum AXPEntityType {
|
|
467
|
+
Entity = 0,
|
|
468
|
+
AggregateRoot = 1,
|
|
469
|
+
ValueObject = 2
|
|
470
|
+
}
|
|
471
|
+
interface AXPEntityDefinition {
|
|
472
|
+
name: string;
|
|
473
|
+
title: string;
|
|
474
|
+
fields: AXPEntityPropertyDefinition[];
|
|
475
|
+
type: AXPEntityType;
|
|
476
|
+
/** Entity plugins (e.g. common.history, common.lock). Name + optional options only. */
|
|
477
|
+
plugins?: AXPPluginDefinitionValue[];
|
|
478
|
+
/** Property groups for layout */
|
|
479
|
+
groups?: Array<{
|
|
480
|
+
id: string;
|
|
481
|
+
title: string;
|
|
482
|
+
}>;
|
|
483
|
+
/** List/table columns */
|
|
484
|
+
columns?: Array<{
|
|
485
|
+
name: string;
|
|
486
|
+
}>;
|
|
487
|
+
/** Display formats */
|
|
488
|
+
formats?: {
|
|
489
|
+
individual?: string;
|
|
490
|
+
plural?: string;
|
|
238
491
|
};
|
|
239
|
-
/**
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
492
|
+
/** Layout interfaces (master create/update/single/list). Pass-through for converter. */
|
|
493
|
+
interfaces?: Record<string, unknown>;
|
|
494
|
+
/** Module name (e.g. ContentManagement). Derived from path or explicit. */
|
|
495
|
+
module?: string;
|
|
496
|
+
/** Entity icon. */
|
|
497
|
+
icon?: string;
|
|
498
|
+
}
|
|
499
|
+
interface AXPEntityPropertyFeatures {
|
|
500
|
+
nullable: boolean;
|
|
501
|
+
readOnly: boolean;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Entity field: flattened embedded property definition (interface, validations, features) plus entity-only metadata.
|
|
505
|
+
* Top-level name/title are the entity property name/title.
|
|
506
|
+
*/
|
|
507
|
+
interface AXPEntityPropertyDefinition extends AXPPropertyDefinition {
|
|
508
|
+
actions?: AXPDomainAction[];
|
|
509
|
+
/** Nullable/readOnly for entity binding; distinct from property.features (searchable, filterable, etc.). */
|
|
510
|
+
fieldFeatures?: AXPEntityPropertyFeatures;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
type AXPAggregateEntityList = {
|
|
514
|
+
[key: string]: () => Promise<AXPEntityDefinition>;
|
|
515
|
+
};
|
|
516
|
+
/**
|
|
517
|
+
* Aggregate definition. Relations are stored in a separate collection (like MySQL join table).
|
|
518
|
+
* Join when needed via relations collection.
|
|
519
|
+
*/
|
|
520
|
+
interface AXPAggregateDefinition {
|
|
521
|
+
name: string;
|
|
522
|
+
title: string;
|
|
523
|
+
entities: AXPEntityDefinition[] | AXPAggregateEntityList | Record<string, string>;
|
|
524
|
+
validations: AXPValidationRules;
|
|
525
|
+
actions: AXPDomainAction[];
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
interface AXPModuleDefinition {
|
|
529
|
+
name: string;
|
|
530
|
+
title: string;
|
|
531
|
+
aggregates: AXPAggregateDefinition[];
|
|
255
532
|
}
|
|
256
533
|
|
|
257
534
|
/**
|
|
258
535
|
* Simple runtime model for aggregate definitions with parent references and navigation helpers.
|
|
259
|
-
*
|
|
260
|
-
* This model is a pure data structure that provides:
|
|
261
|
-
* - Access to aggregate properties and metadata
|
|
262
|
-
* - Navigation helpers for finding relations and entity references
|
|
263
|
-
* - Parent module reference for hierarchy navigation
|
|
264
|
-
*
|
|
265
|
-
* All loading and resolution logic has been moved to AXPDomainRegistry.
|
|
536
|
+
* Relations are stored in a separate collection; join when needed.
|
|
266
537
|
*/
|
|
267
538
|
declare class AXPAggregateModel {
|
|
268
539
|
readonly name: string;
|
|
269
540
|
readonly title: string;
|
|
270
|
-
readonly relations: AXPRelationModel[];
|
|
271
541
|
readonly validations: AXPValidationRules;
|
|
272
542
|
readonly actions: AXPDomainAction[];
|
|
273
543
|
readonly parent: any;
|
|
@@ -305,21 +575,6 @@ declare class AXPAggregateModel {
|
|
|
305
575
|
* @returns True if entity exists
|
|
306
576
|
*/
|
|
307
577
|
hasEntity(entityName: string): boolean;
|
|
308
|
-
/**
|
|
309
|
-
* Find relation by source and target entities
|
|
310
|
-
*
|
|
311
|
-
* @param sourceEntity Source entity name
|
|
312
|
-
* @param targetEntity Target entity name
|
|
313
|
-
* @returns Relation model or undefined if not found
|
|
314
|
-
*/
|
|
315
|
-
findRelation(sourceEntity: string, targetEntity: string): AXPRelationModel | undefined;
|
|
316
|
-
/**
|
|
317
|
-
* Get all relations for a specific entity
|
|
318
|
-
*
|
|
319
|
-
* @param entityName Entity name
|
|
320
|
-
* @returns Array of relations involving the entity
|
|
321
|
-
*/
|
|
322
|
-
getEntityRelations(entityName: string): AXPRelationModel[];
|
|
323
578
|
/**
|
|
324
579
|
* Get parent module
|
|
325
580
|
*
|
|
@@ -339,7 +594,6 @@ declare class AXPAggregateModel {
|
|
|
339
594
|
*/
|
|
340
595
|
getStatistics(): {
|
|
341
596
|
entityCount: number;
|
|
342
|
-
relationCount: number;
|
|
343
597
|
actionCount: number;
|
|
344
598
|
validationCount: number;
|
|
345
599
|
};
|
|
@@ -430,9 +684,8 @@ declare class AXPModuleModel {
|
|
|
430
684
|
*/
|
|
431
685
|
getAllEntityReferences(): Record<string, string>;
|
|
432
686
|
/**
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
* @returns Array of all relation models
|
|
687
|
+
* Relations are stored in a separate collection. Use relation queries for join when needed.
|
|
688
|
+
* @deprecated Relations are no longer nested in aggregates.
|
|
436
689
|
*/
|
|
437
690
|
getAllRelations(): Array<{
|
|
438
691
|
aggregate: AXPAggregateModel;
|
|
@@ -452,7 +705,6 @@ declare class AXPModuleModel {
|
|
|
452
705
|
getStatistics(): {
|
|
453
706
|
aggregateCount: number;
|
|
454
707
|
entityCount: number;
|
|
455
|
-
relationCount: number;
|
|
456
708
|
actionCount: number;
|
|
457
709
|
validationCount: number;
|
|
458
710
|
};
|
|
@@ -465,54 +717,27 @@ declare class AXPModuleModel {
|
|
|
465
717
|
}
|
|
466
718
|
|
|
467
719
|
/**
|
|
468
|
-
* Runtime model for
|
|
720
|
+
* Runtime model for a {@link AXPPropertyDefinition} with helper methods.
|
|
469
721
|
*/
|
|
470
|
-
declare class
|
|
722
|
+
declare class AXPPropertyModel {
|
|
471
723
|
readonly name: string;
|
|
472
|
-
readonly
|
|
473
|
-
readonly interface:
|
|
724
|
+
readonly title: string;
|
|
725
|
+
readonly interface: AXPInterfaceDefinitionValue;
|
|
474
726
|
readonly validations: AXPValidationRules;
|
|
475
|
-
readonly features:
|
|
727
|
+
readonly features: AXPPropertyFeatures;
|
|
476
728
|
readonly metadata?: AXPMetaData;
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
* Check if schema is for number data
|
|
484
|
-
*/
|
|
485
|
-
isNumber(): boolean;
|
|
486
|
-
/**
|
|
487
|
-
* Check if schema is for boolean data
|
|
488
|
-
*/
|
|
489
|
-
isBoolean(): boolean;
|
|
490
|
-
/**
|
|
491
|
-
* Check if schema is for date data
|
|
492
|
-
*/
|
|
493
|
-
isDate(): boolean;
|
|
494
|
-
/**
|
|
495
|
-
* Check if schema is for object data
|
|
496
|
-
*/
|
|
497
|
-
isObject(): boolean;
|
|
498
|
-
/**
|
|
499
|
-
* Check if schema is for array data
|
|
500
|
-
*/
|
|
501
|
-
isArray(): boolean;
|
|
502
|
-
/**
|
|
503
|
-
* Check if schema is for blob data
|
|
504
|
-
*/
|
|
505
|
-
isBlob(): boolean;
|
|
506
|
-
/**
|
|
507
|
-
* Get widget type
|
|
508
|
-
*/
|
|
509
|
-
getWidgetType(): string;
|
|
729
|
+
readonly description?: string;
|
|
730
|
+
readonly icon?: string;
|
|
731
|
+
readonly defaultValue?: unknown;
|
|
732
|
+
readonly disabled?: boolean;
|
|
733
|
+
readonly dataType: AXPDataType;
|
|
734
|
+
constructor(definition: AXPPropertyDefinition);
|
|
510
735
|
/**
|
|
511
736
|
* Get widget options
|
|
512
737
|
*/
|
|
513
738
|
getWidgetOptions(): AXPOptionsData | undefined;
|
|
514
739
|
/**
|
|
515
|
-
* Check if
|
|
740
|
+
* Check if the property is disabled
|
|
516
741
|
*/
|
|
517
742
|
isDisabled(): boolean;
|
|
518
743
|
/**
|
|
@@ -540,11 +765,11 @@ declare class AXPSchemaModel {
|
|
|
540
765
|
*/
|
|
541
766
|
isAuditable(): boolean;
|
|
542
767
|
/**
|
|
543
|
-
* Validate the
|
|
768
|
+
* Validate the property definition structure
|
|
544
769
|
*/
|
|
545
770
|
validate(): Promise<string[]>;
|
|
546
771
|
/**
|
|
547
|
-
* Get
|
|
772
|
+
* Get property capabilities
|
|
548
773
|
*/
|
|
549
774
|
getCapabilities(): {
|
|
550
775
|
searchable: boolean;
|
|
@@ -556,10 +781,9 @@ declare class AXPSchemaModel {
|
|
|
556
781
|
disabled: boolean;
|
|
557
782
|
};
|
|
558
783
|
/**
|
|
559
|
-
* Get
|
|
784
|
+
* Get property summary
|
|
560
785
|
*/
|
|
561
786
|
getSummary(): {
|
|
562
|
-
dataType: AXPSchemaDataType;
|
|
563
787
|
widget: string;
|
|
564
788
|
hasOptions: boolean;
|
|
565
789
|
hasMetadata: boolean;
|
|
@@ -569,30 +793,26 @@ declare class AXPSchemaModel {
|
|
|
569
793
|
/**
|
|
570
794
|
* Convert back to interface definition
|
|
571
795
|
*/
|
|
572
|
-
toDefinition():
|
|
796
|
+
toDefinition(): AXPPropertyDefinition;
|
|
573
797
|
}
|
|
574
798
|
|
|
575
799
|
/**
|
|
576
|
-
*
|
|
800
|
+
* Loads {@link AXPPropertyDefinition} instances on demand when not registered in {@link AXPPropertyRegistry}.
|
|
577
801
|
*/
|
|
578
|
-
interface
|
|
802
|
+
interface AXPPropertyLoader {
|
|
579
803
|
/**
|
|
580
804
|
* Optional priority for loader ordering. Higher numbers = higher priority.
|
|
581
805
|
* If not specified, uses registration order.
|
|
582
806
|
*/
|
|
583
807
|
readonly priority?: number;
|
|
584
808
|
/**
|
|
585
|
-
* Determines if this loader can handle the given
|
|
586
|
-
* @param schemaName The name of the schema to load
|
|
587
|
-
* @returns true if this loader can load the schema
|
|
809
|
+
* Determines if this loader can handle the given registered property name.
|
|
588
810
|
*/
|
|
589
|
-
canLoad(
|
|
811
|
+
canLoad(propertyName: string): boolean;
|
|
590
812
|
/**
|
|
591
|
-
* Loads the
|
|
592
|
-
* @param schemaName The name of the schema to load
|
|
593
|
-
* @returns Promise that resolves to the schema definition or null if not found
|
|
813
|
+
* Loads the property definition for the given name, or null if not found.
|
|
594
814
|
*/
|
|
595
|
-
load(
|
|
815
|
+
load(propertyName: string): Promise<AXPPropertyDefinition | null>;
|
|
596
816
|
}
|
|
597
817
|
|
|
598
818
|
/**
|
|
@@ -620,13 +840,13 @@ interface AXPSchemaLoader {
|
|
|
620
840
|
* }
|
|
621
841
|
* ```
|
|
622
842
|
*/
|
|
623
|
-
declare class
|
|
624
|
-
private
|
|
625
|
-
constructor(
|
|
843
|
+
declare class AXPPropertyMiddlewareContext {
|
|
844
|
+
private _definition;
|
|
845
|
+
constructor(definition: AXPPropertyDefinition);
|
|
626
846
|
/**
|
|
627
847
|
* Get the current schema definition (readonly access)
|
|
628
848
|
*/
|
|
629
|
-
get
|
|
849
|
+
get definition(): Readonly<AXPPropertyDefinition>;
|
|
630
850
|
/**
|
|
631
851
|
* Get the schema name for conditional logic
|
|
632
852
|
*/
|
|
@@ -635,7 +855,7 @@ declare class AXPSchemaMiddlewareContext {
|
|
|
635
855
|
* Set a default value for the widget
|
|
636
856
|
* @param defaultValue The default value to set
|
|
637
857
|
*/
|
|
638
|
-
withDefaultValue(defaultValue:
|
|
858
|
+
withDefaultValue(defaultValue: unknown): this;
|
|
639
859
|
/**
|
|
640
860
|
* Remove the default value from the widget
|
|
641
861
|
*/
|
|
@@ -668,7 +888,7 @@ declare class AXPSchemaMiddlewareContext {
|
|
|
668
888
|
* Set or merge widget options
|
|
669
889
|
* @param options Object containing widget-specific options to merge
|
|
670
890
|
*/
|
|
671
|
-
withWidgetOptions(options:
|
|
891
|
+
withWidgetOptions(options: Record<string, unknown>): this;
|
|
672
892
|
/**
|
|
673
893
|
* Remove a specific widget option by key
|
|
674
894
|
* @param optionKey The key of the option to remove
|
|
@@ -711,11 +931,6 @@ declare class AXPSchemaMiddlewareContext {
|
|
|
711
931
|
* @param key The metadata key to remove
|
|
712
932
|
*/
|
|
713
933
|
removeMetadata(key: string): this;
|
|
714
|
-
/**
|
|
715
|
-
* Set the data type for this schema
|
|
716
|
-
* @param dataType The new data type (string, number, boolean, etc.)
|
|
717
|
-
*/
|
|
718
|
-
withDataType(dataType: AXPSchemaDataType): this;
|
|
719
934
|
/**
|
|
720
935
|
* Set the disabled state of the widget
|
|
721
936
|
* @param isDisabled Whether the widget should be disabled
|
|
@@ -734,15 +949,16 @@ declare class AXPSchemaMiddlewareContext {
|
|
|
734
949
|
}
|
|
735
950
|
|
|
736
951
|
/**
|
|
737
|
-
* Middleware
|
|
738
|
-
*
|
|
952
|
+
* Middleware that can transform a property definition during resolution.
|
|
953
|
+
*
|
|
954
|
+
* @param context - Mutable {@link AXPPropertyMiddlewareContext} wrapping a cloned {@link AXPPropertyDefinition}.
|
|
739
955
|
*/
|
|
740
|
-
type
|
|
956
|
+
type AXPPropertyMiddleware = (context: AXPPropertyMiddlewareContext) => void | Promise<void>;
|
|
741
957
|
|
|
742
958
|
/**
|
|
743
959
|
* Options for registering a schema with additional metadata and middleware
|
|
744
960
|
*/
|
|
745
|
-
interface
|
|
961
|
+
interface AXPPropertyRegistrationOptions {
|
|
746
962
|
/** Optional description for documentation purposes */
|
|
747
963
|
description?: string;
|
|
748
964
|
/** Tags for categorizing and finding schemas */
|
|
@@ -750,18 +966,18 @@ interface AXPSchemaRegistrationOptions {
|
|
|
750
966
|
/** Version information for schema evolution */
|
|
751
967
|
version?: string;
|
|
752
968
|
/** Schema-specific middleware that applies only to this schema */
|
|
753
|
-
middleware?:
|
|
969
|
+
middleware?: AXPPropertyMiddleware[];
|
|
754
970
|
}
|
|
755
971
|
/**
|
|
756
972
|
* Internal representation of a registered schema with metadata
|
|
757
973
|
*/
|
|
758
|
-
interface
|
|
974
|
+
interface AXPRegisteredProperty {
|
|
759
975
|
/** Unique identifier for the schema */
|
|
760
976
|
name: string;
|
|
761
977
|
/** The actual schema definition */
|
|
762
|
-
definition:
|
|
978
|
+
definition: AXPPropertyDefinition;
|
|
763
979
|
/** Registration options and metadata */
|
|
764
|
-
options:
|
|
980
|
+
options: AXPPropertyRegistrationOptions;
|
|
765
981
|
/** Timestamp when the schema was registered */
|
|
766
982
|
registeredAt: Date;
|
|
767
983
|
}
|
|
@@ -774,8 +990,8 @@ interface AXPRegisteredSchema {
|
|
|
774
990
|
* - On-demand schema loading
|
|
775
991
|
* - Caching and performance optimization
|
|
776
992
|
*/
|
|
777
|
-
declare class
|
|
778
|
-
private readonly
|
|
993
|
+
declare class AXPPropertyRegistry {
|
|
994
|
+
private readonly _registrations;
|
|
779
995
|
private readonly _globalMiddleware;
|
|
780
996
|
private readonly _modelCache;
|
|
781
997
|
private _loaders;
|
|
@@ -783,14 +999,14 @@ declare class AXPSchemaRegistry {
|
|
|
783
999
|
/**
|
|
784
1000
|
* Register a schema definition with optional metadata and middleware
|
|
785
1001
|
*/
|
|
786
|
-
register(definition:
|
|
1002
|
+
register(definition: AXPPropertyDefinition, options?: AXPPropertyRegistrationOptions): void;
|
|
787
1003
|
/**
|
|
788
1004
|
* Register multiple schemas at once for batch operations
|
|
789
1005
|
*/
|
|
790
|
-
registerBatch(
|
|
1006
|
+
registerBatch(entries: {
|
|
791
1007
|
name: string;
|
|
792
|
-
definition:
|
|
793
|
-
options?:
|
|
1008
|
+
definition: AXPPropertyDefinition;
|
|
1009
|
+
options?: AXPPropertyRegistrationOptions;
|
|
794
1010
|
}[]): void;
|
|
795
1011
|
/**
|
|
796
1012
|
* Remove a schema from the registry
|
|
@@ -804,20 +1020,20 @@ declare class AXPSchemaRegistry {
|
|
|
804
1020
|
* Resolve a schema by name with full middleware processing and caching.
|
|
805
1021
|
* Supports on-demand loading if schema is not registered.
|
|
806
1022
|
*/
|
|
807
|
-
resolve(name: string): Promise<
|
|
1023
|
+
resolve(name: string): Promise<AXPPropertyModel>;
|
|
808
1024
|
/**
|
|
809
1025
|
* Synchronous resolution without middleware processing.
|
|
810
1026
|
* Use only when middleware is not needed for performance.
|
|
811
1027
|
*/
|
|
812
|
-
resolveSync(name: string):
|
|
1028
|
+
resolveSync(name: string): AXPPropertyModel;
|
|
813
1029
|
/**
|
|
814
1030
|
* Add global middleware that applies to all schema resolutions
|
|
815
1031
|
*/
|
|
816
|
-
addGlobalMiddleware(middleware:
|
|
1032
|
+
addGlobalMiddleware(middleware: AXPPropertyMiddleware): void;
|
|
817
1033
|
/**
|
|
818
1034
|
* Remove specific global middleware
|
|
819
1035
|
*/
|
|
820
|
-
removeGlobalMiddleware(middleware:
|
|
1036
|
+
removeGlobalMiddleware(middleware: AXPPropertyMiddleware): boolean;
|
|
821
1037
|
/**
|
|
822
1038
|
* Clear all global middleware
|
|
823
1039
|
*/
|
|
@@ -825,7 +1041,7 @@ declare class AXPSchemaRegistry {
|
|
|
825
1041
|
/**
|
|
826
1042
|
* Add a schema loader for on-demand loading
|
|
827
1043
|
*/
|
|
828
|
-
addLoader(loader: Type<
|
|
1044
|
+
addLoader(loader: Type<AXPPropertyLoader>): void;
|
|
829
1045
|
/**
|
|
830
1046
|
* Get all registered schema names
|
|
831
1047
|
*/
|
|
@@ -833,29 +1049,29 @@ declare class AXPSchemaRegistry {
|
|
|
833
1049
|
/**
|
|
834
1050
|
* Get detailed registration information for a schema
|
|
835
1051
|
*/
|
|
836
|
-
|
|
1052
|
+
getRegisteredProperty(name: string): AXPRegisteredProperty | undefined;
|
|
837
1053
|
/**
|
|
838
|
-
* Get all registered
|
|
1054
|
+
* Get all registered properties with their metadata
|
|
839
1055
|
*/
|
|
840
|
-
|
|
1056
|
+
getAllRegisteredProperties(): AXPRegisteredProperty[];
|
|
841
1057
|
/**
|
|
842
|
-
* Find
|
|
1058
|
+
* Find registered properties by tag for categorization
|
|
843
1059
|
*/
|
|
844
|
-
findByTag(tag: string):
|
|
1060
|
+
findByTag(tag: string): AXPRegisteredProperty[];
|
|
845
1061
|
/**
|
|
846
|
-
* Find
|
|
1062
|
+
* Find registered properties by widget type for widget-specific operations
|
|
847
1063
|
*/
|
|
848
|
-
findByWidget(widgetType: string):
|
|
1064
|
+
findByWidget(widgetType: string): AXPRegisteredProperty[];
|
|
849
1065
|
/**
|
|
850
1066
|
* Get comprehensive registry statistics
|
|
851
1067
|
*/
|
|
852
1068
|
getStatistics(): {
|
|
853
|
-
|
|
1069
|
+
propertyCount: number;
|
|
854
1070
|
globalMiddlewareCount: number;
|
|
855
|
-
|
|
1071
|
+
propertiesByWidget: {
|
|
856
1072
|
[widget: string]: number;
|
|
857
1073
|
};
|
|
858
|
-
|
|
1074
|
+
propertiesByTag: {
|
|
859
1075
|
[tag: string]: number;
|
|
860
1076
|
};
|
|
861
1077
|
};
|
|
@@ -883,124 +1099,123 @@ declare class AXPSchemaRegistry {
|
|
|
883
1099
|
* Create a deep clone of a schema definition to prevent mutations
|
|
884
1100
|
*/
|
|
885
1101
|
private cloneDefinition;
|
|
886
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
887
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
1102
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPPropertyRegistry, never>;
|
|
1103
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPPropertyRegistry>;
|
|
888
1104
|
}
|
|
889
1105
|
|
|
890
1106
|
/**
|
|
891
|
-
* High-level facade
|
|
1107
|
+
* High-level facade for registered property definitions ({@link AXPPropertyDefinition}).
|
|
892
1108
|
*
|
|
893
|
-
*
|
|
894
|
-
* business logic and convenience methods for common operations.
|
|
1109
|
+
* Wraps {@link AXPPropertyRegistry} with convenience methods for resolution and discovery.
|
|
895
1110
|
*/
|
|
896
|
-
declare class
|
|
1111
|
+
declare class AXPPropertyService {
|
|
897
1112
|
private readonly registry;
|
|
898
1113
|
/**
|
|
899
|
-
* Register a
|
|
1114
|
+
* Register a property definition with optional configuration
|
|
900
1115
|
*/
|
|
901
|
-
register(definition:
|
|
1116
|
+
register(definition: AXPPropertyDefinition, options?: AXPPropertyRegistrationOptions): void;
|
|
902
1117
|
/**
|
|
903
|
-
* Register multiple
|
|
1118
|
+
* Register multiple property definitions at once
|
|
904
1119
|
*/
|
|
905
|
-
registerBatch(
|
|
1120
|
+
registerBatch(entries: {
|
|
906
1121
|
name: string;
|
|
907
|
-
definition:
|
|
908
|
-
options?:
|
|
1122
|
+
definition: AXPPropertyDefinition;
|
|
1123
|
+
options?: AXPPropertyRegistrationOptions;
|
|
909
1124
|
}[]): void;
|
|
910
1125
|
/**
|
|
911
|
-
* Remove a
|
|
1126
|
+
* Remove a property definition from the registry
|
|
912
1127
|
*/
|
|
913
1128
|
unregister(name: string): boolean;
|
|
914
1129
|
/**
|
|
915
|
-
* Check if a
|
|
1130
|
+
* Check if a property definition is registered by name
|
|
916
1131
|
*/
|
|
917
1132
|
isRegistered(name: string): boolean;
|
|
918
1133
|
/**
|
|
919
|
-
* Get all registered
|
|
1134
|
+
* Get all registered property names
|
|
920
1135
|
*/
|
|
921
1136
|
getRegisteredNames(): string[];
|
|
922
1137
|
/**
|
|
923
|
-
* Clear all
|
|
1138
|
+
* Clear all registrations and reset the registry
|
|
924
1139
|
*/
|
|
925
1140
|
clear(): void;
|
|
926
1141
|
/**
|
|
927
|
-
* Resolve a
|
|
1142
|
+
* Resolve a registered property by name with full middleware processing
|
|
928
1143
|
*/
|
|
929
|
-
resolve(name: string): Promise<
|
|
1144
|
+
resolve(name: string): Promise<AXPPropertyModel>;
|
|
930
1145
|
/**
|
|
931
|
-
* Resolve
|
|
1146
|
+
* Resolve synchronously without middleware (for performance)
|
|
932
1147
|
*/
|
|
933
|
-
resolveSync(name: string):
|
|
1148
|
+
resolveSync(name: string): AXPPropertyModel;
|
|
934
1149
|
/**
|
|
935
|
-
* Resolve multiple
|
|
1150
|
+
* Resolve multiple registered properties for form building and batch operations
|
|
936
1151
|
*/
|
|
937
1152
|
resolveMultiple(fieldConfigs: {
|
|
938
1153
|
name: string;
|
|
939
|
-
|
|
1154
|
+
propertyName: string;
|
|
940
1155
|
}[]): Promise<{
|
|
941
1156
|
name: string;
|
|
942
|
-
|
|
1157
|
+
property: AXPPropertyModel;
|
|
943
1158
|
}[]>;
|
|
944
1159
|
/**
|
|
945
|
-
* Add global middleware that applies to all
|
|
1160
|
+
* Add global middleware that applies to all property resolutions
|
|
946
1161
|
*/
|
|
947
|
-
addGlobalMiddleware(middleware:
|
|
1162
|
+
addGlobalMiddleware(middleware: AXPPropertyMiddleware): void;
|
|
948
1163
|
/**
|
|
949
1164
|
* Remove specific global middleware
|
|
950
1165
|
*/
|
|
951
|
-
removeGlobalMiddleware(middleware:
|
|
1166
|
+
removeGlobalMiddleware(middleware: AXPPropertyMiddleware): boolean;
|
|
952
1167
|
/**
|
|
953
1168
|
* Clear all global middleware
|
|
954
1169
|
*/
|
|
955
1170
|
clearGlobalMiddleware(): void;
|
|
956
1171
|
/**
|
|
957
|
-
* Get detailed information about a registered
|
|
1172
|
+
* Get detailed information about a registered property definition
|
|
958
1173
|
*/
|
|
959
|
-
|
|
1174
|
+
getRegisteredProperty(name: string): AXPRegisteredProperty | undefined;
|
|
960
1175
|
/**
|
|
961
|
-
* Get all registered
|
|
1176
|
+
* Get all registered property definitions with their metadata
|
|
962
1177
|
*/
|
|
963
|
-
|
|
1178
|
+
getAllRegisteredProperties(): AXPRegisteredProperty[];
|
|
964
1179
|
/**
|
|
965
|
-
* Find
|
|
1180
|
+
* Find registered properties by tag for categorization and grouping
|
|
966
1181
|
*/
|
|
967
|
-
findByTag(tag: string):
|
|
1182
|
+
findByTag(tag: string): AXPRegisteredProperty[];
|
|
968
1183
|
/**
|
|
969
|
-
* Find
|
|
1184
|
+
* Find registered properties by widget type for widget-specific operations
|
|
970
1185
|
*/
|
|
971
|
-
findByWidget(widgetType: string):
|
|
1186
|
+
findByWidget(widgetType: string): AXPRegisteredProperty[];
|
|
972
1187
|
/**
|
|
973
1188
|
* Get comprehensive registry statistics and analytics
|
|
974
1189
|
*/
|
|
975
1190
|
getStatistics(): {
|
|
976
1191
|
mostUsedWidgets: string[];
|
|
977
1192
|
mostUsedTags: string[];
|
|
978
|
-
|
|
1193
|
+
propertyCount: number;
|
|
979
1194
|
globalMiddlewareCount: number;
|
|
980
|
-
|
|
1195
|
+
propertiesByWidget: {
|
|
981
1196
|
[widget: string]: number;
|
|
982
1197
|
};
|
|
983
|
-
|
|
1198
|
+
propertiesByTag: {
|
|
984
1199
|
[tag: string]: number;
|
|
985
1200
|
};
|
|
986
1201
|
};
|
|
987
1202
|
/**
|
|
988
|
-
* Validate that all referenced
|
|
1203
|
+
* Validate that all referenced property names exist in the registry
|
|
989
1204
|
*/
|
|
990
|
-
|
|
1205
|
+
validatePropertyReferences(propertyNames: string[]): {
|
|
991
1206
|
valid: boolean;
|
|
992
|
-
|
|
1207
|
+
missingPropertyNames: string[];
|
|
993
1208
|
};
|
|
994
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
995
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
1209
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPPropertyService, never>;
|
|
1210
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPPropertyService>;
|
|
996
1211
|
}
|
|
997
1212
|
|
|
998
1213
|
/**
|
|
999
1214
|
* Configuration for a schema loader with optional priority setting
|
|
1000
1215
|
*/
|
|
1001
|
-
interface
|
|
1216
|
+
interface AXPPropertyLoaderConfig {
|
|
1002
1217
|
/** The loader class to instantiate */
|
|
1003
|
-
loader: Type<
|
|
1218
|
+
loader: Type<AXPPropertyLoader>;
|
|
1004
1219
|
/** Optional priority for loader ordering (higher = higher priority) */
|
|
1005
1220
|
priority?: number;
|
|
1006
1221
|
}
|
|
@@ -1020,28 +1235,28 @@ interface AXPSchemaLoaderConfig {
|
|
|
1020
1235
|
* @example
|
|
1021
1236
|
* ```typescript
|
|
1022
1237
|
* // Simple loader registration
|
|
1023
|
-
*
|
|
1238
|
+
* providePropertyLoaders([
|
|
1024
1239
|
* HttpSchemaLoader,
|
|
1025
1240
|
* FileSystemSchemaLoader
|
|
1026
1241
|
* ])
|
|
1027
1242
|
*
|
|
1028
1243
|
* // With priority configuration
|
|
1029
|
-
*
|
|
1244
|
+
* providePropertyLoaders([
|
|
1030
1245
|
* { loader: HttpSchemaLoader, priority: 10 },
|
|
1031
1246
|
* { loader: FileSystemSchemaLoader, priority: 5 }
|
|
1032
1247
|
* ])
|
|
1033
1248
|
* ```
|
|
1034
1249
|
*/
|
|
1035
|
-
declare function
|
|
1250
|
+
declare function providePropertyLoaders(loaders: Array<Type<AXPPropertyLoader> | AXPPropertyLoaderConfig>): EnvironmentProviders;
|
|
1036
1251
|
|
|
1037
1252
|
/**
|
|
1038
1253
|
* Schema entry for registration containing definition and optional metadata
|
|
1039
1254
|
*/
|
|
1040
|
-
interface
|
|
1255
|
+
interface AXPPropertyEntry {
|
|
1041
1256
|
/** The schema definition to register */
|
|
1042
|
-
definition:
|
|
1257
|
+
definition: AXPPropertyDefinition;
|
|
1043
1258
|
/** Optional registration options and metadata */
|
|
1044
|
-
options?:
|
|
1259
|
+
options?: AXPPropertyRegistrationOptions;
|
|
1045
1260
|
}
|
|
1046
1261
|
/**
|
|
1047
1262
|
* Provide schema setups for registration during application bootstrap.
|
|
@@ -1054,7 +1269,7 @@ interface AXPSchemaEntry {
|
|
|
1054
1269
|
*
|
|
1055
1270
|
* @example
|
|
1056
1271
|
* ```typescript
|
|
1057
|
-
*
|
|
1272
|
+
* providePropertySetups([
|
|
1058
1273
|
* {
|
|
1059
1274
|
* definition: emailSchema,
|
|
1060
1275
|
* options: {
|
|
@@ -1069,7 +1284,7 @@ interface AXPSchemaEntry {
|
|
|
1069
1284
|
* ])
|
|
1070
1285
|
* ```
|
|
1071
1286
|
*/
|
|
1072
|
-
declare function
|
|
1287
|
+
declare function providePropertySetups(entries: AXPPropertyEntry[]): EnvironmentProviders;
|
|
1073
1288
|
/**
|
|
1074
1289
|
* Convenience function to provide a single schema setup.
|
|
1075
1290
|
*
|
|
@@ -1082,13 +1297,13 @@ declare function provideSchemaSetups(schemas: AXPSchemaEntry[]): EnvironmentProv
|
|
|
1082
1297
|
*
|
|
1083
1298
|
* @example
|
|
1084
1299
|
* ```typescript
|
|
1085
|
-
*
|
|
1300
|
+
* provideProperty(emailSchema, {
|
|
1086
1301
|
* tags: ['user', 'contact'],
|
|
1087
1302
|
* description: 'User email field'
|
|
1088
1303
|
* })
|
|
1089
1304
|
* ```
|
|
1090
1305
|
*/
|
|
1091
|
-
declare function
|
|
1306
|
+
declare function provideProperty(definition: AXPPropertyDefinition, options?: AXPPropertyRegistrationOptions): EnvironmentProviders;
|
|
1092
1307
|
/**
|
|
1093
1308
|
* Provide schema setups from a factory function for dynamic registration.
|
|
1094
1309
|
*
|
|
@@ -1100,7 +1315,7 @@ declare function provideSchema(definition: AXPSchemaDefinition, options?: AXPSch
|
|
|
1100
1315
|
*
|
|
1101
1316
|
* @example
|
|
1102
1317
|
* ```typescript
|
|
1103
|
-
*
|
|
1318
|
+
* providePropertiesFromFactory(async () => {
|
|
1104
1319
|
* const config = await loadConfiguration();
|
|
1105
1320
|
* return config.schemas.map(schema => ({
|
|
1106
1321
|
* definition: schema,
|
|
@@ -1109,14 +1324,14 @@ declare function provideSchema(definition: AXPSchemaDefinition, options?: AXPSch
|
|
|
1109
1324
|
* })
|
|
1110
1325
|
* ```
|
|
1111
1326
|
*/
|
|
1112
|
-
declare function
|
|
1327
|
+
declare function providePropertiesFromFactory(factory: () => AXPPropertyEntry[] | Promise<AXPPropertyEntry[]>): EnvironmentProviders;
|
|
1113
1328
|
|
|
1114
1329
|
/**
|
|
1115
1330
|
* Middleware entry for registration - can be either a simple function or targeted middleware
|
|
1116
1331
|
*/
|
|
1117
|
-
type
|
|
1332
|
+
type AXPPropertyMiddlewareEntry = AXPPropertyMiddleware | {
|
|
1118
1333
|
target: string | RegExp;
|
|
1119
|
-
middleware:
|
|
1334
|
+
middleware: AXPPropertyMiddleware;
|
|
1120
1335
|
};
|
|
1121
1336
|
/**
|
|
1122
1337
|
* Provide schema middleware for registration in the application.
|
|
@@ -1130,16 +1345,16 @@ type AXPSchemaMiddlewareEntry = AXPSchemaMiddleware | {
|
|
|
1130
1345
|
* @example
|
|
1131
1346
|
* ```typescript
|
|
1132
1347
|
* // Global middleware
|
|
1133
|
-
*
|
|
1348
|
+
* providePropertyMiddleware([
|
|
1134
1349
|
* (context) => {
|
|
1135
|
-
* if (context.
|
|
1350
|
+
* if (context.definition.dataType === 'string') {
|
|
1136
1351
|
* context.searchable(true);
|
|
1137
1352
|
* }
|
|
1138
1353
|
* }
|
|
1139
1354
|
* ])
|
|
1140
1355
|
*
|
|
1141
1356
|
* // Targeted middleware
|
|
1142
|
-
*
|
|
1357
|
+
* providePropertyMiddleware([
|
|
1143
1358
|
* {
|
|
1144
1359
|
* target: /^user_/,
|
|
1145
1360
|
* middleware: (context) => context.withMetadata({ category: 'user' })
|
|
@@ -1147,44 +1362,32 @@ type AXPSchemaMiddlewareEntry = AXPSchemaMiddleware | {
|
|
|
1147
1362
|
* ])
|
|
1148
1363
|
* ```
|
|
1149
1364
|
*/
|
|
1150
|
-
declare function
|
|
1365
|
+
declare function providePropertyMiddleware(middleware: AXPPropertyMiddlewareEntry[]): EnvironmentProviders;
|
|
1151
1366
|
|
|
1152
1367
|
/**
|
|
1153
|
-
*
|
|
1154
|
-
*
|
|
1155
|
-
* Used for targeted middleware that applies only to schemas matching
|
|
1156
|
-
* specific patterns (name or regex). This enables fine-grained control
|
|
1157
|
-
* over which schemas receive which middleware.
|
|
1368
|
+
* Targeted middleware extension (name or regex) for property resolution.
|
|
1158
1369
|
*/
|
|
1159
|
-
declare const
|
|
1370
|
+
declare const AXP_PROPERTY_EXTENSION: InjectionToken<{
|
|
1160
1371
|
target: string | RegExp;
|
|
1161
|
-
middleware:
|
|
1372
|
+
middleware: AXPPropertyMiddleware;
|
|
1162
1373
|
}>;
|
|
1163
1374
|
/**
|
|
1164
|
-
*
|
|
1165
|
-
*
|
|
1166
|
-
* Used during application bootstrap to register schemas that are
|
|
1167
|
-
* known at build time. Multiple providers can use this token to
|
|
1168
|
-
* contribute schemas to the registry.
|
|
1375
|
+
* Bootstrap hook: register property definitions known at build time.
|
|
1169
1376
|
*/
|
|
1170
|
-
declare const
|
|
1377
|
+
declare const AXP_PROPERTY_SETUP: InjectionToken<void>;
|
|
1171
1378
|
/**
|
|
1172
|
-
*
|
|
1173
|
-
*
|
|
1174
|
-
* Used during application bootstrap to register global middleware
|
|
1175
|
-
* that applies to all schema resolutions. This enables centralized
|
|
1176
|
-
* schema processing logic.
|
|
1379
|
+
* Bootstrap hook: register global middleware for every property resolution.
|
|
1177
1380
|
*/
|
|
1178
|
-
declare const
|
|
1381
|
+
declare const AXP_PROPERTY_MIDDLEWARE_SETUP: InjectionToken<void>;
|
|
1179
1382
|
/**
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1182
|
-
* Used during application bootstrap to register schema loaders
|
|
1183
|
-
* that can provide schemas on-demand when they're not found in
|
|
1184
|
-
* the registry.
|
|
1383
|
+
* Bootstrap hook: register on-demand property loaders.
|
|
1185
1384
|
*/
|
|
1186
|
-
declare const
|
|
1385
|
+
declare const AXP_PROPERTY_LOADER_SETUP: InjectionToken<void>;
|
|
1187
1386
|
|
|
1387
|
+
/**
|
|
1388
|
+
* Strips entity-only fields so the payload matches {@link AXPPropertyDefinition}.
|
|
1389
|
+
*/
|
|
1390
|
+
declare function toPropertyDefinition(def: AXPEntityPropertyDefinition): AXPPropertyDefinition;
|
|
1188
1391
|
/**
|
|
1189
1392
|
* Runtime model for entity field definitions with parent references and helper methods
|
|
1190
1393
|
*/
|
|
@@ -1194,13 +1397,16 @@ declare class AXPEntityFieldModel {
|
|
|
1194
1397
|
readonly description?: string;
|
|
1195
1398
|
readonly validations?: AXPValidationRules;
|
|
1196
1399
|
readonly actions?: AXPDomainAction[];
|
|
1197
|
-
readonly
|
|
1198
|
-
readonly defaultValue?:
|
|
1199
|
-
|
|
1200
|
-
readonly
|
|
1400
|
+
readonly fieldFeatures?: AXPEntityPropertyFeatures;
|
|
1401
|
+
readonly defaultValue?: unknown;
|
|
1402
|
+
/** Resolved property definition model (interface, validations, features). */
|
|
1403
|
+
readonly property: AXPPropertyModel;
|
|
1404
|
+
/** Same as entity field name; aligns with registered property definition name when applicable. */
|
|
1405
|
+
readonly propertyName: string;
|
|
1201
1406
|
readonly parent: any;
|
|
1202
|
-
readonly
|
|
1203
|
-
|
|
1407
|
+
readonly propertyService: AXPPropertyService;
|
|
1408
|
+
private readonly entityPropertyDefinition;
|
|
1409
|
+
constructor(definition: AXPEntityPropertyDefinition, parent: any, propertyService: AXPPropertyService);
|
|
1204
1410
|
/**
|
|
1205
1411
|
* Check if field is nullable
|
|
1206
1412
|
*/
|
|
@@ -1238,17 +1444,17 @@ declare class AXPEntityFieldModel {
|
|
|
1238
1444
|
*/
|
|
1239
1445
|
isAuditable(): boolean;
|
|
1240
1446
|
/**
|
|
1241
|
-
*
|
|
1447
|
+
* Registered property name (same as entity field name in the embedded model).
|
|
1242
1448
|
*/
|
|
1243
|
-
|
|
1449
|
+
getPropertyName(): string;
|
|
1244
1450
|
/**
|
|
1245
|
-
*
|
|
1451
|
+
* Registration metadata when this field's definition name is registered; otherwise embedded summary.
|
|
1246
1452
|
*/
|
|
1247
|
-
|
|
1453
|
+
getPropertyInfo(): unknown;
|
|
1248
1454
|
/**
|
|
1249
|
-
*
|
|
1455
|
+
* Rebuild the property model from embedded definition (e.g. after definition updates).
|
|
1250
1456
|
*/
|
|
1251
|
-
|
|
1457
|
+
refreshProperty(): void;
|
|
1252
1458
|
/**
|
|
1253
1459
|
* Get parent entity
|
|
1254
1460
|
*/
|
|
@@ -1275,7 +1481,7 @@ declare class AXPEntityFieldModel {
|
|
|
1275
1481
|
getStatistics(): {
|
|
1276
1482
|
hasValidations: boolean;
|
|
1277
1483
|
hasActions: boolean;
|
|
1278
|
-
|
|
1484
|
+
hasFieldFeatures: boolean;
|
|
1279
1485
|
hasDefaultValue: boolean;
|
|
1280
1486
|
validationCount: number;
|
|
1281
1487
|
actionCount: number;
|
|
@@ -1295,7 +1501,7 @@ declare class AXPEntityFieldModel {
|
|
|
1295
1501
|
/**
|
|
1296
1502
|
* Convert back to interface definition
|
|
1297
1503
|
*/
|
|
1298
|
-
toDefinition():
|
|
1504
|
+
toDefinition(): AXPEntityPropertyDefinition;
|
|
1299
1505
|
}
|
|
1300
1506
|
|
|
1301
1507
|
/**
|
|
@@ -1307,8 +1513,8 @@ declare class AXPEntityModel {
|
|
|
1307
1513
|
readonly fields: AXPEntityFieldModel[];
|
|
1308
1514
|
readonly type: AXPEntityType;
|
|
1309
1515
|
readonly parent: any;
|
|
1310
|
-
readonly
|
|
1311
|
-
constructor(definition: AXPEntityDefinition, parent: any,
|
|
1516
|
+
readonly propertyService: AXPPropertyService;
|
|
1517
|
+
constructor(definition: AXPEntityDefinition, parent: any, propertyService: AXPPropertyService);
|
|
1312
1518
|
/**
|
|
1313
1519
|
* Find field by name
|
|
1314
1520
|
*/
|
|
@@ -1317,10 +1523,6 @@ declare class AXPEntityModel {
|
|
|
1317
1523
|
* Get all fields
|
|
1318
1524
|
*/
|
|
1319
1525
|
getAllFields(): AXPEntityFieldModel[];
|
|
1320
|
-
/**
|
|
1321
|
-
* Get fields by data type
|
|
1322
|
-
*/
|
|
1323
|
-
getFieldsByType(dataType: string): AXPEntityFieldModel[];
|
|
1324
1526
|
/**
|
|
1325
1527
|
* Get required fields
|
|
1326
1528
|
*/
|
|
@@ -1386,6 +1588,110 @@ declare class AXPEntityModel {
|
|
|
1386
1588
|
toDefinition(): AXPEntityDefinition;
|
|
1387
1589
|
}
|
|
1388
1590
|
|
|
1591
|
+
/**
|
|
1592
|
+
* Runtime model for standalone relation definitions.
|
|
1593
|
+
* Relations live in their own collection; join when needed.
|
|
1594
|
+
*/
|
|
1595
|
+
declare class AXPRelationModel {
|
|
1596
|
+
readonly type: AXPRelationshipCardinality;
|
|
1597
|
+
readonly kind: AXPRelationshipKind;
|
|
1598
|
+
readonly target: {
|
|
1599
|
+
aggregate: string;
|
|
1600
|
+
entity: string;
|
|
1601
|
+
key: string;
|
|
1602
|
+
};
|
|
1603
|
+
readonly source: {
|
|
1604
|
+
aggregate: string;
|
|
1605
|
+
entity: string;
|
|
1606
|
+
key: string;
|
|
1607
|
+
};
|
|
1608
|
+
readonly isRequired: boolean;
|
|
1609
|
+
readonly parent: any;
|
|
1610
|
+
constructor(definition: AXPRelationDefinition, parent: any);
|
|
1611
|
+
/**
|
|
1612
|
+
* Check if relation is one-to-one
|
|
1613
|
+
*/
|
|
1614
|
+
isOneToOne(): boolean;
|
|
1615
|
+
/**
|
|
1616
|
+
* Check if relation is one-to-many
|
|
1617
|
+
*/
|
|
1618
|
+
isOneToMany(): boolean;
|
|
1619
|
+
/**
|
|
1620
|
+
* Check if relation is many-to-many
|
|
1621
|
+
*/
|
|
1622
|
+
isManyToMany(): boolean;
|
|
1623
|
+
/**
|
|
1624
|
+
* Check if relation is association
|
|
1625
|
+
*/
|
|
1626
|
+
isAssociation(): boolean;
|
|
1627
|
+
/**
|
|
1628
|
+
* Check if relation is composition
|
|
1629
|
+
*/
|
|
1630
|
+
isComposition(): boolean;
|
|
1631
|
+
/**
|
|
1632
|
+
* Check if relation is aggregation
|
|
1633
|
+
*/
|
|
1634
|
+
isAggregation(): boolean;
|
|
1635
|
+
/**
|
|
1636
|
+
* Get parent aggregate
|
|
1637
|
+
*/
|
|
1638
|
+
getAggregate(): any;
|
|
1639
|
+
/**
|
|
1640
|
+
* Get parent module
|
|
1641
|
+
*/
|
|
1642
|
+
getModule(): any;
|
|
1643
|
+
/**
|
|
1644
|
+
* Get full path (module.aggregate.relation)
|
|
1645
|
+
*/
|
|
1646
|
+
getPath(): string;
|
|
1647
|
+
/**
|
|
1648
|
+
* Get relation description
|
|
1649
|
+
*/
|
|
1650
|
+
getDescription(): string;
|
|
1651
|
+
/**
|
|
1652
|
+
* Get cardinality description
|
|
1653
|
+
*/
|
|
1654
|
+
getCardinalityDescription(): string;
|
|
1655
|
+
/**
|
|
1656
|
+
* Get kind description
|
|
1657
|
+
*/
|
|
1658
|
+
getKindDescription(): string;
|
|
1659
|
+
/**
|
|
1660
|
+
* Get relation summary
|
|
1661
|
+
*/
|
|
1662
|
+
getSummary(): string;
|
|
1663
|
+
/**
|
|
1664
|
+
* Validate the relation structure
|
|
1665
|
+
*/
|
|
1666
|
+
validate(): string[];
|
|
1667
|
+
/**
|
|
1668
|
+
* Get relation characteristics
|
|
1669
|
+
*/
|
|
1670
|
+
getCharacteristics(): {
|
|
1671
|
+
type: string;
|
|
1672
|
+
kind: string;
|
|
1673
|
+
required: boolean;
|
|
1674
|
+
isOwning: boolean;
|
|
1675
|
+
isNavigable: boolean;
|
|
1676
|
+
};
|
|
1677
|
+
/**
|
|
1678
|
+
* Check if relation involves entity
|
|
1679
|
+
*/
|
|
1680
|
+
involvesEntity(entityName: string): boolean;
|
|
1681
|
+
/**
|
|
1682
|
+
* Check if relation targets aggregate
|
|
1683
|
+
*/
|
|
1684
|
+
targetsAggregate(aggregateName: string): boolean;
|
|
1685
|
+
/**
|
|
1686
|
+
* Get the other entity in the relation
|
|
1687
|
+
*/
|
|
1688
|
+
getOtherEntity(entityName: string): string | null;
|
|
1689
|
+
/**
|
|
1690
|
+
* Convert back to interface definition (AXPRelationDefinition with full source/target)
|
|
1691
|
+
*/
|
|
1692
|
+
toDefinition(): AXPRelationDefinition;
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1389
1695
|
/**
|
|
1390
1696
|
* Helper utility class for working with module models
|
|
1391
1697
|
*
|
|
@@ -1428,9 +1734,9 @@ declare class AXPModuleHelper {
|
|
|
1428
1734
|
*/
|
|
1429
1735
|
static findFieldsWithDefaultValues(module: AXPModuleModel): AXPEntityFieldModel[];
|
|
1430
1736
|
/**
|
|
1431
|
-
* @deprecated Use AXPDomainService with
|
|
1737
|
+
* @deprecated Use AXPDomainService with registered property name queries instead
|
|
1432
1738
|
*/
|
|
1433
|
-
static
|
|
1739
|
+
static findFieldsByRegisteredPropertyName(module: AXPModuleModel, propertyName: string): AXPEntityFieldModel[];
|
|
1434
1740
|
/**
|
|
1435
1741
|
* @deprecated Use module.validate() method instead
|
|
1436
1742
|
*/
|
|
@@ -1575,7 +1881,7 @@ declare class AXPDomainRegistry {
|
|
|
1575
1881
|
private readonly _aggregateMiddleware;
|
|
1576
1882
|
private readonly _entityMiddleware;
|
|
1577
1883
|
private _loaders;
|
|
1578
|
-
private readonly
|
|
1884
|
+
private readonly propertyService;
|
|
1579
1885
|
/**
|
|
1580
1886
|
* Resolve a domain object by path with full middleware processing.
|
|
1581
1887
|
* Supports definition-level caching with fresh model creation.
|
|
@@ -2043,5 +2349,5 @@ declare function provideDomainMiddleware(config: {
|
|
|
2043
2349
|
entities?: AXPDomainMiddleware[];
|
|
2044
2350
|
}): EnvironmentProviders;
|
|
2045
2351
|
|
|
2046
|
-
export { AXPAggregateModel, AXPDomainMiddlewareContext, AXPDomainModule, AXPDomainRegistry, AXPDomainService, AXPEntityCommandScope, AXPEntityFieldModel, AXPEntityModel, AXPEntityType, AXPModuleHelper, AXPModuleModel,
|
|
2047
|
-
export type { AXPAggregateDefinition, AXPAggregateEntityList,
|
|
2352
|
+
export { AXPAggregateModel, AXPDomainActionSide, AXPDomainMiddlewareContext, AXPDomainModule, AXPDomainRegistry, AXPDomainService, AXPEntityCommandScope, AXPEntityFieldModel, AXPEntityModel, AXPEntityType, AXPModuleHelper, AXPModuleModel, AXPPropertyMiddlewareContext, AXPPropertyModel, AXPPropertyRegistry, AXPPropertyService, AXPRelationModel, AXPRelationshipCardinality, AXPRelationshipKind, AXP_AGGREGATE_MIDDLEWARE_SETUP, AXP_ENTITY_CRUD_SETUP, AXP_ENTITY_DEFINITION_CRUD_SERVICE, AXP_ENTITY_MIDDLEWARE_SETUP, AXP_MODULE_MIDDLEWARE_SETUP, AXP_PROPERTY_EXTENSION, AXP_PROPERTY_LOADER_SETUP, AXP_PROPERTY_MIDDLEWARE_SETUP, AXP_PROPERTY_SETUP, provideAggregateMiddleware, provideDomainLoader, provideDomainLoaders, provideDomainMiddleware, provideEntityMiddleware, provideModuleMiddleware, providePropertiesFromFactory, provideProperty, providePropertyLoaders, providePropertyMiddleware, providePropertySetups, toPropertyDefinition };
|
|
2353
|
+
export type { AXPAggregateDefinition, AXPAggregateEntityList, AXPCommandCapability, AXPCommandRegistryRecord, AXPDomainAction, AXPDomainDefinition, AXPDomainLoader, AXPDomainLoaderConfig, AXPDomainMiddleware, AXPDomainPathInfo, AXPDomainRealtedModuleEntity, AXPEntityDefinition, AXPEntityDefinitionCrudService, AXPEntityPropertyDefinition, AXPEntityPropertyFeatures, AXPInterfaceCategory, AXPInterfaceDefinition, AXPInterfaceDefinitionValue, AXPMenuDefinitionEntityListRef, AXPMenuDefinitionRecord, AXPMenuDefinitionStoredCommand, AXPModuleDefinition, AXPPermissionDefinitionRecord, AXPPermissionGroupDefinitionRecord, AXPPermissionLeafRecord, AXPPluginDefinition, AXPPluginDefinitionValue, AXPPropertyDefinition, AXPPropertyEntry, AXPPropertyFeatures, AXPPropertyLoader, AXPPropertyLoaderConfig, AXPPropertyMiddleware, AXPPropertyMiddlewareEntry, AXPPropertyRegistrationOptions, AXPQueryRegistryRecord, AXPRegisteredProperty, AXPRelationDefinition, AXPValidationRuleDefinition, AXPValidationRuleValue, AXPValidationRunAt };
|