@acorex/platform 21.0.0-next.85 → 21.0.0-next.89
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 +9 -3
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-DilV4dql.mjs} +16 -3
- package/fesm2022/acorex-platform-common-common-settings.provider-DilV4dql.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +3426 -2488
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-contracts.mjs +1160 -9
- package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +826 -152
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain-contracts.mjs +58 -0
- package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-domain.mjs +2 -50
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +98 -189
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-RttFwaw9.mjs} +17 -4
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-RttFwaw9.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +181 -46
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +7 -6
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs +1208 -0
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +1080 -889
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +1150 -247
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +388 -207
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-CZc2zFlg.mjs} +4 -4
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-CZc2zFlg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-XWRUVoL4.mjs} +2 -2
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-XWRUVoL4.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +1541 -394
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs → acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs} +2 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +956 -115
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs → acorex-platform-themes-shared-settings.provider-UyKdkeyk.mjs} +50 -3
- package/fesm2022/acorex-platform-themes-shared-settings.provider-UyKdkeyk.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +104 -24
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +6 -8
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +9 -5
- package/types/acorex-platform-auth.d.ts +3 -1
- package/types/acorex-platform-common.d.ts +655 -1268
- package/types/acorex-platform-contracts.d.ts +1791 -260
- package/types/acorex-platform-core.d.ts +2302 -2800
- package/types/acorex-platform-domain-contracts.d.ts +416 -0
- package/types/acorex-platform-domain.d.ts +4 -415
- package/types/acorex-platform-layout-builder.d.ts +11 -20
- package/types/acorex-platform-layout-components.d.ts +29 -5
- package/types/acorex-platform-layout-designer.d.ts +2 -1
- package/types/acorex-platform-layout-entity-contracts.d.ts +889 -0
- package/types/acorex-platform-layout-entity.d.ts +143 -275
- package/types/acorex-platform-layout-views.d.ts +147 -31
- package/types/acorex-platform-layout-widget-core.d.ts +74 -14
- package/types/acorex-platform-layout-widgets.d.ts +136 -38
- package/types/acorex-platform-runtime.d.ts +1 -1
- package/types/acorex-platform-themes-default.d.ts +227 -73
- package/types/acorex-platform-themes-shared.d.ts +4 -0
- package/types/acorex-platform-workflow.d.ts +5 -18
- package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +0 -1
- package/fesm2022/acorex-platform-native.mjs +0 -155
- package/fesm2022/acorex-platform-native.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +0 -1
- package/native/README.md +0 -4
- package/types/acorex-platform-native.d.ts +0 -28
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
import { AXPExpression, AXPOptionsData, AXPDataType, AXPMetaData, AXPValidationRules, AXPDefinitionCategory } from '@acorex/platform/contracts';
|
|
2
|
+
|
|
3
|
+
declare enum AXPDomainActionSide {
|
|
4
|
+
Client = "client",
|
|
5
|
+
Server = "server",
|
|
6
|
+
Both = "both"
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Interface for defining actions
|
|
10
|
+
*/
|
|
11
|
+
interface AXPDomainAction {
|
|
12
|
+
event: string;
|
|
13
|
+
side: 'client' | 'server' | 'both';
|
|
14
|
+
condition?: AXPExpression;
|
|
15
|
+
expression: AXPExpression;
|
|
16
|
+
}
|
|
17
|
+
declare enum AXPEntityCommandScope {
|
|
18
|
+
TypeLevel = "typeLevel",
|
|
19
|
+
Selected = "selected",
|
|
20
|
+
Individual = "individual",
|
|
21
|
+
Section = "section"
|
|
22
|
+
}
|
|
23
|
+
interface AXPDomainRealtedModuleEntity {
|
|
24
|
+
moduleId?: string;
|
|
25
|
+
module?: {
|
|
26
|
+
id?: string;
|
|
27
|
+
name?: string;
|
|
28
|
+
title?: string;
|
|
29
|
+
};
|
|
30
|
+
entityId?: string;
|
|
31
|
+
entity?: {
|
|
32
|
+
id?: string;
|
|
33
|
+
name?: string;
|
|
34
|
+
title?: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Widget category for interface grouping (e.g. Editors, Layout, Action). */
|
|
39
|
+
interface AXPInterfaceCategory {
|
|
40
|
+
name: string;
|
|
41
|
+
title: string;
|
|
42
|
+
order?: number;
|
|
43
|
+
}
|
|
44
|
+
/** Widget interface definition stored in DB (display metadata + option definitions). Values are stored in schema. */
|
|
45
|
+
interface AXPInterfaceDefinition {
|
|
46
|
+
name: string;
|
|
47
|
+
title?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
icon?: string;
|
|
50
|
+
dataType?: AXPDataType;
|
|
51
|
+
/** Widget categories (e.g. Editors, Layout). */
|
|
52
|
+
categories?: AXPInterfaceCategory | AXPInterfaceCategory[];
|
|
53
|
+
/** Widget groups (e.g. form-element, entity-widget). */
|
|
54
|
+
groups?: string[];
|
|
55
|
+
/** Widget type: editor, view, filter, container, action, etc. */
|
|
56
|
+
type?: string;
|
|
57
|
+
/** Default filter widget name when used as filter (e.g. string-filter, number-filter). */
|
|
58
|
+
defaultFilterWidgetName?: string;
|
|
59
|
+
optionDefinitions?: AXPPropertyDefinition[];
|
|
60
|
+
}
|
|
61
|
+
interface AXPInterfaceDefinitionValue {
|
|
62
|
+
name: string;
|
|
63
|
+
title: string;
|
|
64
|
+
options?: AXPOptionsData;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Where the validation rule runs: client-side only, server-side only, or both.
|
|
69
|
+
*/
|
|
70
|
+
type AXPValidationRunAt = 'client' | 'server' | 'both';
|
|
71
|
+
/**
|
|
72
|
+
* Validation rule definition (catalog model): metadata for available validation rules.
|
|
73
|
+
* Used in UI to list validation rules: name (rule key), title, description, and runAt.
|
|
74
|
+
* The actual rule usage on properties uses AXPValidationRule from @acorex/platform/core.
|
|
75
|
+
*/
|
|
76
|
+
interface AXPValidationRuleDefinition extends AXPDomainRealtedModuleEntity {
|
|
77
|
+
rule: string;
|
|
78
|
+
title: string;
|
|
79
|
+
description?: string;
|
|
80
|
+
icon?: string;
|
|
81
|
+
/** Where the validation runs: client-side, server-side, or both. Default: 'client' */
|
|
82
|
+
runAt?: AXPValidationRunAt;
|
|
83
|
+
message?: string;
|
|
84
|
+
options?: AXPPropertyDefinition[];
|
|
85
|
+
}
|
|
86
|
+
interface AXPValidationRuleValue {
|
|
87
|
+
rule: string;
|
|
88
|
+
title?: string;
|
|
89
|
+
message?: string;
|
|
90
|
+
options?: AXPMetaData;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
interface AXPPropertyFeatures {
|
|
94
|
+
searchable?: {
|
|
95
|
+
enabled: boolean;
|
|
96
|
+
fullText: boolean;
|
|
97
|
+
};
|
|
98
|
+
filterable?: {
|
|
99
|
+
enabled: boolean;
|
|
100
|
+
inline: boolean;
|
|
101
|
+
};
|
|
102
|
+
sortable?: {
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
};
|
|
105
|
+
auditable?: {
|
|
106
|
+
enabled: boolean;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
interface AXPPropertyDefinition {
|
|
110
|
+
name: string;
|
|
111
|
+
title: string;
|
|
112
|
+
description?: string;
|
|
113
|
+
icon?: string;
|
|
114
|
+
defaultValue?: unknown;
|
|
115
|
+
disabled?: boolean;
|
|
116
|
+
dataType?: AXPDataType;
|
|
117
|
+
interface: AXPInterfaceDefinitionValue;
|
|
118
|
+
validations?: AXPValidationRuleValue[];
|
|
119
|
+
features?: AXPPropertyFeatures;
|
|
120
|
+
metadata?: AXPMetaData;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Plugin definition (catalog model): metadata for available plugins.
|
|
125
|
+
* Used in UI to list plugins: name, title, optional icon, description, and options schema.
|
|
126
|
+
*/
|
|
127
|
+
interface AXPPluginDefinition extends AXPDomainRealtedModuleEntity {
|
|
128
|
+
name: string;
|
|
129
|
+
title: string;
|
|
130
|
+
description?: string;
|
|
131
|
+
icon?: string;
|
|
132
|
+
options?: AXPPropertyDefinition[];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Plugin value in entity: name + optional options (key-value).
|
|
136
|
+
* Fills the definition when used on an entity.
|
|
137
|
+
*/
|
|
138
|
+
interface AXPPluginDefinitionValue {
|
|
139
|
+
name: string;
|
|
140
|
+
options?: AXPMetaData;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
declare enum AXPEntityType {
|
|
144
|
+
Entity = 0,
|
|
145
|
+
AggregateRoot = 1,
|
|
146
|
+
ValueObject = 2
|
|
147
|
+
}
|
|
148
|
+
interface AXPEntityDefinition {
|
|
149
|
+
name: string;
|
|
150
|
+
title: string;
|
|
151
|
+
fields: AXPEntityPropertyDefinition[];
|
|
152
|
+
type: AXPEntityType;
|
|
153
|
+
/** Entity plugins (e.g. common.history, common.lock). Name + optional options only. */
|
|
154
|
+
plugins?: AXPPluginDefinitionValue[];
|
|
155
|
+
/** Property groups for layout */
|
|
156
|
+
groups?: Array<{
|
|
157
|
+
id: string;
|
|
158
|
+
title: string;
|
|
159
|
+
}>;
|
|
160
|
+
/** List/table columns */
|
|
161
|
+
columns?: Array<{
|
|
162
|
+
name: string;
|
|
163
|
+
}>;
|
|
164
|
+
/** Display formats */
|
|
165
|
+
formats?: {
|
|
166
|
+
individual?: string;
|
|
167
|
+
plural?: string;
|
|
168
|
+
};
|
|
169
|
+
/** Layout interfaces (master create/update/single/list). Pass-through for converter. */
|
|
170
|
+
interfaces?: Record<string, unknown>;
|
|
171
|
+
/** Module name (e.g. ContentManagement). Derived from path or explicit. */
|
|
172
|
+
module?: string;
|
|
173
|
+
/** Entity icon. */
|
|
174
|
+
icon?: string;
|
|
175
|
+
}
|
|
176
|
+
interface AXPEntityPropertyFeatures {
|
|
177
|
+
nullable: boolean;
|
|
178
|
+
readOnly: boolean;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Entity field: flattened embedded property definition (interface, validations, features) plus entity-only metadata.
|
|
182
|
+
* Top-level name/title are the entity property name/title.
|
|
183
|
+
*/
|
|
184
|
+
interface AXPEntityPropertyDefinition extends AXPPropertyDefinition {
|
|
185
|
+
actions?: AXPDomainAction[];
|
|
186
|
+
/** Nullable/readOnly for entity binding; distinct from property.features (searchable, filterable, etc.). */
|
|
187
|
+
fieldFeatures?: AXPEntityPropertyFeatures;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
type AXPAggregateEntityList = {
|
|
191
|
+
[key: string]: () => Promise<AXPEntityDefinition>;
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Aggregate definition. Relations are stored in a separate collection (like MySQL join table).
|
|
195
|
+
* Join when needed via relations collection.
|
|
196
|
+
*/
|
|
197
|
+
interface AXPAggregateDefinition {
|
|
198
|
+
name: string;
|
|
199
|
+
title: string;
|
|
200
|
+
entities: AXPEntityDefinition[] | AXPAggregateEntityList | Record<string, string>;
|
|
201
|
+
validations: AXPValidationRules;
|
|
202
|
+
actions: AXPDomainAction[];
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
interface AXPModuleDefinition {
|
|
206
|
+
name: string;
|
|
207
|
+
title: string;
|
|
208
|
+
aggregates: AXPAggregateDefinition[];
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
declare enum AXPRelationshipKind {
|
|
212
|
+
Association = 0,
|
|
213
|
+
Composition = 1,
|
|
214
|
+
Aggregation = 2
|
|
215
|
+
}
|
|
216
|
+
declare enum AXPRelationshipCardinality {
|
|
217
|
+
OneToOne = 0,
|
|
218
|
+
OneToMany = 1,
|
|
219
|
+
ManyToMany = 2
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Standalone relation definition with full source and target.
|
|
223
|
+
* Relations live in their own collection, independent of aggregates.
|
|
224
|
+
*/
|
|
225
|
+
interface AXPRelationDefinition {
|
|
226
|
+
id?: string;
|
|
227
|
+
type: AXPRelationshipCardinality;
|
|
228
|
+
kind: AXPRelationshipKind;
|
|
229
|
+
source: {
|
|
230
|
+
aggregate: string;
|
|
231
|
+
entity: string;
|
|
232
|
+
key: string;
|
|
233
|
+
};
|
|
234
|
+
target: {
|
|
235
|
+
aggregate: string;
|
|
236
|
+
entity: string;
|
|
237
|
+
key: string;
|
|
238
|
+
};
|
|
239
|
+
isRequired: boolean;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Discriminated JSON for `AXPMenuDefinitionRecord.command`.
|
|
244
|
+
* Modal navigation is omitted (Angular `Type` is not JSON-serializable).
|
|
245
|
+
*/
|
|
246
|
+
type AXPMenuDefinitionStoredCommand = {
|
|
247
|
+
kind: 'navigate';
|
|
248
|
+
navigateType: 'router';
|
|
249
|
+
path: string;
|
|
250
|
+
extras?: Record<string, unknown>;
|
|
251
|
+
} | {
|
|
252
|
+
kind: 'execute';
|
|
253
|
+
name: string;
|
|
254
|
+
options?: Record<string, unknown>;
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Optional reference to an entity list route: resolved at runtime via `AXPEntityService.createPath`.
|
|
258
|
+
*/
|
|
259
|
+
interface AXPMenuDefinitionEntityListRef {
|
|
260
|
+
module: string;
|
|
261
|
+
entity: string;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Serializable menu definition for definition stores (Dexie/Firestore in mock today).
|
|
265
|
+
* Mirrors persisted shape for `AXPEntityDefinitionCrudService` menu APIs — not identical to shell `AXPMenuItem`.
|
|
266
|
+
*/
|
|
267
|
+
interface AXPMenuDefinitionRecord {
|
|
268
|
+
/** Same as `AXPMenuItem.name` (unique key). */
|
|
269
|
+
name: string;
|
|
270
|
+
text: string;
|
|
271
|
+
description?: string;
|
|
272
|
+
icon?: string;
|
|
273
|
+
priority?: number;
|
|
274
|
+
type?: 'menu' | 'group' | 'break';
|
|
275
|
+
/**
|
|
276
|
+
* Parent menu `name` for `context.find(attachParentName).addItems(...)`.
|
|
277
|
+
* Empty omits attachment (provider may add to root — see implementation).
|
|
278
|
+
*/
|
|
279
|
+
attachParentName?: string;
|
|
280
|
+
/** Literal router path; if both this and `entityListRef` are set, implementations may prefer this. */
|
|
281
|
+
path?: string;
|
|
282
|
+
entityListRef?: AXPMenuDefinitionEntityListRef;
|
|
283
|
+
policyFeatures?: string[];
|
|
284
|
+
policyPermissions?: string[];
|
|
285
|
+
badgeKey?: string;
|
|
286
|
+
command?: AXPMenuDefinitionStoredCommand;
|
|
287
|
+
/**
|
|
288
|
+
* Optional module classification (references `PlatformManagement.ModuleDefinitions` when using the category plugin).
|
|
289
|
+
*/
|
|
290
|
+
categoryIds?: string[];
|
|
291
|
+
/** Denormalized labels for list/display (mirrors product category pattern). */
|
|
292
|
+
categories?: Array<{
|
|
293
|
+
id: string;
|
|
294
|
+
title?: string;
|
|
295
|
+
}>;
|
|
296
|
+
meta?: Record<string, unknown>;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* One level of child permissions under a root permission (fluent `addChild` only).
|
|
301
|
+
* Nested `children` under leaves are not part of the storage contract.
|
|
302
|
+
*/
|
|
303
|
+
interface AXPPermissionLeafRecord {
|
|
304
|
+
name: string;
|
|
305
|
+
title: string;
|
|
306
|
+
description?: string;
|
|
307
|
+
requiredFeatures?: string[];
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Root permission row: one `addPermission` … `endPermission` chain, with optional sibling `addChild` entries.
|
|
311
|
+
*/
|
|
312
|
+
interface AXPPermissionDefinitionRecord {
|
|
313
|
+
name: string;
|
|
314
|
+
title: string;
|
|
315
|
+
description?: string;
|
|
316
|
+
requiredFeatures?: string[];
|
|
317
|
+
/** At most one level — matches `AXPPermissionDefinitionProviderContext` fluent API. */
|
|
318
|
+
children?: AXPPermissionLeafRecord[];
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Serializable permission group for definition stores (Dexie/Firestore).
|
|
322
|
+
* Aligns with `AXPPermissionGroupDefinition` / fluent providers; one row per group.
|
|
323
|
+
*/
|
|
324
|
+
interface AXPPermissionGroupDefinitionRecord {
|
|
325
|
+
name: string;
|
|
326
|
+
title: string;
|
|
327
|
+
description?: string;
|
|
328
|
+
permissions: AXPPermissionDefinitionRecord[];
|
|
329
|
+
/**
|
|
330
|
+
* Optional module classification (references `PlatformManagement.ModuleDefinitions` when using the category plugin).
|
|
331
|
+
*/
|
|
332
|
+
categoryIds?: string[];
|
|
333
|
+
/** Denormalized labels for list/display (mirrors product category pattern). */
|
|
334
|
+
categories?: Array<{
|
|
335
|
+
id: string;
|
|
336
|
+
title?: string;
|
|
337
|
+
}>;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/** Surfaces where a command may be exposed (tooling / automation). Build-time: optional on `defineCommand`. */
|
|
341
|
+
type AXPCommandCapability = 'ai' | 'workflow';
|
|
342
|
+
/**
|
|
343
|
+
* Persisted command registry row (e.g. Dexie/Firestore via AXPEntityDefinitionCrudService).
|
|
344
|
+
* `name` is the runtime command key; `active` is the toggle stored for mock/admin UIs.
|
|
345
|
+
*/
|
|
346
|
+
interface AXPCommandRegistryRecord {
|
|
347
|
+
name: string;
|
|
348
|
+
active: boolean;
|
|
349
|
+
/** Human / AI-oriented description of what the command does. */
|
|
350
|
+
description?: string;
|
|
351
|
+
/** Input parameters as schema rows (same shape as interface `optionDefinitions`). */
|
|
352
|
+
inputOptionDefinitions?: AXPPropertyDefinition[];
|
|
353
|
+
/** Output shape as schema rows (same shape as interface `optionDefinitions`). */
|
|
354
|
+
outputOptionDefinitions?: AXPPropertyDefinition[];
|
|
355
|
+
/** Display title from build-time command metadata (`*.definition.ts`). */
|
|
356
|
+
catalogTitle?: string;
|
|
357
|
+
/** Where the command runs (metadata). */
|
|
358
|
+
executionMode?: 'frontend' | 'backend' | 'both';
|
|
359
|
+
/** Pretty-printed JSON of the outcomes definition from metadata (readonly display). */
|
|
360
|
+
outcomesDefinitionJson?: string;
|
|
361
|
+
/** Pretty-printed JSON of AI hints from metadata (readonly display). */
|
|
362
|
+
aiMetadataJson?: string;
|
|
363
|
+
/**
|
|
364
|
+
* Optional capability flags (from build-time `capabilities` on command metadata).
|
|
365
|
+
* Omitted or empty means no declared surface; consumers may still apply legacy rules (e.g. AI `ai-tool` tag).
|
|
366
|
+
*/
|
|
367
|
+
capabilities?: AXPCommandCapability[];
|
|
368
|
+
/** Optional grouping from build-time command metadata (`categories` on `defineCommand`). */
|
|
369
|
+
categories?: AXPDefinitionCategory[];
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Persisted query registry row (e.g. Dexie/Firestore via AXPEntityDefinitionCrudService).
|
|
374
|
+
* `name` is the runtime query key; `active` is the toggle stored for mock/admin UIs.
|
|
375
|
+
* Queries expose `fetch(input)` only — no command outcomes.
|
|
376
|
+
*/
|
|
377
|
+
interface AXPQueryRegistryRecord {
|
|
378
|
+
name: string;
|
|
379
|
+
active: boolean;
|
|
380
|
+
/** Human / AI-oriented description of what the query returns. */
|
|
381
|
+
description?: string;
|
|
382
|
+
/** Input parameters (filter / criteria) as property definition rows. */
|
|
383
|
+
inputOptionDefinitions?: AXPPropertyDefinition[];
|
|
384
|
+
/** Result shape as property definition rows (documentation / tooling). */
|
|
385
|
+
outputOptionDefinitions?: AXPPropertyDefinition[];
|
|
386
|
+
/** Display title from build-time query metadata (`*.query.definition.ts`). */
|
|
387
|
+
catalogTitle?: string;
|
|
388
|
+
/** Where the query runs (metadata). */
|
|
389
|
+
executionMode?: 'frontend' | 'backend' | 'both';
|
|
390
|
+
/** Pretty-printed JSON of AI hints from metadata (readonly display). */
|
|
391
|
+
aiMetadataJson?: string;
|
|
392
|
+
/**
|
|
393
|
+
* Optional capability flags (from build-time `capabilities` on query metadata).
|
|
394
|
+
* Omitted or empty means no declared surface; consumers may still apply legacy rules (e.g. AI `ai-tool` tag).
|
|
395
|
+
*/
|
|
396
|
+
capabilities?: AXPCommandCapability[];
|
|
397
|
+
/** Optional grouping from build-time query metadata (`categories` on `defineQuery`). */
|
|
398
|
+
categories?: AXPDefinitionCategory[];
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Persisted layout-widget catalog row (Dexie/Firestore via AXPEntityDefinitionCrudService).
|
|
403
|
+
* `name` is the widget registry name from build-time `defineWidget` metadata; `metadataJson` holds the full payload.
|
|
404
|
+
*/
|
|
405
|
+
interface AXPWidgetCatalogRecord {
|
|
406
|
+
name: string;
|
|
407
|
+
active: boolean;
|
|
408
|
+
description?: string;
|
|
409
|
+
/** Localized / catalog title from metadata `title`. */
|
|
410
|
+
catalogTitle?: string;
|
|
411
|
+
/** Pretty-printed JSON of full widget metadata (`defineWidget` sidecar). */
|
|
412
|
+
metadataJson?: string;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
export { AXPDomainActionSide, AXPEntityCommandScope, AXPEntityType, AXPRelationshipCardinality, AXPRelationshipKind };
|
|
416
|
+
export type { AXPAggregateDefinition, AXPAggregateEntityList, AXPCommandCapability, AXPCommandRegistryRecord, AXPDomainAction, AXPDomainRealtedModuleEntity, AXPEntityDefinition, AXPEntityPropertyDefinition, AXPEntityPropertyFeatures, AXPInterfaceCategory, AXPInterfaceDefinition, AXPInterfaceDefinitionValue, AXPMenuDefinitionEntityListRef, AXPMenuDefinitionRecord, AXPMenuDefinitionStoredCommand, AXPModuleDefinition, AXPPermissionDefinitionRecord, AXPPermissionGroupDefinitionRecord, AXPPermissionLeafRecord, AXPPluginDefinition, AXPPluginDefinitionValue, AXPPropertyDefinition, AXPPropertyFeatures, AXPQueryRegistryRecord, AXPRelationDefinition, AXPValidationRuleDefinition, AXPValidationRuleValue, AXPValidationRunAt, AXPWidgetCatalogRecord };
|