complexqa_frontend_core 1.25.1 → 1.27.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.
Files changed (31) hide show
  1. package/package.json +1 -1
  2. package/publish/api/custom_property/custom_property_template_api.js +16 -0
  3. package/publish/api/custom_property_api.js +54 -0
  4. package/publish/api/custom_property_option_api.js +17 -0
  5. package/publish/api/custom_property_value_api.js +82 -0
  6. package/publish/api/index.js +12 -0
  7. package/publish/api/team_domain_api.js +62 -0
  8. package/publish/api/team_management_api.js +1 -1
  9. package/publish/api/util/url_inspect_api.js +54 -0
  10. package/publish/app_configuration/table/helpers/table_element_models.js +8 -0
  11. package/publish/app_configuration/table/sections/custom_property.js +96 -0
  12. package/publish/app_configuration/table/sections/team_domain.js +55 -0
  13. package/publish/app_configuration/table/sections/util_execution_url_inspect.js +60 -0
  14. package/publish/app_configuration/table/table_configuration.js +6 -0
  15. package/publish/index.js +5 -0
  16. package/publish/services/UserService.js +9 -0
  17. package/publish/types/core/1_familyTestDocumentation.js +8 -0
  18. package/publish/types/element_translate/typeCustomProperty.i18n.js +85 -0
  19. package/publish/types/element_translate/typeCustomPropertyValue.i18n.js +65 -0
  20. package/publish/types/element_translate/typeTeamDomain.i18n.js +71 -0
  21. package/publish/types/element_translate/typeTeamTotalStatistic.i18n.js +221 -67
  22. package/publish/types/element_translate/typeUtilExecutionUrlInspect.i18n.js +55 -0
  23. package/publish/types/element_translate/typeUtilExecutionUrlInspectCheck.i18n.js +111 -0
  24. package/publish/types/family_contracts/typeTeamTotalStatistic.js +6 -10
  25. package/publish/types/family_elements/typeCustomProperty.js +138 -0
  26. package/publish/types/family_elements/typeTeam.js +5 -2
  27. package/publish/types/family_elements/typeTeamDomain.js +172 -0
  28. package/publish/types/family_events/familyEvent.js +2 -0
  29. package/publish/types/family_relation/typeCustomPropertyValue.js +117 -0
  30. package/publish/types/family_utils/typeUtilExecutionUrlInspect.js +199 -0
  31. package/publish/types/family_utils/typeUtilExecutionUrlInspectCheck.js +100 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "complexqa_frontend_core",
3
- "version": "1.25.1",
3
+ "version": "1.27.1",
4
4
  "description": "core of web ",
5
5
  "type": "module",
6
6
  "exports": {
@@ -0,0 +1,16 @@
1
+ import { ApiAbstractReferenceClass } from '../api_abstract_reference_class.js';
2
+
3
+ /**
4
+ * System custom property templates (read-only for tenants).
5
+ *
6
+ * @version v.0.1 (15/08/2026)
7
+ */
8
+ export class CustomPropertyTemplateApi extends ApiAbstractReferenceClass
9
+ {
10
+ module_prefix = 'custom_property_template';
11
+
12
+ constructor(options)
13
+ {
14
+ super(options);
15
+ }
16
+ }
@@ -0,0 +1,54 @@
1
+ import { ApiAbstractElementClass } from './api_abstract_element_class.js';
2
+ import { typeCustomProperty } from '../types/family_elements/typeCustomProperty.js';
3
+
4
+ /**
5
+ * CRUD / Search / clone_from_templates for custom_property catalog.
6
+ * Create / update / delete / clone require ADMINISTRATOR on the server.
7
+ *
8
+ * @version v.0.1 (15/08/2026)
9
+ */
10
+ export class CustomPropertyApi extends ApiAbstractElementClass
11
+ {
12
+ module_prefix = 'custom_property';
13
+
14
+ constructor(options)
15
+ {
16
+ super(options);
17
+ this.set_element_class_instance(typeCustomProperty);
18
+ }
19
+
20
+
21
+ /**
22
+ * Clone system templates into the team catalog for one element_type.
23
+ * Server: ADMINISTRATOR only.
24
+ *
25
+ * @param {{ element_type: string, custom_property_template_ids: number[] }} payload
26
+ * @returns {Promise<{response: *, payload: *}>}
27
+ */
28
+ async clone_from_templates(payload)
29
+ {
30
+ if (!this.module_prefix)
31
+ {
32
+ throw new Error('Error #custom-property-clone-1152 in CustomPropertyApi');
33
+ }
34
+
35
+ if (this.stage === 'development')
36
+ {
37
+ return {
38
+ response: payload,
39
+ payload : payload,
40
+ };
41
+ }
42
+
43
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/clone_from_templates`;
44
+
45
+ payload = this.handle_request_payload(payload);
46
+ let response = this.api_request(url, payload);
47
+ response = this.handle_response(response);
48
+
49
+ return {
50
+ response: response,
51
+ payload : payload,
52
+ };
53
+ }
54
+ }
@@ -0,0 +1,17 @@
1
+ import { ApiAbstractElementClass } from './api_abstract_element_class.js';
2
+
3
+ /**
4
+ * Options for DROPDOWN / MULTISELECT catalog slots.
5
+ * Mutations require ADMINISTRATOR on the server.
6
+ *
7
+ * @version v.0.1 (15/08/2026)
8
+ */
9
+ export class CustomPropertyOptionApi extends ApiAbstractElementClass
10
+ {
11
+ module_prefix = 'custom_property_option';
12
+
13
+ constructor(options)
14
+ {
15
+ super(options);
16
+ }
17
+ }
@@ -0,0 +1,82 @@
1
+ import { ApiAbstractElementClass } from './api_abstract_element_class.js';
2
+ import { typeCustomPropertyValue } from '../types/family_relation/typeCustomPropertyValue.js';
3
+
4
+ /**
5
+ * Explicit value writers: set / add / delete. Not a union create().
6
+ * READONLY → api_code = -501. MEMBER and ADMINISTRATOR may write.
7
+ *
8
+ * @version v.0.1 (15/08/2026)
9
+ */
10
+ export class CustomPropertyValueApi extends ApiAbstractElementClass
11
+ {
12
+ module_prefix = 'custom_property_value';
13
+
14
+ constructor(options)
15
+ {
16
+ super(options);
17
+ this.set_element_class_instance(typeCustomPropertyValue);
18
+ }
19
+
20
+
21
+ /**
22
+ * @param {object} payload
23
+ * @returns {Promise<{response: *, payload: *}>}
24
+ */
25
+ async set(payload)
26
+ {
27
+ return this.#process('set', payload);
28
+ }
29
+
30
+
31
+ /**
32
+ * @param {object} payload
33
+ * @returns {Promise<{response: *, payload: *}>}
34
+ */
35
+ async add(payload)
36
+ {
37
+ return this.#process('add', payload);
38
+ }
39
+
40
+
41
+ /**
42
+ * @param {object} payload
43
+ * @returns {Promise<{response: *, payload: *}>}
44
+ */
45
+ async delete(payload)
46
+ {
47
+ return this.#process('delete', payload);
48
+ }
49
+
50
+
51
+ /**
52
+ * @param {string} action
53
+ * @param {object} payload
54
+ * @returns {Promise<{response: *, payload: *}>}
55
+ */
56
+ async #process(action, payload)
57
+ {
58
+ if (!this.module_prefix)
59
+ {
60
+ throw new Error('Error #custom-property-value-1152 in CustomPropertyValueApi');
61
+ }
62
+
63
+ if (this.stage === 'development')
64
+ {
65
+ return {
66
+ response: payload,
67
+ payload : payload,
68
+ };
69
+ }
70
+
71
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/${ action }`;
72
+
73
+ payload = this.handle_request_payload(payload);
74
+ let response = this.api_request(url, payload);
75
+ response = this.handle_response(response);
76
+
77
+ return {
78
+ response: response,
79
+ payload : payload,
80
+ };
81
+ }
82
+ }
@@ -16,8 +16,12 @@ import { BugRelationApi } from "./bug_relation_api.js";
16
16
  import { AttachmentApi } from "./attachment_api.js";
17
17
  import { TagApi } from "./tag_api.js";
18
18
  import { TagRelationApi } from "./tag_relation_api.js";
19
+ import { CustomPropertyApi } from "./custom_property_api.js";
20
+ import { CustomPropertyValueApi } from "./custom_property_value_api.js";
21
+ import { CustomPropertyOptionApi } from "./custom_property_option_api.js";
19
22
  import { TagColorApi } from "./tag/tag_color_api.js";
20
23
  import { TagTemplateApi } from "./tag/tag_template_api.js";
24
+ import { CustomPropertyTemplateApi } from "./custom_property/custom_property_template_api.js";
21
25
  import { ContextBrowserApi } from "./context/context_browser_api.js";
22
26
  import { ContextDeploymentTargetApi } from "./context/context_deployment_target_api.js";
23
27
  import { ContextDevicesApi } from "./context/context_devices_api.js";
@@ -27,6 +31,8 @@ import { ContextOsApi } from "./context/context_os_api.js";
27
31
  import { ContextScreenResolutionApi } from "./context/context_screen_resolution_api.js";
28
32
  import { BrowserToolsUtilExecutionApi } from "./util/browser_tools_util_execution_api.js";
29
33
  import { BrowserToolsScreenshotMultiApi } from "./util/browser_tools_screenshot_multi_api.js";
34
+ import { TeamDomainApi } from "./team_domain_api.js";
35
+ import { UrlInspectApi } from "./util/url_inspect_api.js";
30
36
  import { TextDocumentApi } from "./text_document_api.js";
31
37
  import { PublicTextDocumentApi } from "./public_text_document_api.js";
32
38
  import { TextDocumentFolderApi } from "./text_document_folder_api.js";
@@ -174,10 +180,15 @@ export class Api
174
180
  this.attachment = new AttachmentApi(payload);
175
181
  this.tag = new TagApi(payload);
176
182
  this.tag_relation = new TagRelationApi(payload);
183
+ this.custom_property = new CustomPropertyApi(payload);
184
+ this.custom_property_value = new CustomPropertyValueApi(payload);
185
+ this.custom_property_option = new CustomPropertyOptionApi(payload);
177
186
  this.event = new EventApi(payload);
178
187
  this.execution_context = new ExecutionContextApi(payload);
179
188
  this.browser_tools_util_execution = new BrowserToolsUtilExecutionApi(payload);
180
189
  this.browser_tools_screenshot_multi = new BrowserToolsScreenshotMultiApi(payload);
190
+ this.team_domain = new TeamDomainApi(payload);
191
+ this.url_inspect = new UrlInspectApi(payload);
181
192
  this.file_app = new FileAppApi(payload);
182
193
  this.text_document = new TextDocumentApi(payload);
183
194
  this.text_document_folder = new TextDocumentFolderApi(payload);
@@ -204,6 +215,7 @@ export class Api
204
215
  response.context_screen_resolution = new ContextScreenResolutionApi(payload);
205
216
  response.tag_color = new TagColorApi(payload);
206
217
  response.tag_template = new TagTemplateApi(payload);
218
+ response.custom_property_template = new CustomPropertyTemplateApi(payload);
207
219
 
208
220
  return response;
209
221
  }
@@ -0,0 +1,62 @@
1
+ import { ApiAbstractElementClass } from "./api_abstract_element_class.js";
2
+ import { typeTeamDomain } from "../types/family_elements/typeTeamDomain.js";
3
+
4
+
5
+ /**
6
+ * Team domain registry — search / create / verify / revoke.
7
+ *
8
+ * Base path: /web_api/team_domain
9
+ *
10
+ * @version v.0.1 (14/08/2026)
11
+ */
12
+ export class TeamDomainApi extends ApiAbstractElementClass
13
+ {
14
+ module_prefix = 'team_domain';
15
+
16
+
17
+ constructor(options)
18
+ {
19
+ super(options);
20
+ this.set_element_class_instance(typeTeamDomain);
21
+ }
22
+
23
+
24
+ /**
25
+ * @param {object} payload
26
+ *
27
+ * @returns {Promise<{payload, response: *}>}
28
+ */
29
+ async verify(payload)
30
+ {
31
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/verify`;
32
+
33
+ payload = this.handle_request_payload(payload);
34
+ let response = this.api_request(url, payload);
35
+ response = this.handle_response(response, false);
36
+
37
+ return {
38
+ response: response,
39
+ payload : payload,
40
+ };
41
+ }
42
+
43
+
44
+ /**
45
+ * @param {object} payload
46
+ *
47
+ * @returns {Promise<{payload, response: *}>}
48
+ */
49
+ async revoke(payload)
50
+ {
51
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/revoke`;
52
+
53
+ payload = this.handle_request_payload(payload);
54
+ let response = this.api_request(url, payload);
55
+ response = this.handle_response(response, false);
56
+
57
+ return {
58
+ response: response,
59
+ payload : payload,
60
+ };
61
+ }
62
+ }
@@ -49,7 +49,7 @@ export class TeamManagementApi extends ApiAbstractElementClass
49
49
 
50
50
  payload = this.handle_request_payload(payload);
51
51
  let response = this.api_request(url, payload);
52
- response = this.handle_response(response);
52
+ response = this.handle_response(response, false);
53
53
 
54
54
  return {
55
55
  response: response,
@@ -0,0 +1,54 @@
1
+ import { ApiAbstractElementClass } from "../api_abstract_element_class.js";
2
+ import { typeUtilExecutionUrlInspect } from "../../types/family_utils/typeUtilExecutionUrlInspect.js";
3
+
4
+
5
+ /**
6
+ * url.inspect suite — create / details / search.
7
+ *
8
+ * Base path: /web_api/util/url_inspect
9
+ *
10
+ * @version v.0.1 (14/08/2026)
11
+ */
12
+ export class UrlInspectApi extends ApiAbstractElementClass
13
+ {
14
+ module_prefix = 'util/url_inspect';
15
+
16
+
17
+ constructor(options)
18
+ {
19
+ super(options);
20
+ this.set_element_class_instance(typeUtilExecutionUrlInspect);
21
+ }
22
+
23
+
24
+ /**
25
+ * GET details/{util_execution_id}?project_id=
26
+ *
27
+ * @param {object} payload
28
+ *
29
+ * @returns {Promise<{payload, response: ReturnType<typeof typeUtilExecutionUrlInspect.composeDetails>|false}>}
30
+ */
31
+ async details(payload)
32
+ {
33
+ let util_execution_id = payload?.util_execution_id;
34
+
35
+ if (!util_execution_id)
36
+ {
37
+ throw new Error('util_execution_id is required for details');
38
+ }
39
+
40
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/details/${ util_execution_id }`;
41
+
42
+ payload = this.handle_request_payload(payload);
43
+ const prev_method = this.method;
44
+ this.method = 'get';
45
+ let response = this.api_request(url, payload, 'GET');
46
+ this.method = prev_method;
47
+ response = await this.handle_response(response, false);
48
+
49
+ return {
50
+ response: typeUtilExecutionUrlInspect.composeDetails(response),
51
+ payload : payload,
52
+ };
53
+ }
54
+ }
@@ -4,16 +4,20 @@ import { typeTestRun } from '../../../types/family_elements/typeTestRun.js';
4
4
  import { typeBug } from '../../../types/family_elements/typeBug.js';
5
5
  import { typeBugRelation } from '../../../types/family_relation/typeBugRelation.js';
6
6
  import { typeTag } from '../../../types/family_elements/typeTag.js';
7
+ import { typeCustomProperty } from '../../../types/family_elements/typeCustomProperty.js';
7
8
  import { typeAttachment } from '../../../types/family_elements/typeAttachment.js';
8
9
  import { typeTagRelation } from '../../../types/family_relation/typeTagRelation.js';
10
+ import { typeCustomPropertyValue } from '../../../types/family_relation/typeCustomPropertyValue.js';
9
11
  import { typeTestRunResult } from '../../../types/family_elements/typeTestRunResult.js';
10
12
  import { typeTestAccount } from '../../../types/family_elements/typeTestAccount.js';
11
13
  import { typeExecutionContext } from '../../../types/family_context/typeExecutionContext.js';
12
14
  import { typeTeamMember } from '../../../types/family_elements/typeTeamMember.js';
15
+ import { typeTeamDomain } from '../../../types/family_elements/typeTeamDomain.js';
13
16
  import { typeTestCaseStep } from '../../../types/family_elements/typeTestCaseStep.js';
14
17
  import { typeUser } from '../../../types/family_elements/typeUser.js';
15
18
  import { typeTeam } from '../../../types/family_elements/typeTeam.js';
16
19
  import { typeUtilExecutionScreenshotMulti } from '../../../types/family_utils/typeUtilExecutionScreenshotMulti.js';
20
+ import { typeUtilExecutionUrlInspect } from '../../../types/family_utils/typeUtilExecutionUrlInspect.js';
17
21
  import { typeTextDocument } from '../../../types/family_files/typeTextDocument.js';
18
22
  import { typeEvent } from '../../../types/family_events/typeEvent.js';
19
23
 
@@ -37,14 +41,18 @@ export const TABLE_ELEMENT_MODELS = {
37
41
  attachment : typeAttachment,
38
42
  tag : typeTag,
39
43
  tag_relation : typeTagRelation,
44
+ custom_property: typeCustomProperty,
45
+ custom_property_value: typeCustomPropertyValue,
40
46
  test_run_result: typeTestRunResult,
41
47
  test_account : typeTestAccount,
42
48
  execution_context : typeExecutionContext,
43
49
  team_member : typeTeamMember,
50
+ team_domain : typeTeamDomain,
44
51
  test_case_step : typeTestCaseStep,
45
52
  user : typeUser,
46
53
  team : typeTeam,
47
54
  text_document : typeTextDocument,
48
55
  util_execution : typeUtilExecutionScreenshotMulti,
56
+ util_execution_url_inspect: typeUtilExecutionUrlInspect,
49
57
  event : typeEvent,
50
58
  };
@@ -0,0 +1,96 @@
1
+ import { typeCustomProperty } from '../../../types/family_elements/typeCustomProperty.js';
2
+ import { UserService } from '../../../services/UserService.js';
3
+ import {
4
+ createColumn,
5
+ createGoToColumn,
6
+ createPrimaryKeyColumn,
7
+ createRowSelectColumn,
8
+ } from '../helpers/column_factory.js';
9
+ import { createListingFor, registerSection } from '../helpers/section_registry.js';
10
+ import { typeTableColumn } from '../../../types/family_service/typeTableColumn.js';
11
+
12
+ function build_custom_property_listing_columns(locale)
13
+ {
14
+ const model = new typeCustomProperty();
15
+
16
+ return [
17
+ createRowSelectColumn(),
18
+ createPrimaryKeyColumn(model, locale),
19
+ createColumn(model, locale, 'name', {
20
+ width : '240',
21
+ is_editable: true,
22
+ is_required: true,
23
+ is_title : true,
24
+ }),
25
+ createColumn(model, locale, 'property_key', { width: '180' }),
26
+ createColumn(model, locale, 'element_type', { width: '140' }),
27
+ createColumn(model, locale, 'value_type', { width: '150' }),
28
+ createColumn(model, locale, 'cardinality', { width: '140', is_editable: true }),
29
+ createColumn(model, locale, 'is_enabled', { width: '110', is_editable: true }),
30
+ createColumn(model, locale, 'is_required', { width: '110', is_editable: true }),
31
+ createColumn(model, locale, 'is_searchable', { width: '120', is_editable: true }),
32
+ createColumn(model, locale, 'created_at', { width: '170' }),
33
+ createColumn(model, locale, 'updated_at', { width: '170' }),
34
+ createGoToColumn(model, locale),
35
+ ];
36
+ }
37
+
38
+
39
+ function build_custom_property_details_columns(locale)
40
+ {
41
+ const model = new typeCustomProperty();
42
+ const fields = [
43
+ 'custom_property_id',
44
+ 'team_id',
45
+ 'element_type',
46
+ 'property_key',
47
+ 'value_type',
48
+ 'cardinality',
49
+ 'name',
50
+ 'is_required',
51
+ 'is_enabled',
52
+ 'is_searchable',
53
+ 'sort_order',
54
+ 'created_at',
55
+ 'updated_at',
56
+ ];
57
+
58
+ return [
59
+ ...fields.map((field, index) => createColumn(model, locale, field, {
60
+ sort_order : String(index + 1),
61
+ is_editable: [ 'name', 'cardinality', 'is_required', 'is_enabled', 'is_searchable', 'sort_order' ].includes(field),
62
+ is_sortable: false,
63
+ is_filter : false,
64
+ })),
65
+ new typeTableColumn({
66
+ header_name: 'copy',
67
+ field : 'copy',
68
+ width : '80',
69
+ sort_order : '99',
70
+ is_sortable: false,
71
+ is_filter : false,
72
+ is_editable: false,
73
+ column_kind: 'copy',
74
+ }),
75
+ ];
76
+ }
77
+
78
+
79
+ /**
80
+ * Секции `custom_property`: `listing`, `details`.
81
+ *
82
+ * @param {Object} config
83
+ * @returns {void}
84
+ */
85
+ export function bootstrap_custom_property(config)
86
+ {
87
+ const locale = UserService.get_current_language();
88
+
89
+ registerSection(config, 'custom_property', 'listing', build_custom_property_listing_columns(locale), {
90
+ for: createListingFor([], { add: [ 'options' ] }),
91
+ });
92
+
93
+ registerSection(config, 'custom_property', 'details', build_custom_property_details_columns(locale), {
94
+ for: createListingFor([ 'custom_property_id' ], { add: [ 'options' ] }),
95
+ });
96
+ }
@@ -0,0 +1,55 @@
1
+ import { typeTeamDomain } from '../../../types/family_elements/typeTeamDomain.js';
2
+ import { UserService } from '../../../services/UserService.js';
3
+ import {
4
+ createColumn,
5
+ createGoToColumn,
6
+ createPrimaryKeyColumn,
7
+ } from '../helpers/column_factory.js';
8
+ import { createListingFor, registerSection } from '../helpers/section_registry.js';
9
+
10
+ function build_team_domain_listing_columns(locale)
11
+ {
12
+ const model = new typeTeamDomain();
13
+
14
+ return [
15
+ createPrimaryKeyColumn(model, locale, { is_hide: true, default_sort: 'desc' }),
16
+ createColumn(model, locale, 'domain_canon', {
17
+ width : '280',
18
+ is_title : true,
19
+ is_filter : false,
20
+ is_editable: false,
21
+ }),
22
+ createColumn(model, locale, 'display_name', {
23
+ width : '200',
24
+ is_filter : false,
25
+ is_editable: false,
26
+ }),
27
+ createColumn(model, locale, 'verification_method', {
28
+ width : '180',
29
+ is_filter : false,
30
+ is_editable: false,
31
+ }),
32
+ createColumn(model, locale, 'domain_status', {
33
+ width : '160',
34
+ is_filter : false,
35
+ is_editable: false,
36
+ }),
37
+ createGoToColumn(model, locale),
38
+ ];
39
+ }
40
+
41
+
42
+ /**
43
+ * Секция `team_domain`: `listing`.
44
+ *
45
+ * @param {Object} config
46
+ * @returns {void}
47
+ */
48
+ export function bootstrap_team_domain(config)
49
+ {
50
+ const locale = UserService.get_current_language();
51
+
52
+ registerSection(config, 'team_domain', 'listing', build_team_domain_listing_columns(locale), {
53
+ for: createListingFor([]),
54
+ });
55
+ }
@@ -0,0 +1,60 @@
1
+ import { typeUtilExecutionUrlInspect } from '../../../types/family_utils/typeUtilExecutionUrlInspect.js';
2
+ import { UserService } from '../../../services/UserService.js';
3
+ import {
4
+ createColumn,
5
+ createGoToColumn,
6
+ createPrimaryKeyColumn,
7
+ } from '../helpers/column_factory.js';
8
+ import { createListingFor, registerSection } from '../helpers/section_registry.js';
9
+
10
+ function build_util_execution_url_inspect_listing_columns(locale)
11
+ {
12
+ const model = new typeUtilExecutionUrlInspect();
13
+
14
+ return [
15
+ createPrimaryKeyColumn(model, locale, { is_hide: true, default_sort: 'desc' }),
16
+ createColumn(model, locale, 'domain_canon', {
17
+ width : '240',
18
+ is_title : true,
19
+ is_filter : false,
20
+ is_editable: false,
21
+ }),
22
+ createColumn(model, locale, 'page_path', {
23
+ width : '280',
24
+ is_filter : false,
25
+ is_editable: false,
26
+ }),
27
+ createColumn(model, locale, 'suite_status', {
28
+ width : '160',
29
+ is_filter : false,
30
+ is_editable: false,
31
+ }),
32
+ createColumn(model, locale, 'project_id', {
33
+ width : '140',
34
+ is_filter : false,
35
+ is_editable: false,
36
+ }),
37
+ createColumn(model, locale, 'created_at', {
38
+ width : '180',
39
+ is_filter : false,
40
+ is_editable: false,
41
+ }),
42
+ createGoToColumn(model, locale),
43
+ ];
44
+ }
45
+
46
+
47
+ /**
48
+ * Секция `util_execution_url_inspect`: `listing`.
49
+ *
50
+ * @param {Object} config
51
+ * @returns {void}
52
+ */
53
+ export function bootstrap_util_execution_url_inspect(config)
54
+ {
55
+ const locale = UserService.get_current_language();
56
+
57
+ registerSection(config, 'util_execution_url_inspect', 'listing', build_util_execution_url_inspect_listing_columns(locale), {
58
+ for: createListingFor([ 'project_id' ]),
59
+ });
60
+ }
@@ -3,6 +3,7 @@ import { bootstrap_bug } from './sections/bug.js';
3
3
  import { bootstrap_bug_relation } from './sections/bug_relation.js';
4
4
  import { bootstrap_tag } from './sections/tag.js';
5
5
  import { bootstrap_tag_relation } from './sections/tag_relation.js';
6
+ import { bootstrap_custom_property } from './sections/custom_property.js';
6
7
  import { bootstrap_test_case } from './sections/test_case.js';
7
8
  import { bootstrap_test_case_step } from './sections/test_case_step.js';
8
9
  import { bootstrap_test_run } from './sections/test_run.js';
@@ -10,7 +11,9 @@ import { bootstrap_test_run_result } from './sections/test_run_result.js';
10
11
  import { bootstrap_test_account } from './sections/test_account.js';
11
12
  import { bootstrap_execution_context } from './sections/execution_context.js';
12
13
  import { bootstrap_util_execution } from './sections/util_execution.js';
14
+ import { bootstrap_util_execution_url_inspect } from './sections/util_execution_url_inspect.js';
13
15
  import { bootstrap_team_member } from './sections/team_member.js';
16
+ import { bootstrap_team_domain } from './sections/team_domain.js';
14
17
  import { bootstrap_event } from './sections/event.js';
15
18
  import { bootstrap_user } from './sections/user.js';
16
19
  import { bootstrap_team } from './sections/team.js';
@@ -115,6 +118,7 @@ export class TableConfiguration extends abstractAppConfiguration
115
118
  bootstrap_bug_relation(this.config);
116
119
  bootstrap_tag(this.config);
117
120
  bootstrap_tag_relation(this.config);
121
+ bootstrap_custom_property(this.config);
118
122
  bootstrap_test_case(this.config);
119
123
  bootstrap_test_case_step(this.config);
120
124
  bootstrap_test_run(this.config);
@@ -122,7 +126,9 @@ export class TableConfiguration extends abstractAppConfiguration
122
126
  bootstrap_test_account(this.config);
123
127
  bootstrap_execution_context(this.config);
124
128
  bootstrap_util_execution(this.config);
129
+ bootstrap_util_execution_url_inspect(this.config);
125
130
  bootstrap_team_member(this.config);
131
+ bootstrap_team_domain(this.config);
126
132
  bootstrap_event(this.config);
127
133
  bootstrap_user(this.config);
128
134
  bootstrap_team(this.config);
package/publish/index.js CHANGED
@@ -17,11 +17,13 @@ export { typeTestRunResult } from './types/family_elements/typeTestRunResult.js'
17
17
  export { typeTestAccount } from './types/family_elements/typeTestAccount.js'
18
18
  export {typeBug} from './types/family_elements/typeBug.js';
19
19
  export { typeTag } from './types/family_elements/typeTag.js';
20
+ export { typeCustomProperty } from './types/family_elements/typeCustomProperty.js';
20
21
  export { typeAttachment } from './types/family_elements/typeAttachment.js';
21
22
 
22
23
  export { familyRelation } from './types/core/1_familyRelation.js';
23
24
  export { typeBugRelation } from './types/family_relation/typeBugRelation.js';
24
25
  export { typeTagRelation } from './types/family_relation/typeTagRelation.js';
26
+ export { typeCustomPropertyValue } from './types/family_relation/typeCustomPropertyValue.js';
25
27
 
26
28
  export { familyContext } from './types/core/1_familyContext.js';
27
29
  export { typeBrowserContext } from './types/family_context/typeBrowserContext.js';
@@ -38,6 +40,8 @@ export { typeUtilExecutionScreenshotMulti } from './types/family_utils/typeUtilE
38
40
  export { typeUtilExecutionScreenshotMultiCapture } from './types/family_utils/typeUtilExecutionScreenshotMultiCapture.js';
39
41
  export { typeUtilExecutionScreenshotMultiScreenshot } from './types/family_utils/typeUtilExecutionScreenshotMultiScreenshot.js';
40
42
  export { typeUtilExecutionScreenshotMultiCaptureError } from './types/family_utils/typeUtilExecutionScreenshotMultiCaptureError.js';
43
+ export { typeUtilExecutionUrlInspect } from './types/family_utils/typeUtilExecutionUrlInspect.js';
44
+ export { typeUtilExecutionUrlInspectCheck } from './types/family_utils/typeUtilExecutionUrlInspectCheck.js';
41
45
  export { typeUtilExecutionEvent } from './types/family_utils/typeUtilExecutionEvent.js';
42
46
 
43
47
  export { familyEvent } from './types/family_events/familyEvent.js';
@@ -66,6 +70,7 @@ export { text_document_editor_config, get_text_document_editor_config } from './
66
70
  export { typeUser } from './types/family_elements/typeUser.js';
67
71
  export { typeTeam } from './types/family_elements/typeTeam.js';
68
72
  export { typeTeamMember } from './types/family_elements/typeTeamMember.js';
73
+ export { typeTeamDomain } from './types/family_elements/typeTeamDomain.js';
69
74
  export { typeTeamTotalStatistic } from './types/family_contracts/typeTeamTotalStatistic.js';
70
75
 
71
76
  export { typeTask } from './types/family_elements/typeTask.js';