complexqa_frontend_core 1.22.3 → 1.23.1
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/package.json +1 -1
- package/publish/api/event_api.js +20 -0
- package/publish/api/index.js +26 -21
- package/publish/app_configuration/table/helpers/table_element_models.js +2 -0
- package/publish/app_configuration/table/sections/event.js +76 -0
- package/publish/app_configuration/table/table_configuration.js +2 -0
- package/publish/index.js +3 -0
- package/publish/types/core/0_familyGeneralElement.js +2 -2
- package/publish/types/element_translate/typeEvent.i18n.js +493 -0
- package/publish/types/family_events/familyEvent.js +70 -0
- package/publish/types/family_events/typeEvent.js +95 -0
package/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ApiAbstractElementClass } from './api_abstract_element_class.js';
|
|
2
|
+
import { typeEvent } from '../types/family_events/typeEvent.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Read-only search для доменных событий (прокси main → event-service).
|
|
6
|
+
*
|
|
7
|
+
* Маршрут: POST /web_api/event/search
|
|
8
|
+
*
|
|
9
|
+
* @version v.1.0 (26/07/2026)
|
|
10
|
+
*/
|
|
11
|
+
export class EventApi extends ApiAbstractElementClass
|
|
12
|
+
{
|
|
13
|
+
module_prefix = 'event';
|
|
14
|
+
|
|
15
|
+
constructor(options)
|
|
16
|
+
{
|
|
17
|
+
super(options);
|
|
18
|
+
this.set_element_class_instance(typeEvent);
|
|
19
|
+
}
|
|
20
|
+
}
|
package/publish/api/index.js
CHANGED
|
@@ -26,6 +26,7 @@ import { TextDocumentApi } from "./text_document_api.js";
|
|
|
26
26
|
import { PublicTextDocumentApi } from "./public_text_document_api.js";
|
|
27
27
|
import { TextDocumentFolderApi } from "./text_document_folder_api.js";
|
|
28
28
|
import { FileAppApi } from "./file_app_api.js";
|
|
29
|
+
import { EventApi } from "./event_api.js";
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Обертка над axios
|
|
@@ -59,6 +60,9 @@ export class Api
|
|
|
59
60
|
general_domain = false;
|
|
60
61
|
site_section = false;
|
|
61
62
|
|
|
63
|
+
/** @type {EventApi} */
|
|
64
|
+
event;
|
|
65
|
+
|
|
62
66
|
|
|
63
67
|
/**
|
|
64
68
|
*
|
|
@@ -147,28 +151,29 @@ export class Api
|
|
|
147
151
|
|
|
148
152
|
//echo({payload});
|
|
149
153
|
|
|
150
|
-
this.team_management
|
|
151
|
-
this.team_member
|
|
152
|
-
this.test_plan
|
|
153
|
-
this.project
|
|
154
|
-
this.service
|
|
155
|
-
this.test_case
|
|
156
|
-
this.test_case_step
|
|
157
|
-
this.test_suite
|
|
158
|
-
this.test_run
|
|
159
|
-
this.test_run_result
|
|
160
|
-
this.user_profile
|
|
161
|
-
this.task
|
|
162
|
-
this.test_account
|
|
163
|
-
this.bug
|
|
164
|
-
this.bug_relation
|
|
165
|
-
this.
|
|
166
|
-
this.
|
|
154
|
+
this.team_management = new TeamManagementApi(payload);
|
|
155
|
+
this.team_member = new TeamMemberApi(payload);
|
|
156
|
+
this.test_plan = new TestPlanApi(payload);
|
|
157
|
+
this.project = new ProjectApi(payload);
|
|
158
|
+
this.service = new ServiceApi(payload);
|
|
159
|
+
this.test_case = new TestCaseApi(payload);
|
|
160
|
+
this.test_case_step = new TestCaseStepApi(payload);
|
|
161
|
+
this.test_suite = new TestSuiteApi(payload);
|
|
162
|
+
this.test_run = new TestRunApi(payload);
|
|
163
|
+
this.test_run_result = new TestRunResultApi(payload);
|
|
164
|
+
this.user_profile = new UserProfileApi(payload);
|
|
165
|
+
this.task = new TaskApi(payload);
|
|
166
|
+
this.test_account = new TestAccountApi(payload);
|
|
167
|
+
this.bug = new BugApi(payload);
|
|
168
|
+
this.bug_relation = new BugRelationApi(payload);
|
|
169
|
+
this.event = new EventApi(payload);
|
|
170
|
+
this.execution_context = new ExecutionContextApi(payload);
|
|
171
|
+
this.browser_tools_util_execution = new BrowserToolsUtilExecutionApi(payload);
|
|
167
172
|
this.browser_tools_screenshot_multi = new BrowserToolsScreenshotMultiApi(payload);
|
|
168
|
-
this.file_app
|
|
169
|
-
this.text_document
|
|
170
|
-
this.text_document_folder
|
|
171
|
-
this.public_text_document
|
|
173
|
+
this.file_app = new FileAppApi(payload);
|
|
174
|
+
this.text_document = new TextDocumentApi(payload);
|
|
175
|
+
this.text_document_folder = new TextDocumentFolderApi(payload);
|
|
176
|
+
this.public_text_document = new PublicTextDocumentApi(payload);
|
|
172
177
|
|
|
173
178
|
this.reference = this.bootstrap_reference(payload)
|
|
174
179
|
}
|
|
@@ -12,6 +12,7 @@ import { typeUser } from '../../../types/family_elements/typeUser.js';
|
|
|
12
12
|
import { typeTeam } from '../../../types/family_elements/typeTeam.js';
|
|
13
13
|
import { typeUtilExecutionScreenshotMulti } from '../../../types/family_utils/typeUtilExecutionScreenshotMulti.js';
|
|
14
14
|
import { typeTextDocument } from '../../../types/family_files/typeTextDocument.js';
|
|
15
|
+
import { typeEvent } from '../../../types/family_events/typeEvent.js';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Реестр классов моделей по ключу `element_type`.
|
|
@@ -39,4 +40,5 @@ export const TABLE_ELEMENT_MODELS = {
|
|
|
39
40
|
team : typeTeam,
|
|
40
41
|
text_document : typeTextDocument,
|
|
41
42
|
util_execution : typeUtilExecutionScreenshotMulti,
|
|
43
|
+
event : typeEvent,
|
|
42
44
|
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { typeEvent } from '../../../types/family_events/typeEvent.js';
|
|
2
|
+
import { UserService } from '../../../services/UserService.js';
|
|
3
|
+
import { createColumn, createGoToColumn } from '../helpers/column_factory.js';
|
|
4
|
+
import { createListingFor, registerSection } from '../helpers/section_registry.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Колонки ленты событий (team / project Activity).
|
|
8
|
+
*
|
|
9
|
+
* @param {string} locale
|
|
10
|
+
* @returns {import('../../../types/family_service/typeTableColumn.js').typeTableColumn[]}
|
|
11
|
+
*/
|
|
12
|
+
function build_event_listing_columns(locale)
|
|
13
|
+
{
|
|
14
|
+
const model = new typeEvent();
|
|
15
|
+
|
|
16
|
+
return [
|
|
17
|
+
createColumn(model, locale, 'occurred_at', {
|
|
18
|
+
width : '220',
|
|
19
|
+
is_filter : true,
|
|
20
|
+
is_editable : false,
|
|
21
|
+
default_sort: 'desc',
|
|
22
|
+
}),
|
|
23
|
+
createColumn(model, locale, 'action', {
|
|
24
|
+
width : '120',
|
|
25
|
+
is_filter : true,
|
|
26
|
+
is_editable: false,
|
|
27
|
+
}),
|
|
28
|
+
createColumn(model, locale, 'outcome', {
|
|
29
|
+
width : '120',
|
|
30
|
+
is_filter : true,
|
|
31
|
+
is_editable: false,
|
|
32
|
+
}),
|
|
33
|
+
createColumn(model, locale, 'subject_type', {
|
|
34
|
+
width : '160',
|
|
35
|
+
is_filter : true,
|
|
36
|
+
is_editable: false,
|
|
37
|
+
}),
|
|
38
|
+
createColumn(model, locale, 'subject_id', {
|
|
39
|
+
width : '280',
|
|
40
|
+
is_filter : true,
|
|
41
|
+
is_editable: false,
|
|
42
|
+
}),
|
|
43
|
+
createColumn(model, locale, 'actor_id', {
|
|
44
|
+
width : '200',
|
|
45
|
+
is_filter : true,
|
|
46
|
+
is_editable: false,
|
|
47
|
+
}),
|
|
48
|
+
createColumn(model, locale, 'project_id.project_name', {
|
|
49
|
+
header_field : 'project_name',
|
|
50
|
+
header_element_type: 'project',
|
|
51
|
+
width : '240',
|
|
52
|
+
is_filter : true,
|
|
53
|
+
is_editable : false,
|
|
54
|
+
}),
|
|
55
|
+
createGoToColumn(model, locale),
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Секция `event`: `listing` (лента Activity; team_id на беке из сессии).
|
|
62
|
+
* Runtime-фильтр `project_id` — для project Activity; без значения не гидратируется.
|
|
63
|
+
*
|
|
64
|
+
* @param {Object<string, Object<string, { config: import('../../../types/family_service/typeTableConfiguration.js').typeTableConfiguration }>>} config
|
|
65
|
+
* @returns {void}
|
|
66
|
+
*/
|
|
67
|
+
export function bootstrap_event(config)
|
|
68
|
+
{
|
|
69
|
+
const locale = UserService.get_current_language();
|
|
70
|
+
|
|
71
|
+
registerSection(config, 'event', 'listing', build_event_listing_columns(locale), {
|
|
72
|
+
for: createListingFor([ 'project_id' ], {
|
|
73
|
+
add: [ 'subjects', 'actors', 'projects' ],
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
@@ -9,6 +9,7 @@ import { bootstrap_test_account } from './sections/test_account.js';
|
|
|
9
9
|
import { bootstrap_execution_context } from './sections/execution_context.js';
|
|
10
10
|
import { bootstrap_util_execution } from './sections/util_execution.js';
|
|
11
11
|
import { bootstrap_team_member } from './sections/team_member.js';
|
|
12
|
+
import { bootstrap_event } from './sections/event.js';
|
|
12
13
|
import { bootstrap_user } from './sections/user.js';
|
|
13
14
|
import { bootstrap_team } from './sections/team.js';
|
|
14
15
|
import { bootstrap_project } from './sections/project.js';
|
|
@@ -118,6 +119,7 @@ export class TableConfiguration extends abstractAppConfiguration
|
|
|
118
119
|
bootstrap_execution_context(this.config);
|
|
119
120
|
bootstrap_util_execution(this.config);
|
|
120
121
|
bootstrap_team_member(this.config);
|
|
122
|
+
bootstrap_event(this.config);
|
|
121
123
|
bootstrap_user(this.config);
|
|
122
124
|
bootstrap_team(this.config);
|
|
123
125
|
bootstrap_project(this.config);
|
package/publish/index.js
CHANGED
|
@@ -37,6 +37,9 @@ export { typeUtilExecutionScreenshotMultiScreenshot } from './types/family_utils
|
|
|
37
37
|
export { typeUtilExecutionScreenshotMultiCaptureError } from './types/family_utils/typeUtilExecutionScreenshotMultiCaptureError.js';
|
|
38
38
|
export { typeUtilExecutionEvent } from './types/family_utils/typeUtilExecutionEvent.js';
|
|
39
39
|
|
|
40
|
+
export { familyEvent } from './types/family_events/familyEvent.js';
|
|
41
|
+
export { typeEvent } from './types/family_events/typeEvent.js';
|
|
42
|
+
|
|
40
43
|
export { familyFile } from './types/family_files/familyFile.js';
|
|
41
44
|
export { typeFile } from './types/family_files/typeFile.js';
|
|
42
45
|
export { typeFileScreenshot } from './types/family_files/typeFileScreenshot.js';
|
|
@@ -339,11 +339,11 @@ export class familyGeneralElement
|
|
|
339
339
|
/**
|
|
340
340
|
* Возвращаем "имя", то есть значение атрибута, который является именем
|
|
341
341
|
*
|
|
342
|
-
* @version v.0.
|
|
342
|
+
* @version v.0.2 (26/07/2026)
|
|
343
343
|
*/
|
|
344
344
|
get_element_name()
|
|
345
345
|
{
|
|
346
|
-
|
|
346
|
+
return this.get_primary_key_value();
|
|
347
347
|
}
|
|
348
348
|
|
|
349
349
|
/***********************************************/
|
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Переводы для typeEvent.
|
|
3
|
+
*
|
|
4
|
+
* @see typeEvent
|
|
5
|
+
*/
|
|
6
|
+
export const typeEvent_i18n = {
|
|
7
|
+
attribute_name_translate_matrix: {
|
|
8
|
+
en: {
|
|
9
|
+
event_id : 'ID',
|
|
10
|
+
event_uuid : 'UUID',
|
|
11
|
+
type : 'Type',
|
|
12
|
+
subject_type : 'Element type',
|
|
13
|
+
subject_id : 'Element',
|
|
14
|
+
action : 'Action',
|
|
15
|
+
outcome : 'Outcome',
|
|
16
|
+
actor_type : 'Actor type',
|
|
17
|
+
actor_id : 'Actor',
|
|
18
|
+
team_id : 'Team',
|
|
19
|
+
project_id : 'Project',
|
|
20
|
+
project_name : 'Project',
|
|
21
|
+
occurred_at : 'Occurred at',
|
|
22
|
+
received_at : 'Received at',
|
|
23
|
+
correlation_id: 'Correlation',
|
|
24
|
+
failure_code : 'Failure code',
|
|
25
|
+
failure_reason: 'Failure reason',
|
|
26
|
+
},
|
|
27
|
+
ru: {
|
|
28
|
+
event_id : 'ID',
|
|
29
|
+
event_uuid : 'UUID',
|
|
30
|
+
type : 'Тип',
|
|
31
|
+
subject_type : 'Тип элемента',
|
|
32
|
+
subject_id : 'Элемент',
|
|
33
|
+
action : 'Действие',
|
|
34
|
+
outcome : 'Результат',
|
|
35
|
+
actor_type : 'Тип актора',
|
|
36
|
+
actor_id : 'Актор',
|
|
37
|
+
team_id : 'Команда',
|
|
38
|
+
project_id : 'Проект',
|
|
39
|
+
project_name : 'Проект',
|
|
40
|
+
occurred_at : 'Время',
|
|
41
|
+
received_at : 'Получено',
|
|
42
|
+
correlation_id: 'Корреляция',
|
|
43
|
+
failure_code : 'Код ошибки',
|
|
44
|
+
failure_reason: 'Причина ошибки',
|
|
45
|
+
},
|
|
46
|
+
de: {
|
|
47
|
+
event_id : 'ID',
|
|
48
|
+
event_uuid : 'UUID',
|
|
49
|
+
type : 'Type',
|
|
50
|
+
subject_type : 'Element type',
|
|
51
|
+
subject_id : 'Element',
|
|
52
|
+
action : 'Action',
|
|
53
|
+
outcome : 'Outcome',
|
|
54
|
+
actor_type : 'Actor type',
|
|
55
|
+
actor_id : 'Actor',
|
|
56
|
+
team_id : 'Team',
|
|
57
|
+
project_id : 'Project',
|
|
58
|
+
project_name : 'Project',
|
|
59
|
+
occurred_at : 'Occurred at',
|
|
60
|
+
received_at : 'Received at',
|
|
61
|
+
correlation_id: 'Correlation',
|
|
62
|
+
failure_code : 'Failure code',
|
|
63
|
+
failure_reason: 'Failure reason',
|
|
64
|
+
},
|
|
65
|
+
ar: {
|
|
66
|
+
event_id : 'ID',
|
|
67
|
+
event_uuid : 'UUID',
|
|
68
|
+
type : 'Type',
|
|
69
|
+
subject_type : 'Element type',
|
|
70
|
+
subject_id : 'Element',
|
|
71
|
+
action : 'Action',
|
|
72
|
+
outcome : 'Outcome',
|
|
73
|
+
actor_type : 'Actor type',
|
|
74
|
+
actor_id : 'Actor',
|
|
75
|
+
team_id : 'Team',
|
|
76
|
+
project_id : 'Project',
|
|
77
|
+
project_name : 'Project',
|
|
78
|
+
occurred_at : 'Occurred at',
|
|
79
|
+
received_at : 'Received at',
|
|
80
|
+
correlation_id: 'Correlation',
|
|
81
|
+
failure_code : 'Failure code',
|
|
82
|
+
failure_reason: 'Failure reason',
|
|
83
|
+
},
|
|
84
|
+
es: {
|
|
85
|
+
event_id : 'ID',
|
|
86
|
+
event_uuid : 'UUID',
|
|
87
|
+
type : 'Type',
|
|
88
|
+
subject_type : 'Element type',
|
|
89
|
+
subject_id : 'Element',
|
|
90
|
+
action : 'Action',
|
|
91
|
+
outcome : 'Outcome',
|
|
92
|
+
actor_type : 'Actor type',
|
|
93
|
+
actor_id : 'Actor',
|
|
94
|
+
team_id : 'Team',
|
|
95
|
+
project_id : 'Project',
|
|
96
|
+
project_name : 'Project',
|
|
97
|
+
occurred_at : 'Occurred at',
|
|
98
|
+
received_at : 'Received at',
|
|
99
|
+
correlation_id: 'Correlation',
|
|
100
|
+
failure_code : 'Failure code',
|
|
101
|
+
failure_reason: 'Failure reason',
|
|
102
|
+
},
|
|
103
|
+
fr: {
|
|
104
|
+
event_id : 'ID',
|
|
105
|
+
event_uuid : 'UUID',
|
|
106
|
+
type : 'Type',
|
|
107
|
+
subject_type : 'Element type',
|
|
108
|
+
subject_id : 'Element',
|
|
109
|
+
action : 'Action',
|
|
110
|
+
outcome : 'Outcome',
|
|
111
|
+
actor_type : 'Actor type',
|
|
112
|
+
actor_id : 'Actor',
|
|
113
|
+
team_id : 'Team',
|
|
114
|
+
project_id : 'Project',
|
|
115
|
+
project_name : 'Project',
|
|
116
|
+
occurred_at : 'Occurred at',
|
|
117
|
+
received_at : 'Received at',
|
|
118
|
+
correlation_id: 'Correlation',
|
|
119
|
+
failure_code : 'Failure code',
|
|
120
|
+
failure_reason: 'Failure reason',
|
|
121
|
+
},
|
|
122
|
+
hy: {
|
|
123
|
+
event_id : 'ID',
|
|
124
|
+
event_uuid : 'UUID',
|
|
125
|
+
type : 'Type',
|
|
126
|
+
subject_type : 'Element type',
|
|
127
|
+
subject_id : 'Element',
|
|
128
|
+
action : 'Action',
|
|
129
|
+
outcome : 'Outcome',
|
|
130
|
+
actor_type : 'Actor type',
|
|
131
|
+
actor_id : 'Actor',
|
|
132
|
+
team_id : 'Team',
|
|
133
|
+
project_id : 'Project',
|
|
134
|
+
project_name : 'Project',
|
|
135
|
+
occurred_at : 'Occurred at',
|
|
136
|
+
received_at : 'Received at',
|
|
137
|
+
correlation_id: 'Correlation',
|
|
138
|
+
failure_code : 'Failure code',
|
|
139
|
+
failure_reason: 'Failure reason',
|
|
140
|
+
},
|
|
141
|
+
it: {
|
|
142
|
+
event_id : 'ID',
|
|
143
|
+
event_uuid : 'UUID',
|
|
144
|
+
type : 'Type',
|
|
145
|
+
subject_type : 'Element type',
|
|
146
|
+
subject_id : 'Element',
|
|
147
|
+
action : 'Action',
|
|
148
|
+
outcome : 'Outcome',
|
|
149
|
+
actor_type : 'Actor type',
|
|
150
|
+
actor_id : 'Actor',
|
|
151
|
+
team_id : 'Team',
|
|
152
|
+
project_id : 'Project',
|
|
153
|
+
project_name : 'Project',
|
|
154
|
+
occurred_at : 'Occurred at',
|
|
155
|
+
received_at : 'Received at',
|
|
156
|
+
correlation_id: 'Correlation',
|
|
157
|
+
failure_code : 'Failure code',
|
|
158
|
+
failure_reason: 'Failure reason',
|
|
159
|
+
},
|
|
160
|
+
pl: {
|
|
161
|
+
event_id : 'ID',
|
|
162
|
+
event_uuid : 'UUID',
|
|
163
|
+
type : 'Type',
|
|
164
|
+
subject_type : 'Element type',
|
|
165
|
+
subject_id : 'Element',
|
|
166
|
+
action : 'Action',
|
|
167
|
+
outcome : 'Outcome',
|
|
168
|
+
actor_type : 'Actor type',
|
|
169
|
+
actor_id : 'Actor',
|
|
170
|
+
team_id : 'Team',
|
|
171
|
+
project_id : 'Project',
|
|
172
|
+
project_name : 'Project',
|
|
173
|
+
occurred_at : 'Occurred at',
|
|
174
|
+
received_at : 'Received at',
|
|
175
|
+
correlation_id: 'Correlation',
|
|
176
|
+
failure_code : 'Failure code',
|
|
177
|
+
failure_reason: 'Failure reason',
|
|
178
|
+
},
|
|
179
|
+
pt: {
|
|
180
|
+
event_id : 'ID',
|
|
181
|
+
event_uuid : 'UUID',
|
|
182
|
+
type : 'Type',
|
|
183
|
+
subject_type : 'Element type',
|
|
184
|
+
subject_id : 'Element',
|
|
185
|
+
action : 'Action',
|
|
186
|
+
outcome : 'Outcome',
|
|
187
|
+
actor_type : 'Actor type',
|
|
188
|
+
actor_id : 'Actor',
|
|
189
|
+
team_id : 'Team',
|
|
190
|
+
project_id : 'Project',
|
|
191
|
+
project_name : 'Project',
|
|
192
|
+
occurred_at : 'Occurred at',
|
|
193
|
+
received_at : 'Received at',
|
|
194
|
+
correlation_id: 'Correlation',
|
|
195
|
+
failure_code : 'Failure code',
|
|
196
|
+
failure_reason: 'Failure reason',
|
|
197
|
+
},
|
|
198
|
+
tt: {
|
|
199
|
+
event_id : 'ID',
|
|
200
|
+
event_uuid : 'UUID',
|
|
201
|
+
type : 'Type',
|
|
202
|
+
subject_type : 'Element type',
|
|
203
|
+
subject_id : 'Element',
|
|
204
|
+
action : 'Action',
|
|
205
|
+
outcome : 'Outcome',
|
|
206
|
+
actor_type : 'Actor type',
|
|
207
|
+
actor_id : 'Actor',
|
|
208
|
+
team_id : 'Team',
|
|
209
|
+
project_id : 'Project',
|
|
210
|
+
project_name : 'Project',
|
|
211
|
+
occurred_at : 'Occurred at',
|
|
212
|
+
received_at : 'Received at',
|
|
213
|
+
correlation_id: 'Correlation',
|
|
214
|
+
failure_code : 'Failure code',
|
|
215
|
+
failure_reason: 'Failure reason',
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
enum_value_translate_matrix: {
|
|
220
|
+
action: {
|
|
221
|
+
en: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
222
|
+
ru: { CREATE: 'Создание', UPDATE: 'Изменение', DELETE: 'Удаление' },
|
|
223
|
+
de: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
224
|
+
ar: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
225
|
+
es: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
226
|
+
fr: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
227
|
+
hy: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
228
|
+
it: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
229
|
+
pl: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
230
|
+
pt: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
231
|
+
tt: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
|
|
232
|
+
},
|
|
233
|
+
outcome: {
|
|
234
|
+
en: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
235
|
+
ru: { SUCCESS: 'Успех', FAILURE: 'Ошибка' },
|
|
236
|
+
de: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
237
|
+
ar: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
238
|
+
es: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
239
|
+
fr: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
240
|
+
hy: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
241
|
+
it: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
242
|
+
pl: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
243
|
+
pt: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
244
|
+
tt: { SUCCESS: 'Success', FAILURE: 'Failure' },
|
|
245
|
+
},
|
|
246
|
+
actor_type: {
|
|
247
|
+
en: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
248
|
+
ru: { USER: 'Пользователь', SYSTEM: 'Система', SERVICE: 'Сервис' },
|
|
249
|
+
de: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
250
|
+
ar: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
251
|
+
es: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
252
|
+
fr: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
253
|
+
hy: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
254
|
+
it: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
255
|
+
pl: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
256
|
+
pt: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
257
|
+
tt: { USER: 'User', SYSTEM: 'System', SERVICE: 'Service' },
|
|
258
|
+
},
|
|
259
|
+
subject_type: {
|
|
260
|
+
en: {
|
|
261
|
+
team_management : 'Team management',
|
|
262
|
+
team_member : 'Team member',
|
|
263
|
+
project : 'Project',
|
|
264
|
+
test_plan : 'Test plan',
|
|
265
|
+
test_case : 'Test case',
|
|
266
|
+
test_case_step : 'Test case step',
|
|
267
|
+
test_suite : 'Test suite',
|
|
268
|
+
test_run : 'Test run',
|
|
269
|
+
test_run_result : 'Test run result',
|
|
270
|
+
task : 'Task',
|
|
271
|
+
bug : 'Bug',
|
|
272
|
+
bug_relation : 'Bug relation',
|
|
273
|
+
test_account : 'Test account',
|
|
274
|
+
user_profile : 'User profile',
|
|
275
|
+
text_document : 'Text document',
|
|
276
|
+
text_document_folder : 'Text document folder',
|
|
277
|
+
execution_context : 'Execution context',
|
|
278
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
279
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
280
|
+
},
|
|
281
|
+
ru: {
|
|
282
|
+
team_management : 'Управление командой',
|
|
283
|
+
team_member : 'Участник команды',
|
|
284
|
+
project : 'Проект',
|
|
285
|
+
test_plan : 'Тест-план',
|
|
286
|
+
test_case : 'Тест-кейс',
|
|
287
|
+
test_case_step : 'Шаг тест-кейса',
|
|
288
|
+
test_suite : 'Тест-сьют',
|
|
289
|
+
test_run : 'Тестовый прогон',
|
|
290
|
+
test_run_result : 'Результат прогона',
|
|
291
|
+
task : 'Задача',
|
|
292
|
+
bug : 'Баг',
|
|
293
|
+
bug_relation : 'Связь бага',
|
|
294
|
+
test_account : 'Тестовый аккаунт',
|
|
295
|
+
user_profile : 'Профиль пользователя',
|
|
296
|
+
text_document : 'Текстовый документ',
|
|
297
|
+
text_document_folder : 'Папка документов',
|
|
298
|
+
execution_context : 'Контекст выполнения',
|
|
299
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
300
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
301
|
+
},
|
|
302
|
+
de: {
|
|
303
|
+
team_management : 'Team management',
|
|
304
|
+
team_member : 'Team member',
|
|
305
|
+
project : 'Project',
|
|
306
|
+
test_plan : 'Test plan',
|
|
307
|
+
test_case : 'Test case',
|
|
308
|
+
test_case_step : 'Test case step',
|
|
309
|
+
test_suite : 'Test suite',
|
|
310
|
+
test_run : 'Test run',
|
|
311
|
+
test_run_result : 'Test run result',
|
|
312
|
+
task : 'Task',
|
|
313
|
+
bug : 'Bug',
|
|
314
|
+
bug_relation : 'Bug relation',
|
|
315
|
+
test_account : 'Test account',
|
|
316
|
+
user_profile : 'User profile',
|
|
317
|
+
text_document : 'Text document',
|
|
318
|
+
text_document_folder : 'Text document folder',
|
|
319
|
+
execution_context : 'Execution context',
|
|
320
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
321
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
322
|
+
},
|
|
323
|
+
ar: {
|
|
324
|
+
team_management : 'Team management',
|
|
325
|
+
team_member : 'Team member',
|
|
326
|
+
project : 'Project',
|
|
327
|
+
test_plan : 'Test plan',
|
|
328
|
+
test_case : 'Test case',
|
|
329
|
+
test_case_step : 'Test case step',
|
|
330
|
+
test_suite : 'Test suite',
|
|
331
|
+
test_run : 'Test run',
|
|
332
|
+
test_run_result : 'Test run result',
|
|
333
|
+
task : 'Task',
|
|
334
|
+
bug : 'Bug',
|
|
335
|
+
bug_relation : 'Bug relation',
|
|
336
|
+
test_account : 'Test account',
|
|
337
|
+
user_profile : 'User profile',
|
|
338
|
+
text_document : 'Text document',
|
|
339
|
+
text_document_folder : 'Text document folder',
|
|
340
|
+
execution_context : 'Execution context',
|
|
341
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
342
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
343
|
+
},
|
|
344
|
+
es: {
|
|
345
|
+
team_management : 'Team management',
|
|
346
|
+
team_member : 'Team member',
|
|
347
|
+
project : 'Project',
|
|
348
|
+
test_plan : 'Test plan',
|
|
349
|
+
test_case : 'Test case',
|
|
350
|
+
test_case_step : 'Test case step',
|
|
351
|
+
test_suite : 'Test suite',
|
|
352
|
+
test_run : 'Test run',
|
|
353
|
+
test_run_result : 'Test run result',
|
|
354
|
+
task : 'Task',
|
|
355
|
+
bug : 'Bug',
|
|
356
|
+
bug_relation : 'Bug relation',
|
|
357
|
+
test_account : 'Test account',
|
|
358
|
+
user_profile : 'User profile',
|
|
359
|
+
text_document : 'Text document',
|
|
360
|
+
text_document_folder : 'Text document folder',
|
|
361
|
+
execution_context : 'Execution context',
|
|
362
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
363
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
364
|
+
},
|
|
365
|
+
fr: {
|
|
366
|
+
team_management : 'Team management',
|
|
367
|
+
team_member : 'Team member',
|
|
368
|
+
project : 'Project',
|
|
369
|
+
test_plan : 'Test plan',
|
|
370
|
+
test_case : 'Test case',
|
|
371
|
+
test_case_step : 'Test case step',
|
|
372
|
+
test_suite : 'Test suite',
|
|
373
|
+
test_run : 'Test run',
|
|
374
|
+
test_run_result : 'Test run result',
|
|
375
|
+
task : 'Task',
|
|
376
|
+
bug : 'Bug',
|
|
377
|
+
bug_relation : 'Bug relation',
|
|
378
|
+
test_account : 'Test account',
|
|
379
|
+
user_profile : 'User profile',
|
|
380
|
+
text_document : 'Text document',
|
|
381
|
+
text_document_folder : 'Text document folder',
|
|
382
|
+
execution_context : 'Execution context',
|
|
383
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
384
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
385
|
+
},
|
|
386
|
+
hy: {
|
|
387
|
+
team_management : 'Team management',
|
|
388
|
+
team_member : 'Team member',
|
|
389
|
+
project : 'Project',
|
|
390
|
+
test_plan : 'Test plan',
|
|
391
|
+
test_case : 'Test case',
|
|
392
|
+
test_case_step : 'Test case step',
|
|
393
|
+
test_suite : 'Test suite',
|
|
394
|
+
test_run : 'Test run',
|
|
395
|
+
test_run_result : 'Test run result',
|
|
396
|
+
task : 'Task',
|
|
397
|
+
bug : 'Bug',
|
|
398
|
+
bug_relation : 'Bug relation',
|
|
399
|
+
test_account : 'Test account',
|
|
400
|
+
user_profile : 'User profile',
|
|
401
|
+
text_document : 'Text document',
|
|
402
|
+
text_document_folder : 'Text document folder',
|
|
403
|
+
execution_context : 'Execution context',
|
|
404
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
405
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
406
|
+
},
|
|
407
|
+
it: {
|
|
408
|
+
team_management : 'Team management',
|
|
409
|
+
team_member : 'Team member',
|
|
410
|
+
project : 'Project',
|
|
411
|
+
test_plan : 'Test plan',
|
|
412
|
+
test_case : 'Test case',
|
|
413
|
+
test_case_step : 'Test case step',
|
|
414
|
+
test_suite : 'Test suite',
|
|
415
|
+
test_run : 'Test run',
|
|
416
|
+
test_run_result : 'Test run result',
|
|
417
|
+
task : 'Task',
|
|
418
|
+
bug : 'Bug',
|
|
419
|
+
bug_relation : 'Bug relation',
|
|
420
|
+
test_account : 'Test account',
|
|
421
|
+
user_profile : 'User profile',
|
|
422
|
+
text_document : 'Text document',
|
|
423
|
+
text_document_folder : 'Text document folder',
|
|
424
|
+
execution_context : 'Execution context',
|
|
425
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
426
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
427
|
+
},
|
|
428
|
+
pl: {
|
|
429
|
+
team_management : 'Team management',
|
|
430
|
+
team_member : 'Team member',
|
|
431
|
+
project : 'Project',
|
|
432
|
+
test_plan : 'Test plan',
|
|
433
|
+
test_case : 'Test case',
|
|
434
|
+
test_case_step : 'Test case step',
|
|
435
|
+
test_suite : 'Test suite',
|
|
436
|
+
test_run : 'Test run',
|
|
437
|
+
test_run_result : 'Test run result',
|
|
438
|
+
task : 'Task',
|
|
439
|
+
bug : 'Bug',
|
|
440
|
+
bug_relation : 'Bug relation',
|
|
441
|
+
test_account : 'Test account',
|
|
442
|
+
user_profile : 'User profile',
|
|
443
|
+
text_document : 'Text document',
|
|
444
|
+
text_document_folder : 'Text document folder',
|
|
445
|
+
execution_context : 'Execution context',
|
|
446
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
447
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
448
|
+
},
|
|
449
|
+
pt: {
|
|
450
|
+
team_management : 'Team management',
|
|
451
|
+
team_member : 'Team member',
|
|
452
|
+
project : 'Project',
|
|
453
|
+
test_plan : 'Test plan',
|
|
454
|
+
test_case : 'Test case',
|
|
455
|
+
test_case_step : 'Test case step',
|
|
456
|
+
test_suite : 'Test suite',
|
|
457
|
+
test_run : 'Test run',
|
|
458
|
+
test_run_result : 'Test run result',
|
|
459
|
+
task : 'Task',
|
|
460
|
+
bug : 'Bug',
|
|
461
|
+
bug_relation : 'Bug relation',
|
|
462
|
+
test_account : 'Test account',
|
|
463
|
+
user_profile : 'User profile',
|
|
464
|
+
text_document : 'Text document',
|
|
465
|
+
text_document_folder : 'Text document folder',
|
|
466
|
+
execution_context : 'Execution context',
|
|
467
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
468
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
469
|
+
},
|
|
470
|
+
tt: {
|
|
471
|
+
team_management : 'Team management',
|
|
472
|
+
team_member : 'Team member',
|
|
473
|
+
project : 'Project',
|
|
474
|
+
test_plan : 'Test plan',
|
|
475
|
+
test_case : 'Test case',
|
|
476
|
+
test_case_step : 'Test case step',
|
|
477
|
+
test_suite : 'Test suite',
|
|
478
|
+
test_run : 'Test run',
|
|
479
|
+
test_run_result : 'Test run result',
|
|
480
|
+
task : 'Task',
|
|
481
|
+
bug : 'Bug',
|
|
482
|
+
bug_relation : 'Bug relation',
|
|
483
|
+
test_account : 'Test account',
|
|
484
|
+
user_profile : 'User profile',
|
|
485
|
+
text_document : 'Text document',
|
|
486
|
+
text_document_folder : 'Text document folder',
|
|
487
|
+
execution_context : 'Execution context',
|
|
488
|
+
browser_tools_util_execution : 'Browser tools execution',
|
|
489
|
+
browser_tools_screenshot_multi : 'Screenshot Multi',
|
|
490
|
+
},
|
|
491
|
+
},
|
|
492
|
+
},
|
|
493
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { familyGeneralElement } from "../core/0_familyGeneralElement.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Базовый класс семейства иммутабельных доменных событий (event-service).
|
|
6
|
+
*
|
|
7
|
+
* Каналы activity / changelog / integration — политики чтения над одним типом,
|
|
8
|
+
* не отдельные классы SDK.
|
|
9
|
+
*
|
|
10
|
+
* @version v.1.1 (26/07/2026)
|
|
11
|
+
*/
|
|
12
|
+
export class familyEvent extends familyGeneralElement
|
|
13
|
+
{
|
|
14
|
+
/**
|
|
15
|
+
* @returns {string[]}
|
|
16
|
+
*/
|
|
17
|
+
static get_action_values()
|
|
18
|
+
{
|
|
19
|
+
return ['CREATE', 'UPDATE', 'DELETE'];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @returns {string[]}
|
|
25
|
+
*/
|
|
26
|
+
static get_outcome_values()
|
|
27
|
+
{
|
|
28
|
+
return ['SUCCESS', 'FAILURE'];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @returns {string[]}
|
|
34
|
+
*/
|
|
35
|
+
static get_actor_type_values()
|
|
36
|
+
{
|
|
37
|
+
return ['USER', 'SYSTEM', 'SERVICE'];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Каталог subject_type (= api_key), совпадает с seed event-service.
|
|
43
|
+
*
|
|
44
|
+
* @returns {string[]}
|
|
45
|
+
*/
|
|
46
|
+
static get_subject_type_values()
|
|
47
|
+
{
|
|
48
|
+
return [
|
|
49
|
+
'team_management',
|
|
50
|
+
'team_member',
|
|
51
|
+
'project',
|
|
52
|
+
'test_plan',
|
|
53
|
+
'test_case',
|
|
54
|
+
'test_case_step',
|
|
55
|
+
'test_suite',
|
|
56
|
+
'test_run',
|
|
57
|
+
'test_run_result',
|
|
58
|
+
'task',
|
|
59
|
+
'bug',
|
|
60
|
+
'bug_relation',
|
|
61
|
+
'test_account',
|
|
62
|
+
'user_profile',
|
|
63
|
+
'text_document',
|
|
64
|
+
'text_document_folder',
|
|
65
|
+
'execution_context',
|
|
66
|
+
'browser_tools_util_execution',
|
|
67
|
+
'browser_tools_screenshot_multi',
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { familyEvent } from "./familyEvent.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
import { typeEvent_i18n } from "../element_translate/typeEvent.i18n.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Иммутабельный факт CUD-события (конверт event-service).
|
|
8
|
+
*
|
|
9
|
+
* Только чтение: ApiService.event.search({ filters, options }).
|
|
10
|
+
* Create / update / delete с клиента не поддерживаются.
|
|
11
|
+
* options.add: subjects | actors | projects | field_changes (гидрация на main).
|
|
12
|
+
* @version v.1.3 (26/07/2026)
|
|
13
|
+
*/
|
|
14
|
+
export class typeEvent extends familyEvent
|
|
15
|
+
{
|
|
16
|
+
event_id;
|
|
17
|
+
event_uuid;
|
|
18
|
+
type;
|
|
19
|
+
producer;
|
|
20
|
+
source;
|
|
21
|
+
subject_type;
|
|
22
|
+
subject_id;
|
|
23
|
+
action;
|
|
24
|
+
outcome;
|
|
25
|
+
failure_code;
|
|
26
|
+
failure_reason;
|
|
27
|
+
actor_type;
|
|
28
|
+
actor_id;
|
|
29
|
+
team_id;
|
|
30
|
+
project_id;
|
|
31
|
+
occurred_at;
|
|
32
|
+
received_at;
|
|
33
|
+
correlation_id;
|
|
34
|
+
schema_version;
|
|
35
|
+
field_changes;
|
|
36
|
+
|
|
37
|
+
primary_key = 'event_id';
|
|
38
|
+
api_key = 'event';
|
|
39
|
+
|
|
40
|
+
structure_scheme = {
|
|
41
|
+
event_id : 'integer | require',
|
|
42
|
+
event_uuid : 'string | require',
|
|
43
|
+
type : 'string | require',
|
|
44
|
+
producer : 'string | optional',
|
|
45
|
+
source : 'string | optional',
|
|
46
|
+
subject_type : 'string | enum | require',
|
|
47
|
+
subject_id : 'mixed | require',
|
|
48
|
+
action : 'string | enum | require',
|
|
49
|
+
outcome : 'string | enum | require',
|
|
50
|
+
failure_code : 'integer | optional',
|
|
51
|
+
failure_reason : 'string | optional',
|
|
52
|
+
actor_type : 'string | enum | optional',
|
|
53
|
+
actor_id : 'mixed | optional',
|
|
54
|
+
team_id : 'integer | optional',
|
|
55
|
+
project_id : 'mixed | optional',
|
|
56
|
+
occurred_at : 'timestamp | require',
|
|
57
|
+
received_at : 'timestamp | require',
|
|
58
|
+
correlation_id : 'string | optional',
|
|
59
|
+
schema_version : 'integer | optional',
|
|
60
|
+
field_changes : 'array | optional',
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
available_enum_values = {
|
|
64
|
+
action : familyEvent.get_action_values(),
|
|
65
|
+
outcome : familyEvent.get_outcome_values(),
|
|
66
|
+
actor_type : familyEvent.get_actor_type_values(),
|
|
67
|
+
subject_type : familyEvent.get_subject_type_values(),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
attribute_name_translate_matrix = typeEvent_i18n.attribute_name_translate_matrix;
|
|
71
|
+
|
|
72
|
+
enum_value_translate_matrix = typeEvent_i18n.enum_value_translate_matrix;
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @param {object|false|undefined} data
|
|
77
|
+
*/
|
|
78
|
+
constructor(data = false)
|
|
79
|
+
{
|
|
80
|
+
super();
|
|
81
|
+
|
|
82
|
+
if (data && is_object(data))
|
|
83
|
+
{
|
|
84
|
+
_.mapObject(data, (value, key) =>
|
|
85
|
+
{
|
|
86
|
+
if (this.hasOwnProperty(key))
|
|
87
|
+
{
|
|
88
|
+
this[key] = value;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
}
|