complexqa_frontend_core 1.21.1 → 1.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/publish/api/index.js +18 -16
- package/publish/api/util/browser_tools_util_execution_api.js +108 -0
- package/publish/index.js +8 -0
- package/publish/types/element_translate/_familyUtil.i18n.js +68 -0
- package/publish/types/element_translate/typeUtilExecution.i18n.js +49 -0
- package/publish/types/element_translate/typeUtilExecutionScreenshotMulti.i18n.js +43 -0
- package/publish/types/family_utils/familyUtil.js +43 -0
- package/publish/types/family_utils/typeUtilExecution.js +153 -0
- package/publish/types/family_utils/typeUtilExecutionEvent.js +56 -0
- package/publish/types/family_utils/typeUtilExecutionScreenshotMulti.js +72 -0
- package/publish/types/family_utils/typeUtilExecutionScreenshotMultiCapture.js +57 -0
- package/publish/types/family_utils/typeUtilExecutionScreenshotMultiCaptureError.js +49 -0
- package/publish/types/family_utils/typeUtilExecutionScreenshotMultiScreenshot.js +57 -0
package/package.json
CHANGED
package/publish/api/index.js
CHANGED
|
@@ -20,6 +20,7 @@ import { ExecutionContextApi } from "./context/context_execution_general_api.js"
|
|
|
20
20
|
import { ContextLocaleApi } from "./context/context_locale_api.js";
|
|
21
21
|
import { ContextOsApi } from "./context/context_os_api.js";
|
|
22
22
|
import { ContextScreenResolutionApi } from "./context/context_screen_resolution_api.js";
|
|
23
|
+
import { BrowserToolsUtilExecutionApi } from "./util/browser_tools_util_execution_api.js";
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Обертка над axios
|
|
@@ -141,22 +142,23 @@ export class Api
|
|
|
141
142
|
|
|
142
143
|
//echo({payload});
|
|
143
144
|
|
|
144
|
-
this.team_management
|
|
145
|
-
this.team_member
|
|
146
|
-
this.test_plan
|
|
147
|
-
this.project
|
|
148
|
-
this.service
|
|
149
|
-
this.test_case
|
|
150
|
-
this.test_case_step
|
|
151
|
-
this.test_suite
|
|
152
|
-
this.test_run
|
|
153
|
-
this.test_run_result
|
|
154
|
-
this.user_profile
|
|
155
|
-
this.task
|
|
156
|
-
this.test_account
|
|
157
|
-
this.bug
|
|
158
|
-
this.bug_relation
|
|
159
|
-
this.execution_context
|
|
145
|
+
this.team_management = new TeamManagementApi(payload);
|
|
146
|
+
this.team_member = new TeamMemberApi(payload);
|
|
147
|
+
this.test_plan = new TestPlanApi(payload);
|
|
148
|
+
this.project = new ProjectApi(payload);
|
|
149
|
+
this.service = new ServiceApi(payload);
|
|
150
|
+
this.test_case = new TestCaseApi(payload);
|
|
151
|
+
this.test_case_step = new TestCaseStepApi(payload);
|
|
152
|
+
this.test_suite = new TestSuiteApi(payload);
|
|
153
|
+
this.test_run = new TestRunApi(payload);
|
|
154
|
+
this.test_run_result = new TestRunResultApi(payload);
|
|
155
|
+
this.user_profile = new UserProfileApi(payload);
|
|
156
|
+
this.task = new TaskApi(payload);
|
|
157
|
+
this.test_account = new TestAccountApi(payload);
|
|
158
|
+
this.bug = new BugApi(payload);
|
|
159
|
+
this.bug_relation = new BugRelationApi(payload);
|
|
160
|
+
this.execution_context = new ExecutionContextApi(payload);
|
|
161
|
+
this.browser_tools_util_execution = new BrowserToolsUtilExecutionApi(payload);
|
|
160
162
|
|
|
161
163
|
this.reference = this.bootstrap_reference(payload)
|
|
162
164
|
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ApiAbstractElementClass } from "../api_abstract_element_class.js";
|
|
2
|
+
import { is_array } from "../../utils/utils.js";
|
|
3
|
+
import { typeUtilExecution } from "../../types/family_utils/typeUtilExecution.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Browser Tools — util executions (screenshot.multi).
|
|
8
|
+
*
|
|
9
|
+
* Base path: /web_api/util/browser_tools/util_executions
|
|
10
|
+
*
|
|
11
|
+
* @version v.1.0 (24/06/2026)
|
|
12
|
+
*/
|
|
13
|
+
export class BrowserToolsUtilExecutionApi extends ApiAbstractElementClass
|
|
14
|
+
{
|
|
15
|
+
module_prefix = 'util/browser_tools/util_executions';
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
constructor(options)
|
|
19
|
+
{
|
|
20
|
+
super(options);
|
|
21
|
+
this.set_element_class_instance(typeUtilExecution);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* GET listing?project_id=
|
|
27
|
+
*
|
|
28
|
+
* @param {object} payload
|
|
29
|
+
*
|
|
30
|
+
* @returns {Promise<{payload, response: object}>}
|
|
31
|
+
*/
|
|
32
|
+
async listing(payload)
|
|
33
|
+
{
|
|
34
|
+
let url = `/${ this.api_prefix }/${ this.module_prefix }/listing`;
|
|
35
|
+
|
|
36
|
+
payload = this.handle_request_payload(payload);
|
|
37
|
+
let response = this.api_request(url, payload);
|
|
38
|
+
response = this.handle_response(response, false);
|
|
39
|
+
|
|
40
|
+
if (response?.items && is_array(response.items))
|
|
41
|
+
{
|
|
42
|
+
response.items = response.items.map((row) => new typeUtilExecution(row));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
response: response,
|
|
47
|
+
payload : payload,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* GET details/{util_execution_id}?project_id=
|
|
54
|
+
*
|
|
55
|
+
* @param {object} payload
|
|
56
|
+
*
|
|
57
|
+
* @returns {Promise<{payload, response: typeUtilExecution|false}>}
|
|
58
|
+
*/
|
|
59
|
+
async details(payload)
|
|
60
|
+
{
|
|
61
|
+
let util_execution_id = payload?.util_execution_id;
|
|
62
|
+
|
|
63
|
+
if (!util_execution_id)
|
|
64
|
+
{
|
|
65
|
+
throw new Error('util_execution_id is required for details');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
let url = `/${ this.api_prefix }/${ this.module_prefix }/details/${ util_execution_id }`;
|
|
69
|
+
|
|
70
|
+
payload = this.handle_request_payload(payload);
|
|
71
|
+
let response = this.api_request(url, payload);
|
|
72
|
+
response = this.handle_response(response, false);
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
response: typeUtilExecution.hydrateDetails(response),
|
|
76
|
+
payload : payload,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* GET status/{util_execution_id}?project_id=
|
|
83
|
+
*
|
|
84
|
+
* @param {object} payload
|
|
85
|
+
*
|
|
86
|
+
* @returns {Promise<{payload, response: typeUtilExecution}>}
|
|
87
|
+
*/
|
|
88
|
+
async status(payload)
|
|
89
|
+
{
|
|
90
|
+
let util_execution_id = payload?.util_execution_id;
|
|
91
|
+
|
|
92
|
+
if (!util_execution_id)
|
|
93
|
+
{
|
|
94
|
+
throw new Error('util_execution_id is required for status');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
let url = `/${ this.api_prefix }/${ this.module_prefix }/status/${ util_execution_id }`;
|
|
98
|
+
|
|
99
|
+
payload = this.handle_request_payload(payload);
|
|
100
|
+
let response = this.api_request(url, payload);
|
|
101
|
+
response = this.handle_response(response, false);
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
response: new typeUtilExecution(response),
|
|
105
|
+
payload : payload,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
package/publish/index.js
CHANGED
|
@@ -28,6 +28,14 @@ export { typeLocaleContext } from './types/family_context/typeLocaleContext.js';
|
|
|
28
28
|
export { typeDeploymentTargetContext } from './types/family_context/typeDeploymentTargetContext.js';
|
|
29
29
|
export { typeExecutionContext } from './types/family_context/typeExecutionContext.js';
|
|
30
30
|
|
|
31
|
+
export { familyUtil } from './types/family_utils/familyUtil.js';
|
|
32
|
+
export { typeUtilExecution } from './types/family_utils/typeUtilExecution.js';
|
|
33
|
+
export { typeUtilExecutionScreenshotMulti } from './types/family_utils/typeUtilExecutionScreenshotMulti.js';
|
|
34
|
+
export { typeUtilExecutionScreenshotMultiCapture } from './types/family_utils/typeUtilExecutionScreenshotMultiCapture.js';
|
|
35
|
+
export { typeUtilExecutionScreenshotMultiScreenshot } from './types/family_utils/typeUtilExecutionScreenshotMultiScreenshot.js';
|
|
36
|
+
export { typeUtilExecutionScreenshotMultiCaptureError } from './types/family_utils/typeUtilExecutionScreenshotMultiCaptureError.js';
|
|
37
|
+
export { typeUtilExecutionEvent } from './types/family_utils/typeUtilExecutionEvent.js';
|
|
38
|
+
|
|
31
39
|
export { typeUser } from './types/family_elements/typeUser.js';
|
|
32
40
|
export { typeTeam } from './types/family_elements/typeTeam.js';
|
|
33
41
|
export { typeTeamMember } from './types/family_elements/typeTeamMember.js';
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Общие переводы для family_utils.
|
|
3
|
+
*/
|
|
4
|
+
export const familyUtil_i18n = {
|
|
5
|
+
execution_status: {
|
|
6
|
+
en: {
|
|
7
|
+
pending : 'Pending',
|
|
8
|
+
submit_failed: 'Submit failed',
|
|
9
|
+
queued : 'Queued',
|
|
10
|
+
completed : 'Completed',
|
|
11
|
+
failed : 'Failed',
|
|
12
|
+
},
|
|
13
|
+
ru: {
|
|
14
|
+
pending : 'Ожидание',
|
|
15
|
+
submit_failed: 'Ошибка отправки',
|
|
16
|
+
queued : 'В очереди',
|
|
17
|
+
completed : 'Завершено',
|
|
18
|
+
failed : 'Ошибка',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
event_type: {
|
|
23
|
+
en: {
|
|
24
|
+
pending : 'Pending',
|
|
25
|
+
submit_failed : 'Submit failed',
|
|
26
|
+
queued : 'Queued',
|
|
27
|
+
completed : 'Completed',
|
|
28
|
+
failed : 'Failed',
|
|
29
|
+
callback_received: 'Callback received',
|
|
30
|
+
deleted : 'Deleted',
|
|
31
|
+
},
|
|
32
|
+
ru: {
|
|
33
|
+
pending : 'Ожидание',
|
|
34
|
+
submit_failed : 'Ошибка отправки',
|
|
35
|
+
queued : 'В очереди',
|
|
36
|
+
completed : 'Завершено',
|
|
37
|
+
failed : 'Ошибка',
|
|
38
|
+
callback_received: 'Получен callback',
|
|
39
|
+
deleted : 'Удалено',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
capture_matrix_preset: {
|
|
44
|
+
en: {
|
|
45
|
+
default: 'Default matrix',
|
|
46
|
+
custom : 'Custom matrix',
|
|
47
|
+
},
|
|
48
|
+
ru: {
|
|
49
|
+
default: 'Матрица по умолчанию',
|
|
50
|
+
custom : 'Своя матрица',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
wait_until: {
|
|
55
|
+
en: {
|
|
56
|
+
load : 'Load',
|
|
57
|
+
domcontentloaded: 'DOM content loaded',
|
|
58
|
+
networkidle : 'Network idle',
|
|
59
|
+
commit : 'Commit',
|
|
60
|
+
},
|
|
61
|
+
ru: {
|
|
62
|
+
load : 'Load',
|
|
63
|
+
domcontentloaded: 'DOM content loaded',
|
|
64
|
+
networkidle : 'Network idle',
|
|
65
|
+
commit : 'Commit',
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { familyUtil_i18n } from './_familyUtil.i18n.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Переводы для typeUtilExecution.
|
|
5
|
+
*
|
|
6
|
+
* @see typeUtilExecution
|
|
7
|
+
*/
|
|
8
|
+
export const typeUtilExecution_i18n = {
|
|
9
|
+
attribute_name_translate_matrix: {
|
|
10
|
+
en: {
|
|
11
|
+
util_execution_id : 'ID',
|
|
12
|
+
team_id : 'Team',
|
|
13
|
+
project_id : 'Project',
|
|
14
|
+
user_id : 'User',
|
|
15
|
+
execution_status : 'Status',
|
|
16
|
+
external_job_id : 'External job',
|
|
17
|
+
error_message : 'Error',
|
|
18
|
+
submitted_at : 'Submitted at',
|
|
19
|
+
completed_at : 'Completed at',
|
|
20
|
+
created_at : 'Created at',
|
|
21
|
+
page_url : 'Page URL',
|
|
22
|
+
screenshot_count : 'Screenshots',
|
|
23
|
+
captures_total : 'Captures total',
|
|
24
|
+
captures_succeeded: 'Captures succeeded',
|
|
25
|
+
captures_failed : 'Captures failed',
|
|
26
|
+
},
|
|
27
|
+
ru: {
|
|
28
|
+
util_execution_id : 'ID',
|
|
29
|
+
team_id : 'Команда',
|
|
30
|
+
project_id : 'Проект',
|
|
31
|
+
user_id : 'Пользователь',
|
|
32
|
+
execution_status : 'Статус',
|
|
33
|
+
external_job_id : 'Внешняя задача',
|
|
34
|
+
error_message : 'Ошибка',
|
|
35
|
+
submitted_at : 'Отправлено',
|
|
36
|
+
completed_at : 'Завершено',
|
|
37
|
+
created_at : 'Создано',
|
|
38
|
+
page_url : 'URL страницы',
|
|
39
|
+
screenshot_count : 'Скриншоты',
|
|
40
|
+
captures_total : 'Всего захватов',
|
|
41
|
+
captures_succeeded: 'Успешных захватов',
|
|
42
|
+
captures_failed : 'Ошибок захвата',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
enum_value_translate_matrix: {
|
|
47
|
+
execution_status: familyUtil_i18n.execution_status,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { familyUtil_i18n } from './_familyUtil.i18n.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Переводы для typeUtilExecutionScreenshotMulti.
|
|
5
|
+
*
|
|
6
|
+
* @see typeUtilExecutionScreenshotMulti
|
|
7
|
+
*/
|
|
8
|
+
export const typeUtilExecutionScreenshotMulti_i18n = {
|
|
9
|
+
attribute_name_translate_matrix: {
|
|
10
|
+
en: {
|
|
11
|
+
util_execution_id : 'Execution',
|
|
12
|
+
page_url : 'Page URL',
|
|
13
|
+
wait_until : 'Wait until',
|
|
14
|
+
full_page : 'Full page',
|
|
15
|
+
navigation_timeout_milliseconds: 'Navigation timeout (ms)',
|
|
16
|
+
capture_matrix_preset : 'Capture matrix',
|
|
17
|
+
last_callback_status : 'Last callback status',
|
|
18
|
+
captures_total : 'Captures total',
|
|
19
|
+
captures_succeeded : 'Captures succeeded',
|
|
20
|
+
captures_failed : 'Captures failed',
|
|
21
|
+
duration_milliseconds : 'Duration (ms)',
|
|
22
|
+
},
|
|
23
|
+
ru: {
|
|
24
|
+
util_execution_id : 'Запуск',
|
|
25
|
+
page_url : 'URL страницы',
|
|
26
|
+
wait_until : 'Ожидание загрузки',
|
|
27
|
+
full_page : 'Полная страница',
|
|
28
|
+
navigation_timeout_milliseconds: 'Таймаут навигации (мс)',
|
|
29
|
+
capture_matrix_preset : 'Матрица захвата',
|
|
30
|
+
last_callback_status : 'Статус callback',
|
|
31
|
+
captures_total : 'Всего захватов',
|
|
32
|
+
captures_succeeded : 'Успешных захватов',
|
|
33
|
+
captures_failed : 'Ошибок захвата',
|
|
34
|
+
duration_milliseconds : 'Длительность (мс)',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
enum_value_translate_matrix: {
|
|
39
|
+
capture_matrix_preset: familyUtil_i18n.capture_matrix_preset,
|
|
40
|
+
wait_until : familyUtil_i18n.wait_until,
|
|
41
|
+
last_callback_status : familyUtil_i18n.execution_status,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { familyGeneralElement } from "../core/0_familyGeneralElement.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Базовый класс для Util Service layer (typed executions).
|
|
6
|
+
*
|
|
7
|
+
* @see docs/Utils Layer/browser-tools-util-execution-docs.MD
|
|
8
|
+
*
|
|
9
|
+
* @version v.1.0 (24/06/2026)
|
|
10
|
+
*/
|
|
11
|
+
export class familyUtil extends familyGeneralElement
|
|
12
|
+
{
|
|
13
|
+
/**
|
|
14
|
+
* @returns {string[]}
|
|
15
|
+
*/
|
|
16
|
+
static get_execution_status_values()
|
|
17
|
+
{
|
|
18
|
+
return [
|
|
19
|
+
'pending',
|
|
20
|
+
'submit_failed',
|
|
21
|
+
'queued',
|
|
22
|
+
'completed',
|
|
23
|
+
'failed',
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @returns {string[]}
|
|
30
|
+
*/
|
|
31
|
+
static get_event_type_values()
|
|
32
|
+
{
|
|
33
|
+
return [
|
|
34
|
+
'pending',
|
|
35
|
+
'submit_failed',
|
|
36
|
+
'queued',
|
|
37
|
+
'completed',
|
|
38
|
+
'failed',
|
|
39
|
+
'callback_received',
|
|
40
|
+
'deleted',
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { familyUtil } from "./familyUtil.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
import { typeUtilExecution_i18n } from "../element_translate/typeUtilExecution.i18n.js";
|
|
4
|
+
import { typeUtilExecutionScreenshotMulti } from "./typeUtilExecutionScreenshotMulti.js";
|
|
5
|
+
import { typeUtilExecutionScreenshotMultiCapture } from "./typeUtilExecutionScreenshotMultiCapture.js";
|
|
6
|
+
import { typeUtilExecutionScreenshotMultiScreenshot } from "./typeUtilExecutionScreenshotMultiScreenshot.js";
|
|
7
|
+
import { typeUtilExecutionScreenshotMultiCaptureError } from "./typeUtilExecutionScreenshotMultiCaptureError.js";
|
|
8
|
+
import { typeUtilExecutionEvent } from "./typeUtilExecutionEvent.js";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Корневая сущность util execution (Browser Tools screenshot.multi и др.).
|
|
13
|
+
*
|
|
14
|
+
* @see docs/Utils Layer/browser-tools-util-execution-docs.MD
|
|
15
|
+
*
|
|
16
|
+
* @version v.1.0 (24/06/2026)
|
|
17
|
+
*/
|
|
18
|
+
export class typeUtilExecution extends familyUtil
|
|
19
|
+
{
|
|
20
|
+
util_execution_id;
|
|
21
|
+
team_id;
|
|
22
|
+
project_id;
|
|
23
|
+
user_id;
|
|
24
|
+
|
|
25
|
+
execution_status;
|
|
26
|
+
external_job_id;
|
|
27
|
+
error_message;
|
|
28
|
+
|
|
29
|
+
submitted_at;
|
|
30
|
+
completed_at;
|
|
31
|
+
created_at;
|
|
32
|
+
|
|
33
|
+
/** Поля listing (денормализация) */
|
|
34
|
+
page_url;
|
|
35
|
+
screenshot_count;
|
|
36
|
+
|
|
37
|
+
/** Поля status (счётчики из screenshot_multi) */
|
|
38
|
+
captures_total;
|
|
39
|
+
captures_succeeded;
|
|
40
|
+
captures_failed;
|
|
41
|
+
|
|
42
|
+
/** Вложенные данные GET details */
|
|
43
|
+
screenshot_multi;
|
|
44
|
+
captures;
|
|
45
|
+
screenshots;
|
|
46
|
+
capture_errors;
|
|
47
|
+
events;
|
|
48
|
+
|
|
49
|
+
primary_key = 'util_execution_id';
|
|
50
|
+
api_key = 'browser_tools_util_execution';
|
|
51
|
+
|
|
52
|
+
structure_scheme = {
|
|
53
|
+
util_execution_id : 'integer | require',
|
|
54
|
+
team_id : 'integer | optional',
|
|
55
|
+
project_id : 'integer | require',
|
|
56
|
+
user_id : 'integer | optional',
|
|
57
|
+
execution_status : 'string | enum | require',
|
|
58
|
+
external_job_id : 'string | max:120 | optional',
|
|
59
|
+
error_message : 'string | optional',
|
|
60
|
+
submitted_at : 'timestamp | optional',
|
|
61
|
+
completed_at : 'timestamp | optional',
|
|
62
|
+
created_at : 'timestamp | optional',
|
|
63
|
+
page_url : 'string | max:2048 | optional',
|
|
64
|
+
screenshot_count : 'integer | optional',
|
|
65
|
+
captures_total : 'integer | optional',
|
|
66
|
+
captures_succeeded: 'integer | optional',
|
|
67
|
+
captures_failed : 'integer | optional',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
create_scheme = [
|
|
71
|
+
'project_id',
|
|
72
|
+
'page_url',
|
|
73
|
+
'capture_matrix_preset',
|
|
74
|
+
'captures',
|
|
75
|
+
'wait_until',
|
|
76
|
+
'full_page',
|
|
77
|
+
'navigation_timeout_milliseconds',
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
available_enum_values = {
|
|
81
|
+
execution_status: familyUtil.get_execution_status_values(),
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
enum_value_translate_matrix = typeUtilExecution_i18n.enum_value_translate_matrix;
|
|
85
|
+
|
|
86
|
+
attribute_name_translate_matrix = typeUtilExecution_i18n.attribute_name_translate_matrix;
|
|
87
|
+
|
|
88
|
+
status_color = {
|
|
89
|
+
pending : '#4D92FA',
|
|
90
|
+
submit_failed: '#E66565',
|
|
91
|
+
queued : '#009688',
|
|
92
|
+
completed : '#009688',
|
|
93
|
+
failed : '#E66565',
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @param {object|false|undefined} data
|
|
99
|
+
*/
|
|
100
|
+
constructor(data = false)
|
|
101
|
+
{
|
|
102
|
+
super();
|
|
103
|
+
|
|
104
|
+
if (data && is_object(data))
|
|
105
|
+
{
|
|
106
|
+
_.mapObject(data, (value, key) =>
|
|
107
|
+
{
|
|
108
|
+
if (key === 'screenshot_multi' && value && is_object(value))
|
|
109
|
+
{
|
|
110
|
+
this.screenshot_multi = new typeUtilExecutionScreenshotMulti(value);
|
|
111
|
+
}
|
|
112
|
+
else if (key === 'captures' && Array.isArray(value))
|
|
113
|
+
{
|
|
114
|
+
this.captures = value.map((row) => new typeUtilExecutionScreenshotMultiCapture(row));
|
|
115
|
+
}
|
|
116
|
+
else if (key === 'screenshots' && Array.isArray(value))
|
|
117
|
+
{
|
|
118
|
+
this.screenshots = value.map((row) => new typeUtilExecutionScreenshotMultiScreenshot(row));
|
|
119
|
+
}
|
|
120
|
+
else if (key === 'capture_errors' && Array.isArray(value))
|
|
121
|
+
{
|
|
122
|
+
this.capture_errors = value.map((row) => new typeUtilExecutionScreenshotMultiCaptureError(row));
|
|
123
|
+
}
|
|
124
|
+
else if (key === 'events' && Array.isArray(value))
|
|
125
|
+
{
|
|
126
|
+
this.events = value.map((row) => new typeUtilExecutionEvent(row));
|
|
127
|
+
}
|
|
128
|
+
else if (this.hasOwnProperty(key))
|
|
129
|
+
{
|
|
130
|
+
this [ key ] = value;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return this;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @param {object|false|undefined} data
|
|
141
|
+
*
|
|
142
|
+
* @returns {typeUtilExecution|false}
|
|
143
|
+
*/
|
|
144
|
+
static hydrateDetails(data)
|
|
145
|
+
{
|
|
146
|
+
if (!data || !is_object(data))
|
|
147
|
+
{
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return new typeUtilExecution(data);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { familyUtil } from "./familyUtil.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
import { familyUtil_i18n } from "../element_translate/_familyUtil.i18n.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Событие аудита util execution.
|
|
8
|
+
*
|
|
9
|
+
* @version v.1.0 (24/06/2026)
|
|
10
|
+
*/
|
|
11
|
+
export class typeUtilExecutionEvent extends familyUtil
|
|
12
|
+
{
|
|
13
|
+
util_execution_event_id;
|
|
14
|
+
util_execution_id;
|
|
15
|
+
event_type;
|
|
16
|
+
created_at;
|
|
17
|
+
|
|
18
|
+
primary_key = 'util_execution_event_id';
|
|
19
|
+
|
|
20
|
+
structure_scheme = {
|
|
21
|
+
util_execution_event_id: 'integer | optional',
|
|
22
|
+
util_execution_id : 'integer | optional',
|
|
23
|
+
event_type : 'string | enum | require',
|
|
24
|
+
created_at : 'timestamp | optional',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
available_enum_values = {
|
|
28
|
+
event_type: familyUtil.get_event_type_values(),
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
enum_value_translate_matrix = {
|
|
32
|
+
event_type: familyUtil_i18n.event_type,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @param {object|false|undefined} data
|
|
38
|
+
*/
|
|
39
|
+
constructor(data = false)
|
|
40
|
+
{
|
|
41
|
+
super();
|
|
42
|
+
|
|
43
|
+
if (data && is_object(data))
|
|
44
|
+
{
|
|
45
|
+
_.mapObject(data, (value, key) =>
|
|
46
|
+
{
|
|
47
|
+
if (this.hasOwnProperty(key))
|
|
48
|
+
{
|
|
49
|
+
this [ key ] = value;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { familyUtil } from "./familyUtil.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
import { typeUtilExecutionScreenshotMulti_i18n } from "../element_translate/typeUtilExecutionScreenshotMulti.i18n.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Параметры и результат action screenshot.multi (1:1 к util_execution).
|
|
8
|
+
*
|
|
9
|
+
* @version v.1.0 (24/06/2026)
|
|
10
|
+
*/
|
|
11
|
+
export class typeUtilExecutionScreenshotMulti extends familyUtil
|
|
12
|
+
{
|
|
13
|
+
util_execution_id;
|
|
14
|
+
page_url;
|
|
15
|
+
wait_until;
|
|
16
|
+
full_page;
|
|
17
|
+
navigation_timeout_milliseconds;
|
|
18
|
+
capture_matrix_preset;
|
|
19
|
+
last_callback_status;
|
|
20
|
+
captures_total;
|
|
21
|
+
captures_succeeded;
|
|
22
|
+
captures_failed;
|
|
23
|
+
duration_milliseconds;
|
|
24
|
+
|
|
25
|
+
primary_key = 'util_execution_id';
|
|
26
|
+
|
|
27
|
+
structure_scheme = {
|
|
28
|
+
util_execution_id : 'integer | require',
|
|
29
|
+
page_url : 'string | max:2048 | require',
|
|
30
|
+
wait_until : 'string | enum | optional',
|
|
31
|
+
full_page : 'integer | optional',
|
|
32
|
+
navigation_timeout_milliseconds: 'integer | optional',
|
|
33
|
+
capture_matrix_preset : 'string | enum | require',
|
|
34
|
+
last_callback_status : 'string | enum | optional',
|
|
35
|
+
captures_total : 'integer | optional',
|
|
36
|
+
captures_succeeded : 'integer | optional',
|
|
37
|
+
captures_failed : 'integer | optional',
|
|
38
|
+
duration_milliseconds : 'integer | optional',
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
available_enum_values = {
|
|
42
|
+
capture_matrix_preset: [ 'default', 'custom' ],
|
|
43
|
+
wait_until : [ 'load', 'domcontentloaded', 'networkidle', 'commit' ],
|
|
44
|
+
last_callback_status : [ 'completed', 'failed' ],
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
enum_value_translate_matrix = typeUtilExecutionScreenshotMulti_i18n.enum_value_translate_matrix;
|
|
48
|
+
|
|
49
|
+
attribute_name_translate_matrix = typeUtilExecutionScreenshotMulti_i18n.attribute_name_translate_matrix;
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @param {object|false|undefined} data
|
|
54
|
+
*/
|
|
55
|
+
constructor(data = false)
|
|
56
|
+
{
|
|
57
|
+
super();
|
|
58
|
+
|
|
59
|
+
if (data && is_object(data))
|
|
60
|
+
{
|
|
61
|
+
_.mapObject(data, (value, key) =>
|
|
62
|
+
{
|
|
63
|
+
if (this.hasOwnProperty(key))
|
|
64
|
+
{
|
|
65
|
+
this [ key ] = value;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { familyUtil } from "./familyUtil.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
import { register_type_class } from "../core/type_class_resolver.js";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Строка пользовательской матрицы захвата (browser + resolution).
|
|
8
|
+
*
|
|
9
|
+
* @version v.1.0 (24/06/2026)
|
|
10
|
+
*/
|
|
11
|
+
export class typeUtilExecutionScreenshotMultiCapture extends familyUtil
|
|
12
|
+
{
|
|
13
|
+
util_execution_screenshot_multi_capture_id;
|
|
14
|
+
util_execution_id;
|
|
15
|
+
sort_order;
|
|
16
|
+
browser_context_id;
|
|
17
|
+
screen_resolution_context_id;
|
|
18
|
+
|
|
19
|
+
primary_key = 'util_execution_screenshot_multi_capture_id';
|
|
20
|
+
|
|
21
|
+
structure_scheme = {
|
|
22
|
+
util_execution_screenshot_multi_capture_id: 'integer | optional',
|
|
23
|
+
util_execution_id : 'integer | optional',
|
|
24
|
+
sort_order : 'integer | optional',
|
|
25
|
+
browser_context_id : 'integer | typeBrowserContext | require',
|
|
26
|
+
screen_resolution_context_id : 'integer | typeScreenResolutionContext | require',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
create_scheme = [
|
|
30
|
+
'browser_context_id',
|
|
31
|
+
'screen_resolution_context_id',
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param {object|false|undefined} data
|
|
37
|
+
*/
|
|
38
|
+
constructor(data = false)
|
|
39
|
+
{
|
|
40
|
+
super();
|
|
41
|
+
|
|
42
|
+
if (data && is_object(data))
|
|
43
|
+
{
|
|
44
|
+
_.mapObject(data, (value, key) =>
|
|
45
|
+
{
|
|
46
|
+
if (this.hasOwnProperty(key))
|
|
47
|
+
{
|
|
48
|
+
this [ key ] = value;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
register_type_class('typeUtilExecutionScreenshotMultiCapture', typeUtilExecutionScreenshotMultiCapture);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { familyUtil } from "./familyUtil.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Частичная ошибка захвата screenshot.multi.
|
|
7
|
+
*
|
|
8
|
+
* @version v.1.0 (24/06/2026)
|
|
9
|
+
*/
|
|
10
|
+
export class typeUtilExecutionScreenshotMultiCaptureError extends familyUtil
|
|
11
|
+
{
|
|
12
|
+
util_execution_screenshot_multi_capture_error_id;
|
|
13
|
+
util_execution_id;
|
|
14
|
+
capture_identifier;
|
|
15
|
+
error_message;
|
|
16
|
+
sort_order;
|
|
17
|
+
|
|
18
|
+
primary_key = 'util_execution_screenshot_multi_capture_error_id';
|
|
19
|
+
|
|
20
|
+
structure_scheme = {
|
|
21
|
+
util_execution_screenshot_multi_capture_error_id: 'integer | optional',
|
|
22
|
+
util_execution_id : 'integer | optional',
|
|
23
|
+
capture_identifier : 'string | max:255 | optional',
|
|
24
|
+
error_message : 'string | require',
|
|
25
|
+
sort_order : 'integer | optional',
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @param {object|false|undefined} data
|
|
31
|
+
*/
|
|
32
|
+
constructor(data = false)
|
|
33
|
+
{
|
|
34
|
+
super();
|
|
35
|
+
|
|
36
|
+
if (data && is_object(data))
|
|
37
|
+
{
|
|
38
|
+
_.mapObject(data, (value, key) =>
|
|
39
|
+
{
|
|
40
|
+
if (this.hasOwnProperty(key))
|
|
41
|
+
{
|
|
42
|
+
this [ key ] = value;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { familyUtil } from "./familyUtil.js";
|
|
2
|
+
import { is_object } from "../../utils/utils.js";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Результирующий скриншот screenshot.multi.
|
|
7
|
+
*
|
|
8
|
+
* @version v.1.0 (24/06/2026)
|
|
9
|
+
*/
|
|
10
|
+
export class typeUtilExecutionScreenshotMultiScreenshot extends familyUtil
|
|
11
|
+
{
|
|
12
|
+
util_execution_screenshot_multi_screenshot_id;
|
|
13
|
+
util_execution_id;
|
|
14
|
+
capture_identifier;
|
|
15
|
+
file_uuid;
|
|
16
|
+
image_url;
|
|
17
|
+
width;
|
|
18
|
+
height;
|
|
19
|
+
duration_milliseconds;
|
|
20
|
+
sort_order;
|
|
21
|
+
|
|
22
|
+
primary_key = 'util_execution_screenshot_multi_screenshot_id';
|
|
23
|
+
|
|
24
|
+
structure_scheme = {
|
|
25
|
+
util_execution_screenshot_multi_screenshot_id: 'integer | optional',
|
|
26
|
+
util_execution_id : 'integer | optional',
|
|
27
|
+
capture_identifier : 'string | max:255 | require',
|
|
28
|
+
file_uuid : 'string | max:64 | optional',
|
|
29
|
+
image_url : 'string | max:2048 | optional',
|
|
30
|
+
width : 'integer | optional',
|
|
31
|
+
height : 'integer | optional',
|
|
32
|
+
duration_milliseconds : 'integer | optional',
|
|
33
|
+
sort_order : 'integer | optional',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {object|false|undefined} data
|
|
39
|
+
*/
|
|
40
|
+
constructor(data = false)
|
|
41
|
+
{
|
|
42
|
+
super();
|
|
43
|
+
|
|
44
|
+
if (data && is_object(data))
|
|
45
|
+
{
|
|
46
|
+
_.mapObject(data, (value, key) =>
|
|
47
|
+
{
|
|
48
|
+
if (this.hasOwnProperty(key))
|
|
49
|
+
{
|
|
50
|
+
this [ key ] = value;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
}
|