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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "complexqa_frontend_core",
3
- "version": "1.21.1",
3
+ "version": "1.21.2",
4
4
  "description": "core of web ",
5
5
  "type": "module",
6
6
  "exports": {
@@ -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 = new TeamManagementApi(payload);
145
- this.team_member = new TeamMemberApi(payload);
146
- this.test_plan = new TestPlanApi(payload);
147
- this.project = new ProjectApi(payload);
148
- this.service = new ServiceApi(payload);
149
- this.test_case = new TestCaseApi(payload);
150
- this.test_case_step = new TestCaseStepApi(payload);
151
- this.test_suite = new TestSuiteApi(payload);
152
- this.test_run = new TestRunApi(payload);
153
- this.test_run_result = new TestRunResultApi(payload);
154
- this.user_profile = new UserProfileApi(payload);
155
- this.task = new TaskApi(payload);
156
- this.test_account = new TestAccountApi(payload);
157
- this.bug = new BugApi(payload);
158
- this.bug_relation = new BugRelationApi(payload);
159
- this.execution_context = new ExecutionContextApi(payload);
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
+ }