complexqa_frontend_core 2.2.3 → 2.3.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/src/api/index.js CHANGED
@@ -1,248 +1,248 @@
1
- import { TestPlanApi } from "./test_plan_api.js";
2
- import { ProjectApi } from "./project_api.js";
3
- import { ServiceApi } from "./service_api.js";
4
- import { TestCaseApi } from "./test_case_api.js";
5
- import { TestSuiteApi } from "./test_suite_api.js";
6
- import { TestCaseStepApi } from "./test_case_step_api.js";
7
- import { TeamManagementApi } from "./team_management_api.js";
8
- import { TeamMemberApi } from "./team_member_api.js";
9
- import { TestRunApi } from "./test_run_api.js";
10
- import { TestRunResultApi } from "./test_run_result_api.js";
11
- import { UserProfileApi } from "./user_profile_api.js";
12
- import { TaskApi } from "./task_api.js";
13
- import { TestAccountApi } from "./test_account_api.js";
14
- import { BugApi } from "./bug_api.js";
15
- import { BugRelationApi } from "./bug_relation_api.js";
16
- import { AttachmentApi } from "./attachment_api.js";
17
- import { TagApi } from "./tag_api.js";
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";
22
- import { TagColorApi } from "./tag/tag_color_api.js";
23
- import { TagTemplateApi } from "./tag/tag_template_api.js";
24
- import { CustomPropertyTemplateApi } from "./custom_property/custom_property_template_api.js";
25
- import { ContextBrowserApi } from "./context/context_browser_api.js";
26
- import { ContextDeploymentTargetApi } from "./context/context_deployment_target_api.js";
27
- import { ContextDevicesApi } from "./context/context_devices_api.js";
28
- import { ExecutionContextApi } from "./context/context_execution_general_api.js";
29
- import { ContextLocaleApi } from "./context/context_locale_api.js";
30
- import { ContextOsApi } from "./context/context_os_api.js";
31
- import { ContextScreenResolutionApi } from "./context/context_screen_resolution_api.js";
32
- import { ContextUserAgentsApi } from "./context/context_user_agents_api.js";
33
- import { BrowserToolsUtilExecutionApi } from "./util/browser_tools_util_execution_api.js";
34
- import { BrowserToolsScreenshotMultiApi } from "./util/browser_tools_screenshot_multi_api.js";
35
- import { TeamDomainApi } from "./team_domain_api.js";
36
- import { UrlInspectApi } from "./util/url_inspect_api.js";
37
- import { TextDocumentApi } from "./text_document_api.js";
38
- import { PublicTextDocumentApi } from "./public_text_document_api.js";
39
- import { TextDocumentFolderApi } from "./text_document_folder_api.js";
40
- import { FileAppApi } from "./file_app_api.js";
41
- import { McpKeyApi } from "./mcp_key_api.js";
42
- import { EventApi } from "./event_api.js";
43
- import { AutotestCaseApi } from "./autotest_case_api.js";
44
- import { AutotestSuiteApi } from "./autotest_suite_api.js";
45
- import { AutotestStepApi } from "./autotest_step_api.js";
46
- import { AutotestRunApi } from "./autotest_run_api.js";
47
- import { AutotestResultApi } from "./autotest_result_api.js";
48
- import { ObjectRepositoryFolderApi } from "./object_repository_folder_api.js";
49
- import { ObjectRepositoryPageApi } from "./object_repository_page_api.js";
50
- import { ObjectRepositoryElementApi } from "./object_repository_element_api.js";
51
- import { bootstrap_type_api } from "./typeApiBinding.js";
52
-
53
- /**
54
- * Обертка над axios
55
- * @version v.0.3 (26/01/2025)
56
- */
57
- export class Api
58
- {
59
- /**
60
- * Режим работы
61
- *
62
- * @type {string} development || production || tests
63
- */
64
- stage = 'development';
65
- dev_stage_config = {
66
- generate_error : false,
67
- api_response_delay : 3500,
68
- api_response_search_element_count: 8,
69
- };
70
-
71
- init_options;
72
-
73
- test_plan;
74
- /**
75
- * {ProjectApi} project
76
- */
77
- project;
78
- service;
79
-
80
- /** @type {string|false} */
81
- host_api = false;
82
- /** @type {string|false} */
83
- frontend_host = false;
84
- /** @type {string|false} */
85
- general_domain = false;
86
- /** @type {string|false} */
87
- site_section = false;
88
-
89
- /** @type {EventApi} */
90
- event;
91
-
92
-
93
- /**
94
- *
95
- * @version v.0.3 (26/01/2025)
96
- */
97
- constructor(init_options)
98
- {
99
-
100
- if (this.constructor._instance)
101
- {
102
- return this.constructor._instance;
103
- }
104
-
105
-
106
- if (init_options.host_api)
107
- {
108
- // @todo validate
109
- this.host_api = init_options.host_api;
110
- }
111
- else
112
- {
113
- // подумать
114
- this.host_api = 'complexqa.localhost';
115
- }
116
-
117
- if (init_options.stage)
118
- {
119
- // @todo validate
120
- this.stage = init_options.stage;
121
- }
122
-
123
- if (init_options.frontend_host)
124
- {
125
- this.frontend_host = init_options.frontend_host;
126
- }
127
-
128
- if (init_options.general_domain)
129
- {
130
- this.general_domain = init_options.general_domain;
131
- }
132
-
133
- if (init_options.dev_stage_config)
134
- {
135
- // @todo validate
136
- this.dev_stage_config = init_options.dev_stage_config;
137
- }
138
-
139
-
140
- if (init_options.site_section)
141
- {
142
- this.site_section = init_options.site_section;
143
- }
144
-
145
- this.init_options = init_options;
146
- this.constructor._instance = this;
147
-
148
- bootstrap_type_api({ api_service: this });
149
-
150
- this.#bootstrap();
151
- return this.constructor._instance;
152
- }
153
-
154
-
155
- /**
156
- *
157
- * @param stage
158
- */
159
- set_stage(stage)
160
- {
161
- this.stage = stage;
162
- }
163
-
164
-
165
- /**
166
- *
167
- * @version v.1.2 (04/06/2026)
168
- */
169
- #bootstrap()
170
- {
171
- let payload = {
172
- init_options : this.init_options,
173
- stage : this.stage,
174
- dev_stage_config: this.dev_stage_config,
175
- host_api : this.host_api,
176
- parent_app : this
177
- };
178
-
179
- //echo({payload});
180
-
181
- this.team_management = new TeamManagementApi(payload);
182
- this.team_member = new TeamMemberApi(payload);
183
- this.test_plan = new TestPlanApi(payload);
184
- this.project = new ProjectApi(payload);
185
- this.service = new ServiceApi(payload);
186
- this.test_case = new TestCaseApi(payload);
187
- this.test_case_step = new TestCaseStepApi(payload);
188
- this.test_suite = new TestSuiteApi(payload);
189
- this.test_run = new TestRunApi(payload);
190
- this.test_run_result = new TestRunResultApi(payload);
191
- this.user_profile = new UserProfileApi(payload);
192
- this.task = new TaskApi(payload);
193
- this.test_account = new TestAccountApi(payload);
194
- this.bug = new BugApi(payload);
195
- this.bug_relation = new BugRelationApi(payload);
196
- this.attachment = new AttachmentApi(payload);
197
- this.tag = new TagApi(payload);
198
- this.tag_relation = new TagRelationApi(payload);
199
- this.custom_property = new CustomPropertyApi(payload);
200
- this.custom_property_value = new CustomPropertyValueApi(payload);
201
- this.custom_property_option = new CustomPropertyOptionApi(payload);
202
- this.event = new EventApi(payload);
203
- this.autotest_case = new AutotestCaseApi(payload);
204
- this.autotest_suite = new AutotestSuiteApi(payload);
205
- this.autotest_step = new AutotestStepApi(payload);
206
- this.autotest_run = new AutotestRunApi(payload);
207
- this.autotest_result = new AutotestResultApi(payload);
208
- this.object_repository_folder = new ObjectRepositoryFolderApi(payload);
209
- this.object_repository_page = new ObjectRepositoryPageApi(payload);
210
- this.object_repository_element = new ObjectRepositoryElementApi(payload);
211
- this.execution_context = new ExecutionContextApi(payload);
212
- this.browser_tools_util_execution = new BrowserToolsUtilExecutionApi(payload);
213
- this.browser_tools_screenshot_multi = new BrowserToolsScreenshotMultiApi(payload);
214
- this.team_domain = new TeamDomainApi(payload);
215
- this.url_inspect = new UrlInspectApi(payload);
216
- this.file_app = new FileAppApi(payload);
217
- this.mcp_key = new McpKeyApi(payload);
218
- this.text_document = new TextDocumentApi(payload);
219
- this.text_document_folder = new TextDocumentFolderApi(payload);
220
- this.public_text_document = new PublicTextDocumentApi(payload);
221
-
222
- this.reference = this.bootstrap_reference(payload)
223
- }
224
-
225
- /**
226
- *
227
- * @version v.0.1 (04/06/2026)
228
- * @param payload
229
- */
230
- bootstrap_reference(payload)
231
- {
232
- let response = {};
233
-
234
- response.context_browser = new ContextBrowserApi(payload);
235
- response.context_deployment_target = new ContextDeploymentTargetApi(payload);
236
- response.context_devices = new ContextDevicesApi(payload);
237
- //response.execution_context = new ExecutionContextApi(payload);
238
- response.context_locale = new ContextLocaleApi(payload);
239
- response.context_os = new ContextOsApi(payload);
240
- response.context_screen_resolution = new ContextScreenResolutionApi(payload);
241
- response.context_user_agents = new ContextUserAgentsApi(payload);
242
- response.tag_color = new TagColorApi(payload);
243
- response.tag_template = new TagTemplateApi(payload);
244
- response.custom_property_template = new CustomPropertyTemplateApi(payload);
245
-
246
- return response;
247
- }
1
+ import { TestPlanApi } from "./test_plan_api.js";
2
+ import { ProjectApi } from "./project_api.js";
3
+ import { ServiceApi } from "./service_api.js";
4
+ import { TestCaseApi } from "./test_case_api.js";
5
+ import { TestSuiteApi } from "./test_suite_api.js";
6
+ import { TestCaseStepApi } from "./test_case_step_api.js";
7
+ import { TeamManagementApi } from "./team_management_api.js";
8
+ import { TeamMemberApi } from "./team_member_api.js";
9
+ import { TestRunApi } from "./test_run_api.js";
10
+ import { TestRunResultApi } from "./test_run_result_api.js";
11
+ import { UserProfileApi } from "./user_profile_api.js";
12
+ import { TaskApi } from "./task_api.js";
13
+ import { TestAccountApi } from "./test_account_api.js";
14
+ import { BugApi } from "./bug_api.js";
15
+ import { BugRelationApi } from "./bug_relation_api.js";
16
+ import { AttachmentApi } from "./attachment_api.js";
17
+ import { TagApi } from "./tag_api.js";
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";
22
+ import { TagColorApi } from "./tag/tag_color_api.js";
23
+ import { TagTemplateApi } from "./tag/tag_template_api.js";
24
+ import { CustomPropertyTemplateApi } from "./custom_property/custom_property_template_api.js";
25
+ import { ContextBrowserApi } from "./context/context_browser_api.js";
26
+ import { ContextDeploymentTargetApi } from "./context/context_deployment_target_api.js";
27
+ import { ContextDevicesApi } from "./context/context_devices_api.js";
28
+ import { ExecutionContextApi } from "./context/context_execution_general_api.js";
29
+ import { ContextLocaleApi } from "./context/context_locale_api.js";
30
+ import { ContextOsApi } from "./context/context_os_api.js";
31
+ import { ContextScreenResolutionApi } from "./context/context_screen_resolution_api.js";
32
+ import { ContextUserAgentsApi } from "./context/context_user_agents_api.js";
33
+ import { BrowserToolsUtilExecutionApi } from "./util/browser_tools_util_execution_api.js";
34
+ import { BrowserToolsScreenshotMultiApi } from "./util/browser_tools_screenshot_multi_api.js";
35
+ import { TeamDomainApi } from "./team_domain_api.js";
36
+ import { UrlInspectApi } from "./util/url_inspect_api.js";
37
+ import { TextDocumentApi } from "./text_document_api.js";
38
+ import { PublicTextDocumentApi } from "./public_text_document_api.js";
39
+ import { TextDocumentFolderApi } from "./text_document_folder_api.js";
40
+ import { FileAppApi } from "./file_app_api.js";
41
+ import { McpKeyApi } from "./mcp_key_api.js";
42
+ import { EventApi } from "./event_api.js";
43
+ import { AutotestCaseApi } from "./autotest_case_api.js";
44
+ import { AutotestSuiteApi } from "./autotest_suite_api.js";
45
+ import { AutotestStepApi } from "./autotest_step_api.js";
46
+ import { AutotestRunApi } from "./autotest_run_api.js";
47
+ import { AutotestResultApi } from "./autotest_result_api.js";
48
+ import { ObjectRepositoryFolderApi } from "./object_repository_folder_api.js";
49
+ import { ObjectRepositoryPageApi } from "./object_repository_page_api.js";
50
+ import { ObjectRepositoryElementApi } from "./object_repository_element_api.js";
51
+ import { bootstrap_type_api } from "./typeApiBinding.js";
52
+
53
+ /**
54
+ * Обертка над axios
55
+ * @version v.0.3 (26/01/2025)
56
+ */
57
+ export class Api
58
+ {
59
+ /**
60
+ * Режим работы
61
+ *
62
+ * @type {string} development || production || tests
63
+ */
64
+ stage = 'development';
65
+ dev_stage_config = {
66
+ generate_error : false,
67
+ api_response_delay : 3500,
68
+ api_response_search_element_count: 8,
69
+ };
70
+
71
+ init_options;
72
+
73
+ test_plan;
74
+ /**
75
+ * {ProjectApi} project
76
+ */
77
+ project;
78
+ service;
79
+
80
+ /** @type {string|false} */
81
+ host_api = false;
82
+ /** @type {string|false} */
83
+ frontend_host = false;
84
+ /** @type {string|false} */
85
+ general_domain = false;
86
+ /** @type {string|false} */
87
+ site_section = false;
88
+
89
+ /** @type {EventApi} */
90
+ event;
91
+
92
+
93
+ /**
94
+ *
95
+ * @version v.0.3 (26/01/2025)
96
+ */
97
+ constructor(init_options)
98
+ {
99
+
100
+ if (this.constructor._instance)
101
+ {
102
+ return this.constructor._instance;
103
+ }
104
+
105
+
106
+ if (init_options.host_api)
107
+ {
108
+ // @todo validate
109
+ this.host_api = init_options.host_api;
110
+ }
111
+ else
112
+ {
113
+ // подумать
114
+ this.host_api = 'complexqa.localhost';
115
+ }
116
+
117
+ if (init_options.stage)
118
+ {
119
+ // @todo validate
120
+ this.stage = init_options.stage;
121
+ }
122
+
123
+ if (init_options.frontend_host)
124
+ {
125
+ this.frontend_host = init_options.frontend_host;
126
+ }
127
+
128
+ if (init_options.general_domain)
129
+ {
130
+ this.general_domain = init_options.general_domain;
131
+ }
132
+
133
+ if (init_options.dev_stage_config)
134
+ {
135
+ // @todo validate
136
+ this.dev_stage_config = init_options.dev_stage_config;
137
+ }
138
+
139
+
140
+ if (init_options.site_section)
141
+ {
142
+ this.site_section = init_options.site_section;
143
+ }
144
+
145
+ this.init_options = init_options;
146
+ this.constructor._instance = this;
147
+
148
+ bootstrap_type_api({ api_service: this });
149
+
150
+ this.#bootstrap();
151
+ return this.constructor._instance;
152
+ }
153
+
154
+
155
+ /**
156
+ *
157
+ * @param stage
158
+ */
159
+ set_stage(stage)
160
+ {
161
+ this.stage = stage;
162
+ }
163
+
164
+
165
+ /**
166
+ *
167
+ * @version v.1.2 (04/06/2026)
168
+ */
169
+ #bootstrap()
170
+ {
171
+ let payload = {
172
+ init_options : this.init_options,
173
+ stage : this.stage,
174
+ dev_stage_config: this.dev_stage_config,
175
+ host_api : this.host_api,
176
+ parent_app : this
177
+ };
178
+
179
+ //echo({payload});
180
+
181
+ this.team_management = new TeamManagementApi(payload);
182
+ this.team_member = new TeamMemberApi(payload);
183
+ this.test_plan = new TestPlanApi(payload);
184
+ this.project = new ProjectApi(payload);
185
+ this.service = new ServiceApi(payload);
186
+ this.test_case = new TestCaseApi(payload);
187
+ this.test_case_step = new TestCaseStepApi(payload);
188
+ this.test_suite = new TestSuiteApi(payload);
189
+ this.test_run = new TestRunApi(payload);
190
+ this.test_run_result = new TestRunResultApi(payload);
191
+ this.user_profile = new UserProfileApi(payload);
192
+ this.task = new TaskApi(payload);
193
+ this.test_account = new TestAccountApi(payload);
194
+ this.bug = new BugApi(payload);
195
+ this.bug_relation = new BugRelationApi(payload);
196
+ this.attachment = new AttachmentApi(payload);
197
+ this.tag = new TagApi(payload);
198
+ this.tag_relation = new TagRelationApi(payload);
199
+ this.custom_property = new CustomPropertyApi(payload);
200
+ this.custom_property_value = new CustomPropertyValueApi(payload);
201
+ this.custom_property_option = new CustomPropertyOptionApi(payload);
202
+ this.event = new EventApi(payload);
203
+ this.autotest_case = new AutotestCaseApi(payload);
204
+ this.autotest_suite = new AutotestSuiteApi(payload);
205
+ this.autotest_step = new AutotestStepApi(payload);
206
+ this.autotest_run = new AutotestRunApi(payload);
207
+ this.autotest_result = new AutotestResultApi(payload);
208
+ this.object_repository_folder = new ObjectRepositoryFolderApi(payload);
209
+ this.object_repository_page = new ObjectRepositoryPageApi(payload);
210
+ this.object_repository_element = new ObjectRepositoryElementApi(payload);
211
+ this.execution_context = new ExecutionContextApi(payload);
212
+ this.browser_tools_util_execution = new BrowserToolsUtilExecutionApi(payload);
213
+ this.browser_tools_screenshot_multi = new BrowserToolsScreenshotMultiApi(payload);
214
+ this.team_domain = new TeamDomainApi(payload);
215
+ this.url_inspect = new UrlInspectApi(payload);
216
+ this.file_app = new FileAppApi(payload);
217
+ this.mcp_key = new McpKeyApi(payload);
218
+ this.text_document = new TextDocumentApi(payload);
219
+ this.text_document_folder = new TextDocumentFolderApi(payload);
220
+ this.public_text_document = new PublicTextDocumentApi(payload);
221
+
222
+ this.reference = this.bootstrap_reference(payload)
223
+ }
224
+
225
+ /**
226
+ *
227
+ * @version v.0.1 (04/06/2026)
228
+ * @param payload
229
+ */
230
+ bootstrap_reference(payload)
231
+ {
232
+ let response = {};
233
+
234
+ response.context_browser = new ContextBrowserApi(payload);
235
+ response.context_deployment_target = new ContextDeploymentTargetApi(payload);
236
+ response.context_devices = new ContextDevicesApi(payload);
237
+ //response.execution_context = new ExecutionContextApi(payload);
238
+ response.context_locale = new ContextLocaleApi(payload);
239
+ response.context_os = new ContextOsApi(payload);
240
+ response.context_screen_resolution = new ContextScreenResolutionApi(payload);
241
+ response.context_user_agents = new ContextUserAgentsApi(payload);
242
+ response.tag_color = new TagColorApi(payload);
243
+ response.tag_template = new TagTemplateApi(payload);
244
+ response.custom_property_template = new CustomPropertyTemplateApi(payload);
245
+
246
+ return response;
247
+ }
248
248
  }
@@ -56,4 +56,62 @@ export class TeamManagementApi extends ApiAbstractElementClass
56
56
  payload : payload
57
57
  };
58
58
  }
59
+
60
+
61
+ /**
62
+ * @version v.1.0 (29/09/2026)
63
+ * @returns {Promise<{payload: (*|{}), response: Promise<*>}>}
64
+ */
65
+ async get_current_team(payload = {})
66
+ {
67
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/get_current_team`;
68
+
69
+ payload = this.handle_request_payload(payload);
70
+ let response = this.api_request(url, payload);
71
+ response = this.handle_response(response, false);
72
+
73
+ return {
74
+ response: response,
75
+ payload : payload
76
+ };
77
+ }
78
+
79
+
80
+ /**
81
+ * @version v.1.0 (29/09/2026)
82
+ * @param {{team_name: string}} payload
83
+ * @returns {Promise<{payload: (*|{}), response: Promise<*>}>}
84
+ */
85
+ async update_team_name(payload)
86
+ {
87
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/update_team_name`;
88
+
89
+ payload = this.handle_request_payload(payload);
90
+ let response = this.api_request(url, payload);
91
+ response = this.handle_response(response, false);
92
+
93
+ return {
94
+ response: response,
95
+ payload : payload
96
+ };
97
+ }
98
+
99
+
100
+ /**
101
+ * @version v.1.0 (29/09/2026)
102
+ * @returns {Promise<{payload: (*|{}), response: Promise<*>}>}
103
+ */
104
+ async get_team_plan(payload = {})
105
+ {
106
+ let url = `/${ this.api_prefix }/${ this.module_prefix }/get_team_plan`;
107
+
108
+ payload = this.handle_request_payload(payload);
109
+ let response = this.api_request(url, payload);
110
+ response = this.handle_response(response, false);
111
+
112
+ return {
113
+ response: response,
114
+ payload : payload
115
+ };
116
+ }
59
117
  }
@@ -1,54 +1,54 @@
1
- import { BaseException } from './0_BaseException.js';
2
-
3
- /**
4
- *
5
- * @version v.1.0 (01/05/2026)
6
- */
7
- export class ApiException extends BaseException
8
- {
9
-
10
-
11
-
12
- api_response = null;
13
- api_code = null;
14
- api_result = null;
15
- api_error = null;
16
- hint = null;
17
-
18
-
19
- /**
20
- *
21
- * @version v.1.0 (01/05/2026)
22
- */
23
- constructor(options)
24
- {
25
- super(options);
26
-
27
-
28
- if (options?.api_response)
29
- {
30
- this.api_response = options?.api_response;
31
- }
32
-
33
- if (options?.api_code)
34
- {
35
- this.api_code = options?.api_code;
36
- }
37
-
38
- if (options?.api_result)
39
- {
40
- this.api_result = options?.api_result;
41
- }
42
-
43
- if (options?.api_error)
44
- {
45
- this.api_error = options?.api_error;
46
- }
47
-
48
- if (options?.hint)
49
- {
50
- this.hint = options.hint;
51
- }
52
- }
53
-
1
+ import { BaseException } from './0_BaseException.js';
2
+
3
+ /**
4
+ *
5
+ * @version v.1.0 (01/05/2026)
6
+ */
7
+ export class ApiException extends BaseException
8
+ {
9
+
10
+
11
+
12
+ api_response = null;
13
+ api_code = null;
14
+ api_result = null;
15
+ api_error = null;
16
+ hint = null;
17
+
18
+
19
+ /**
20
+ *
21
+ * @version v.1.0 (01/05/2026)
22
+ */
23
+ constructor(options)
24
+ {
25
+ super(options);
26
+
27
+
28
+ if (options?.api_response)
29
+ {
30
+ this.api_response = options?.api_response;
31
+ }
32
+
33
+ if (options?.api_code)
34
+ {
35
+ this.api_code = options?.api_code;
36
+ }
37
+
38
+ if (options?.api_result)
39
+ {
40
+ this.api_result = options?.api_result;
41
+ }
42
+
43
+ if (options?.api_error)
44
+ {
45
+ this.api_error = options?.api_error;
46
+ }
47
+
48
+ if (options?.hint)
49
+ {
50
+ this.hint = options.hint;
51
+ }
52
+ }
53
+
54
54
  }