hostinger-api-mcp 0.2.1 → 0.2.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/.env.example CHANGED
@@ -4,7 +4,7 @@ TRANSPORT=stdio # Fixed to stdio
4
4
  # Debug
5
5
  DEBUG=false
6
6
 
7
- # OAuth Configuration (used when API_TOKEN is not set — stdio mode only)
7
+ # OAuth Configuration (used when HOSTINGER_API_TOKEN is not set — stdio mode only)
8
8
  # Uncomment to override the default OAuth issuer:
9
9
  # OAUTH_ISSUER=https://auth.hostinger.com
10
10
 
package/README.md CHANGED
@@ -63,8 +63,9 @@ Pick the binary that matches your agent's scope. `hostinger-api-mcp` remains the
63
63
 
64
64
  The following environment variables can be configured when running the server:
65
65
  - `DEBUG`: Enable debug logging (true/false) (default: false)
66
- - `API_TOKEN`: Your API token, which will be sent in the `Authorization` header. When set, OAuth is bypassed entirely.
67
- - `OAUTH_ISSUER`: OAuth server base URL (default: `https://auth.hostinger.com`). Only used when `API_TOKEN` is not set.
66
+ - `HOSTINGER_API_TOKEN`: Your API token, which will be sent in the `Authorization` header. When set, OAuth is bypassed entirely.
67
+ - `API_TOKEN`: Deprecated alias for `HOSTINGER_API_TOKEN`. Will be removed in a future version prefer `HOSTINGER_API_TOKEN`.
68
+ - `OAUTH_ISSUER`: OAuth server base URL (default: `https://auth.hostinger.com`). Only used when `HOSTINGER_API_TOKEN` is not set.
68
69
 
69
70
  ## Authentication
70
71
 
@@ -72,11 +73,11 @@ The server supports two authentication methods:
72
73
 
73
74
  ### API Token (recommended for CI/scripts)
74
75
 
75
- Set `API_TOKEN` in the environment or `.env` file. When present it always takes precedence — no OAuth code runs.
76
+ Set `HOSTINGER_API_TOKEN` in the environment or `.env` file. When present it always takes precedence — no OAuth code runs.
76
77
 
77
78
  ### OAuth 2.0 with PKCE (interactive sign-in)
78
79
 
79
- When `API_TOKEN` is not set and the server runs in stdio mode, OAuth 2.0 with PKCE is used automatically on the first authenticated tool call:
80
+ When `HOSTINGER_API_TOKEN` is not set and the server runs in stdio mode, OAuth 2.0 with PKCE is used automatically on the first authenticated tool call:
80
81
 
81
82
  1. A dynamic OAuth client is registered with the issuer (RFC 7591) — once per machine.
82
83
  2. A browser window opens to the authorization page.
@@ -99,7 +100,7 @@ hostinger-api-mcp --login
99
100
  hostinger-api-mcp --logout
100
101
  ```
101
102
 
102
- **HTTP transport note:** OAuth sign-in is not supported in `--http` mode. Set `API_TOKEN` before using `--http`.
103
+ **HTTP transport note:** OAuth sign-in is not supported in `--http` mode. Set `HOSTINGER_API_TOKEN` before using `--http`.
103
104
 
104
105
  ## Usage
105
106
 
@@ -112,7 +113,7 @@ hostinger-api-mcp --logout
112
113
  "command": "hostinger-api-mcp",
113
114
  "env": {
114
115
  "DEBUG": "false",
115
- "API_TOKEN": "YOUR API TOKEN"
116
+ "HOSTINGER_API_TOKEN": "YOUR API TOKEN"
116
117
  }
117
118
  }
118
119
  }
@@ -143,7 +144,7 @@ hostinger-api-mcp --http --host 0.0.0.0 --port 8150
143
144
 
144
145
  ```
145
146
  Options:
146
- --http Use HTTP streaming transport (requires API_TOKEN env var)
147
+ --http Use HTTP streaming transport (requires HOSTINGER_API_TOKEN env var)
147
148
  --stdio Use Server-Sent Events transport (default)
148
149
  --host {host} Hostname or IP address to listen on (default: 127.0.0.1)
149
150
  --port {port} Port to bind to (default: 8100)
@@ -166,7 +167,7 @@ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/
166
167
  const transport = new StreamableHTTPClientTransport({
167
168
  url: "http://localhost:8100/",
168
169
  headers: {
169
- "Authorization": `Bearer ${process.env.API_TOKEN}`
170
+ "Authorization": `Bearer ${process.env.HOSTINGER_API_TOKEN}`
170
171
  }
171
172
  });
172
173
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for Hostinger API",
5
5
  "repository": {
6
6
  "type": "git",
package/src/core/oauth.js CHANGED
@@ -41,6 +41,20 @@ export class OAuthRefreshError extends Error {
41
41
  }
42
42
  }
43
43
 
44
+ /**
45
+ * Resolve the bearer token from the environment. HOSTINGER_API_TOKEN is the
46
+ * preferred name; API_TOKEN and APITOKEN are kept as backwards-compatible
47
+ * aliases (API_TOKEN is deprecated and will be removed in a future version).
48
+ * Empty values fall through, matching the previous `||` behavior.
49
+ */
50
+ export function getEnvToken() {
51
+ return (
52
+ process.env["HOSTINGER_API_TOKEN"] ||
53
+ process.env["API_TOKEN"] ||
54
+ process.env["APITOKEN"]
55
+ );
56
+ }
57
+
44
58
  export class OAuthProvider {
45
59
  constructor(issuerBaseUrl) {
46
60
  this.issuer = (
@@ -52,7 +66,7 @@ export class OAuthProvider {
52
66
  }
53
67
 
54
68
  async getAccessToken() {
55
- const envToken = process.env["API_TOKEN"] || process.env["APITOKEN"];
69
+ const envToken = getEnvToken();
56
70
  if (envToken) {
57
71
  return envToken;
58
72
  }
package/src/core/oauth.ts CHANGED
@@ -56,6 +56,18 @@ export class OAuthRefreshError extends Error {
56
56
  }
57
57
  }
58
58
 
59
+ /**
60
+ * Resolve the bearer token from the environment. HOSTINGER_API_TOKEN is the
61
+ * preferred name; API_TOKEN and APITOKEN are kept as backwards-compatible
62
+ * aliases (API_TOKEN is deprecated and will be removed in a future version).
63
+ * Empty values fall through, matching the previous `||` behavior.
64
+ */
65
+ export function getEnvToken(): string | undefined {
66
+ return process.env['HOSTINGER_API_TOKEN']
67
+ || process.env['API_TOKEN']
68
+ || process.env['APITOKEN'];
69
+ }
70
+
59
71
  export class OAuthProvider {
60
72
  private readonly issuer: string;
61
73
  private _loginInProgress: Promise<string> | null = null;
@@ -65,7 +77,7 @@ export class OAuthProvider {
65
77
  }
66
78
 
67
79
  async getAccessToken(): Promise<string> {
68
- const envToken = process.env['API_TOKEN'] || process.env['APITOKEN'];
80
+ const envToken = getEnvToken();
69
81
  if (envToken) {
70
82
  return envToken;
71
83
  }
@@ -11,7 +11,7 @@ import {
11
11
  ListToolsRequestSchema,
12
12
  CallToolRequestSchema,
13
13
  } from "@modelcontextprotocol/sdk/types.js";
14
- import { OAuthProvider } from "./oauth.js";
14
+ import { OAuthProvider, getEnvToken } from "./oauth.js";
15
15
  import * as tus from "tus-js-client";
16
16
  import fs from "fs";
17
17
  import path from "path";
@@ -29,7 +29,7 @@ const SECURITY_SCHEMES = {
29
29
 
30
30
  /**
31
31
  * MCP Server for Hostinger API
32
- * Generated from OpenAPI spec version 0.11.7
32
+ * Generated from OpenAPI spec version 0.12.0
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -86,8 +86,8 @@ class MCPServer {
86
86
  }
87
87
 
88
88
  /**
89
- * Resolve a bearer token. API_TOKEN env var takes precedence; otherwise the
90
- * OAuth provider handles login/refresh transparently.
89
+ * Resolve a bearer token. HOSTINGER_API_TOKEN / API_TOKEN env vars take
90
+ * precedence; otherwise the OAuth provider handles login/refresh transparently.
91
91
  */
92
92
  async getAuthToken() {
93
93
  return await this.oauth.getAccessToken();
@@ -1893,7 +1893,7 @@ class MCPServer {
1893
1893
  }
1894
1894
  };
1895
1895
 
1896
- const envToken = process.env['API_TOKEN'] || process.env['APITOKEN'];
1896
+ const envToken = getEnvToken();
1897
1897
  let bearerToken = await this.getAuthToken();
1898
1898
  config.headers['Authorization'] = `Bearer ${bearerToken}`;
1899
1899
 
@@ -2075,17 +2075,18 @@ export async function startServer({ name, version, tools }) {
2075
2075
  ${name}
2076
2076
  Usage: ${name} [options]
2077
2077
  Options:
2078
- --http Use HTTP streaming transport (requires API_TOKEN env var)
2079
- --stdio Use standard input/output transport (default)
2080
- --host <host> Host to bind to (default: 127.0.0.1)
2081
- --port <port> Port to bind to (default: 8100)
2082
- --login Run OAuth sign-in flow and exit
2083
- --logout Revoke stored OAuth credentials and exit
2084
- --help Show this help message
2078
+ --http Use HTTP streaming transport (requires HOSTINGER_API_TOKEN env var)
2079
+ --stdio Use standard input/output transport (default)
2080
+ --host <host> Host to bind to (default: 127.0.0.1)
2081
+ --port <port> Port to bind to (default: 8100)
2082
+ --login Run OAuth sign-in flow and exit
2083
+ --logout Revoke stored OAuth credentials and exit
2084
+ --help Show this help message
2085
2085
  Environment Variables:
2086
- API_TOKEN Hostinger API token (overrides OAuth when set)
2087
- OAUTH_ISSUER OAuth server base URL (default: https://auth.hostinger.com)
2088
- DEBUG Enable debug logging (true/false)
2086
+ HOSTINGER_API_TOKEN Hostinger API token (overrides OAuth when set)
2087
+ API_TOKEN Deprecated alias for HOSTINGER_API_TOKEN (will be removed in a future version)
2088
+ OAUTH_ISSUER OAuth server base URL (default: https://auth.hostinger.com)
2089
+ DEBUG Enable debug logging (true/false)
2089
2090
  `);
2090
2091
  process.exit(0);
2091
2092
  }
@@ -2106,9 +2107,9 @@ export async function startServer({ name, version, tools }) {
2106
2107
  }
2107
2108
 
2108
2109
  if (argv.http) {
2109
- const envToken = process.env['API_TOKEN'] || process.env['APITOKEN'];
2110
+ const envToken = getEnvToken();
2110
2111
  if (!envToken) {
2111
- console.error('[Error] HTTP transport requires the API_TOKEN environment variable. OAuth sign-in is only supported in stdio mode.');
2112
+ console.error('[Error] HTTP transport requires the HOSTINGER_API_TOKEN environment variable. OAuth sign-in is only supported in stdio mode.');
2112
2113
  process.exit(1);
2113
2114
  }
2114
2115
  }
@@ -12,7 +12,7 @@ import {
12
12
  CallToolRequestSchema,
13
13
  Tool,
14
14
  } from "@modelcontextprotocol/sdk/types.js";
15
- import { OAuthProvider } from "./oauth.js";
15
+ import { OAuthProvider, getEnvToken } from "./oauth.js";
16
16
  import axios,{ AxiosRequestConfig, AxiosError, AxiosResponse } from "axios";
17
17
  import * as tus from "tus-js-client";
18
18
  import fs from "fs";
@@ -47,7 +47,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
47
47
 
48
48
  /**
49
49
  * MCP Server for Hostinger API
50
- * Generated from OpenAPI spec version 0.11.7
50
+ * Generated from OpenAPI spec version 0.12.0
51
51
  */
52
52
  class MCPServer {
53
53
  private readonly name: string;
@@ -112,8 +112,8 @@ class MCPServer {
112
112
  }
113
113
 
114
114
  /**
115
- * Resolve a bearer token. API_TOKEN env var takes precedence; otherwise the
116
- * OAuth provider handles login/refresh transparently.
115
+ * Resolve a bearer token. HOSTINGER_API_TOKEN / API_TOKEN env vars take
116
+ * precedence; otherwise the OAuth provider handles login/refresh transparently.
117
117
  */
118
118
  private async getAuthToken(): Promise<string> {
119
119
  return await this.oauth.getAccessToken();
@@ -1924,7 +1924,7 @@ class MCPServer {
1924
1924
  }
1925
1925
  };
1926
1926
 
1927
- const envToken = process.env['API_TOKEN'] || process.env['APITOKEN'];
1927
+ const envToken = getEnvToken();
1928
1928
  let bearerToken = await this.getAuthToken();
1929
1929
  if (config.headers) {
1930
1930
  config.headers['Authorization'] = `Bearer ${bearerToken}`;
@@ -2112,17 +2112,18 @@ export async function startServer({ name, version, tools }: { name: string; vers
2112
2112
  ${name}
2113
2113
  Usage: ${name} [options]
2114
2114
  Options:
2115
- --http Use HTTP streaming transport (requires API_TOKEN env var)
2116
- --stdio Use standard input/output transport (default)
2117
- --host <host> Host to bind to (default: 127.0.0.1)
2118
- --port <port> Port to bind to (default: 8100)
2119
- --login Run OAuth sign-in flow and exit
2120
- --logout Revoke stored OAuth credentials and exit
2121
- --help Show this help message
2115
+ --http Use HTTP streaming transport (requires HOSTINGER_API_TOKEN env var)
2116
+ --stdio Use standard input/output transport (default)
2117
+ --host <host> Host to bind to (default: 127.0.0.1)
2118
+ --port <port> Port to bind to (default: 8100)
2119
+ --login Run OAuth sign-in flow and exit
2120
+ --logout Revoke stored OAuth credentials and exit
2121
+ --help Show this help message
2122
2122
  Environment Variables:
2123
- API_TOKEN Hostinger API token (overrides OAuth when set)
2124
- OAUTH_ISSUER OAuth server base URL (default: https://auth.hostinger.com)
2125
- DEBUG Enable debug logging (true/false)
2123
+ HOSTINGER_API_TOKEN Hostinger API token (overrides OAuth when set)
2124
+ API_TOKEN Deprecated alias for HOSTINGER_API_TOKEN (will be removed in a future version)
2125
+ OAUTH_ISSUER OAuth server base URL (default: https://auth.hostinger.com)
2126
+ DEBUG Enable debug logging (true/false)
2126
2127
  `);
2127
2128
  process.exit(0);
2128
2129
  }
@@ -2143,9 +2144,9 @@ export async function startServer({ name, version, tools }: { name: string; vers
2143
2144
  }
2144
2145
 
2145
2146
  if (argv.http) {
2146
- const envToken = process.env['API_TOKEN'] || process.env['APITOKEN'];
2147
+ const envToken = getEnvToken();
2147
2148
  if (!envToken) {
2148
- console.error('[Error] HTTP transport requires the API_TOKEN environment variable. OAuth sign-in is only supported in stdio mode.');
2149
+ console.error('[Error] HTTP transport requires the HOSTINGER_API_TOKEN environment variable. OAuth sign-in is only supported in stdio mode.');
2149
2150
  process.exit(1);
2150
2151
  }
2151
2152
  }
@@ -1570,6 +1570,10 @@ export default [
1570
1570
  "type": "string",
1571
1571
  "description": "surname parameter"
1572
1572
  },
1573
+ "phone": {
1574
+ "type": "string",
1575
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
1576
+ },
1573
1577
  "note": {
1574
1578
  "type": "string",
1575
1579
  "description": "note parameter"
@@ -1787,6 +1791,10 @@ export default [
1787
1791
  "type": "string",
1788
1792
  "description": "surname parameter"
1789
1793
  },
1794
+ "phone": {
1795
+ "type": "string",
1796
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
1797
+ },
1790
1798
  "note": {
1791
1799
  "type": "string",
1792
1800
  "description": "note parameter"
@@ -1580,6 +1580,10 @@ const tools: OpenApiTool[] = [
1580
1580
  "type": "string",
1581
1581
  "description": "surname parameter"
1582
1582
  },
1583
+ "phone": {
1584
+ "type": "string",
1585
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
1586
+ },
1583
1587
  "note": {
1584
1588
  "type": "string",
1585
1589
  "description": "note parameter"
@@ -1797,6 +1801,10 @@ const tools: OpenApiTool[] = [
1797
1801
  "type": "string",
1798
1802
  "description": "surname parameter"
1799
1803
  },
1804
+ "phone": {
1805
+ "type": "string",
1806
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
1807
+ },
1800
1808
  "note": {
1801
1809
  "type": "string",
1802
1810
  "description": "note parameter"
@@ -95,6 +95,10 @@ export default [
95
95
  "type": "string",
96
96
  "description": "surname parameter"
97
97
  },
98
+ "phone": {
99
+ "type": "string",
100
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
101
+ },
98
102
  "note": {
99
103
  "type": "string",
100
104
  "description": "note parameter"
@@ -312,6 +316,10 @@ export default [
312
316
  "type": "string",
313
317
  "description": "surname parameter"
314
318
  },
319
+ "phone": {
320
+ "type": "string",
321
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
322
+ },
315
323
  "note": {
316
324
  "type": "string",
317
325
  "description": "note parameter"
@@ -105,6 +105,10 @@ const tools: OpenApiTool[] = [
105
105
  "type": "string",
106
106
  "description": "surname parameter"
107
107
  },
108
+ "phone": {
109
+ "type": "string",
110
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
111
+ },
108
112
  "note": {
109
113
  "type": "string",
110
114
  "description": "note parameter"
@@ -322,6 +326,10 @@ const tools: OpenApiTool[] = [
322
326
  "type": "string",
323
327
  "description": "surname parameter"
324
328
  },
329
+ "phone": {
330
+ "type": "string",
331
+ "description": "Phone number in E.164 format (leading \"+\" then 7-15 digits)"
332
+ },
325
333
  "note": {
326
334
  "type": "string",
327
335
  "description": "note parameter"
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '0.2.1', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.2', tools });
package/types.d.ts CHANGED
@@ -1019,6 +1019,10 @@ the contact will be created with a pending status and a confirmation email will
1019
1019
  * surname parameter
1020
1020
  */
1021
1021
  surname?: string;
1022
+ /**
1023
+ * Phone number in E.164 format (leading "+" then 7-15 digits)
1024
+ */
1025
+ phone?: string;
1022
1026
  /**
1023
1027
  * note parameter
1024
1028
  */
@@ -1129,6 +1133,10 @@ and a confirmation email will be sent.
1129
1133
  * surname parameter
1130
1134
  */
1131
1135
  surname?: string;
1136
+ /**
1137
+ * Phone number in E.164 format (leading "+" then 7-15 digits)
1138
+ */
1139
+ phone?: string;
1132
1140
  /**
1133
1141
  * note parameter
1134
1142
  */