@things-factory/integration-base 9.0.5 → 9.0.12

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 (53) hide show
  1. package/dist-server/engine/connector/index.d.ts +1 -0
  2. package/dist-server/engine/connector/index.js +1 -0
  3. package/dist-server/engine/connector/index.js.map +1 -1
  4. package/dist-server/engine/connector/pyrun-connector.d.ts +16 -0
  5. package/dist-server/engine/connector/pyrun-connector.js +56 -0
  6. package/dist-server/engine/connector/pyrun-connector.js.map +1 -0
  7. package/dist-server/engine/task/index.d.ts +1 -0
  8. package/dist-server/engine/task/index.js +1 -0
  9. package/dist-server/engine/task/index.js.map +1 -1
  10. package/dist-server/engine/task/publish.js +4 -1
  11. package/dist-server/engine/task/publish.js.map +1 -1
  12. package/dist-server/engine/task/pyrun-execute.d.ts +1 -0
  13. package/dist-server/engine/task/pyrun-execute.js +43 -0
  14. package/dist-server/engine/task/pyrun-execute.js.map +1 -0
  15. package/dist-server/engine/task/state-read.js +4 -1
  16. package/dist-server/engine/task/state-read.js.map +1 -1
  17. package/dist-server/engine/task/state-write.js +4 -1
  18. package/dist-server/engine/task/state-write.js.map +1 -1
  19. package/dist-server/engine/task/utils/substitute-multi.d.ts +7 -0
  20. package/dist-server/engine/task/utils/substitute-multi.js +37 -0
  21. package/dist-server/engine/task/utils/substitute-multi.js.map +1 -0
  22. package/dist-server/tsconfig.tsbuildinfo +1 -1
  23. package/helps/integration/connector/pyrun-connector.ja.md +55 -0
  24. package/helps/integration/connector/pyrun-connector.ko.md +55 -0
  25. package/helps/integration/connector/pyrun-connector.md +55 -0
  26. package/helps/integration/connector/pyrun-connector.ms.md +55 -0
  27. package/helps/integration/connector/pyrun-connector.zh.md +55 -0
  28. package/helps/integration/task/publish.ja.md +46 -8
  29. package/helps/integration/task/publish.ko.md +40 -2
  30. package/helps/integration/task/publish.md +42 -4
  31. package/helps/integration/task/publish.ms.md +42 -4
  32. package/helps/integration/task/publish.zh.md +45 -4
  33. package/helps/integration/task/pyrun-execute.ja.md +36 -0
  34. package/helps/integration/task/pyrun-execute.ko.md +36 -0
  35. package/helps/integration/task/pyrun-execute.md +36 -0
  36. package/helps/integration/task/pyrun-execute.ms.md +36 -0
  37. package/helps/integration/task/pyrun-execute.zh.md +36 -0
  38. package/helps/integration/task/state-read.ja.md +42 -2
  39. package/helps/integration/task/state-read.ko.md +42 -2
  40. package/helps/integration/task/state-read.md +42 -2
  41. package/helps/integration/task/state-read.ms.md +42 -2
  42. package/helps/integration/task/state-read.zh.md +42 -2
  43. package/helps/integration/task/state-write.ja.md +43 -0
  44. package/helps/integration/task/state-write.ko.md +43 -0
  45. package/helps/integration/task/state-write.md +46 -3
  46. package/helps/integration/task/state-write.ms.md +43 -0
  47. package/helps/integration/task/state-write.zh.md +44 -1
  48. package/package.json +2 -2
  49. package/translations/en.json +1 -0
  50. package/translations/ja.json +1 -0
  51. package/translations/ko.json +1 -0
  52. package/translations/ms.json +1 -0
  53. package/translations/zh.json +1 -0
@@ -0,0 +1,36 @@
1
+ # pyrun-execute
2
+
3
+ Tugas ini memanggil REST API pelayan Python Runner (pyrun) (`/api/run/{module}`) melalui pyrun-connector,
4
+ menjalankan modul Python yang ditetapkan dan memulangkan hasilnya.
5
+
6
+ ## Parameter
7
+
8
+ - **module**: Nama modul Python yang hendak dijalankan (wajib)
9
+ - **input-params**: (Pilihan) Parameter input (objek pasangan kunci-nilai) untuk dihantar ke modul Python
10
+
11
+ ## Contoh Penggunaan
12
+
13
+ ```json
14
+ {
15
+ "task": "pyrun-execute",
16
+ "connection": "my-pyrun",
17
+ "params": {
18
+ "module": "hello_world",
19
+ "input": {
20
+ "name": "Ali",
21
+ "count": 3
22
+ }
23
+ }
24
+ }
25
+ ```
26
+
27
+ ## Hasil
28
+
29
+ - Jika berjaya, hasil pelaksanaan modul Python akan dipulangkan.
30
+ - Output piawai (stdout) akan direkodkan dalam log, dan ralat piawai (stderr) akan dianggap sebagai ralat.
31
+ - Jika exit_code bukan 0, tugas dianggap gagal dan ralat akan dibangkitkan.
32
+
33
+ ## Nota
34
+
35
+ - Pengesahan pyrun-connector (token atau username/password) mungkin diperlukan.
36
+ - Parameter input akan dihantar sebagai objek `input` ke modul Python.
@@ -0,0 +1,36 @@
1
+ # pyrun-execute
2
+
3
+ 通过 pyrun-connector 调用 Python Runner (pyrun) 服务器的 REST API(`/api/run/{module}`),
4
+ 执行指定的 Python 模块并返回执行结果的任务。
5
+
6
+ ## 参数
7
+
8
+ - **module**: 要执行的 Python 模块名称(必填)
9
+ - **input-params**: (可选)传递给 Python 模块的输入参数(键值对对象)
10
+
11
+ ## 使用示例
12
+
13
+ ```json
14
+ {
15
+ "task": "pyrun-execute",
16
+ "connection": "my-pyrun",
17
+ "params": {
18
+ "module": "hello_world",
19
+ "input": {
20
+ "name": "张三",
21
+ "count": 3
22
+ }
23
+ }
24
+ }
25
+ ```
26
+
27
+ ## 执行结果
28
+
29
+ - 执行成功时,返回 Python 模块的执行结果(result)。
30
+ - 执行过程中标准输出(stdout)会被记录为日志,标准错误(stderr)会作为错误处理。
31
+ - exit_code 不为 0 时,任务会被视为失败并抛出错误。
32
+
33
+ ## 备注
34
+
35
+ - 可能需要 pyrun-connector 的认证设置(token 或 username/password)。
36
+ - 输入参数会作为 `input` 对象传递给 Python 模块。
@@ -1,8 +1,48 @@
1
1
  # state-read
2
2
 
3
- [状態登録簿(state-register)](../concept/state-register.md)で定義されている状態の値を読み取るタスクです。
3
+ [状態登録簿(state-register)](../concept/state-register.md)に定義された一つの状態から値を読み取るタスクです。
4
4
 
5
5
  ## パラメーター
6
6
 
7
7
  - 名前
8
- - 取得する状態の「名前」を指定します
8
+ - 読み取りたい対象状態の「名前」を指定します
9
+ - **動的サポート**: 以下のパターンを使用した動的置換をサポートします:
10
+ - `#{user.id}_status` - #{...} パターン使用
11
+ - `${user.role}_prefs` - ${...} パターン使用
12
+ - `{{domain.name}}_data` - {{...}} パターン使用
13
+ - `static_name` - 静的名前 (置換なし)
14
+
15
+ ## 使用例
16
+
17
+ ### 静的使用
18
+
19
+ ```json
20
+ {
21
+ "task": "state-read",
22
+ "params": {
23
+ "name": "machine-10"
24
+ }
25
+ }
26
+ ```
27
+
28
+ ### 動的使用
29
+
30
+ ```json
31
+ {
32
+ "task": "state-read",
33
+ "params": {
34
+ "name": "#{machine.code}"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### 混合使用
40
+
41
+ ```json
42
+ {
43
+ "task": "state-read",
44
+ "params": {
45
+ "name": "#{machine.code}_${sensor.code}"
46
+ }
47
+ }
48
+ ```
@@ -1,8 +1,48 @@
1
1
  # state-read
2
2
 
3
- [상태등록부(state-register)](../concept/state-register.md)에 정의된 하나의 상태의 값을 읽어오는 태스크이다.
3
+ [상태등록부(state-register)](../concept/state-register.md)에 정의된 하나의 상태에 값을 읽는 태스크이다.
4
4
 
5
5
  ## parameters
6
6
 
7
7
  - name
8
- - 가져올 상태 "이름"을 지정한다
8
+ - 읽고자 하는 대상 상태 "이름"을 지정한다
9
+ - **동적 지원**: 다음 패턴을 사용한 동적 치환을 지원합니다:
10
+ - `#{user.id}_status` - #{...} 패턴 사용
11
+ - `${user.role}_prefs` - ${...} 패턴 사용
12
+ - `{{domain.name}}_data` - {{...}} 패턴 사용
13
+ - `static_name` - 정적 이름 (치환 없음)
14
+
15
+ ## 사용 예시
16
+
17
+ ### 정적 사용
18
+
19
+ ```json
20
+ {
21
+ "task": "state-read",
22
+ "params": {
23
+ "name": "machine-10"
24
+ }
25
+ }
26
+ ```
27
+
28
+ ### 동적 사용
29
+
30
+ ```json
31
+ {
32
+ "task": "state-read",
33
+ "params": {
34
+ "name": "#{machine.code}"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### 혼합 사용
40
+
41
+ ```json
42
+ {
43
+ "task": "state-read",
44
+ "params": {
45
+ "name": "#{machine.code}_${sensor.code}"
46
+ }
47
+ }
48
+ ```
@@ -1,8 +1,48 @@
1
1
  # state-read
2
2
 
3
- [State Register](../concept/state-register.md) defines a task to read the value of a state.
3
+ [State Register](../concept/state-register.md) defines a task to read values from one state.
4
4
 
5
5
  ## parameters
6
6
 
7
7
  - name
8
- - Specifies the "name" of the state to be retrieved
8
+ - Specifies the "name" of the target state to be read
9
+ - **Dynamic Support**: Supports dynamic substitution using the following patterns:
10
+ - `#{user.id}_status` - Using #{...} pattern
11
+ - `${user.role}_prefs` - Using ${...} pattern
12
+ - `{{domain.name}}_data` - Using {{...}} pattern
13
+ - `static_name` - Static name (no substitution)
14
+
15
+ ## Usage Examples
16
+
17
+ ### Static Usage
18
+
19
+ ```json
20
+ {
21
+ "task": "state-read",
22
+ "params": {
23
+ "name": "machine-10"
24
+ }
25
+ }
26
+ ```
27
+
28
+ ### Dynamic Usage
29
+
30
+ ```json
31
+ {
32
+ "task": "state-read",
33
+ "params": {
34
+ "name": "#{machine.code}"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Mixed Usage
40
+
41
+ ```json
42
+ {
43
+ "task": "state-read",
44
+ "params": {
45
+ "name": "#{machine.code}_${sensor.code}"
46
+ }
47
+ }
48
+ ```
@@ -1,8 +1,48 @@
1
1
  # state-read
2
2
 
3
- [Daftar keadaan(state-register)](../concept/state-register.md) mendefinisikan tugas untuk membaca nilai suatu keadaan.
3
+ [Daftar keadaan(state-register)](../concept/state-register.md) mendefinisikan tugas untuk membaca nilai dari satu keadaan.
4
4
 
5
5
  ## parameter
6
6
 
7
7
  - nama
8
- - Menentukan "nama" keadaan yang hendak diambil
8
+ - Menentukan "nama" keadaan sasaran yang ingin dibaca
9
+ - **Sokongan Dinamik**: Menyokong penggantian dinamik menggunakan corak:
10
+ - `#{user.id}_status` - Menggunakan corak #{...}
11
+ - `${user.role}_prefs` - Menggunakan corak ${...}
12
+ - `{{domain.name}}_data` - Menggunakan corak {{...}}
13
+ - `static_name` - Nama statik (tiada penggantian)
14
+
15
+ ## Contoh Penggunaan
16
+
17
+ ### Penggunaan Statik
18
+
19
+ ```json
20
+ {
21
+ "task": "state-read",
22
+ "params": {
23
+ "name": "machine-10"
24
+ }
25
+ }
26
+ ```
27
+
28
+ ### Penggunaan Dinamik
29
+
30
+ ```json
31
+ {
32
+ "task": "state-read",
33
+ "params": {
34
+ "name": "#{machine.code}"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Penggunaan Campuran
40
+
41
+ ```json
42
+ {
43
+ "task": "state-read",
44
+ "params": {
45
+ "name": "#{machine.code}_${sensor.code}"
46
+ }
47
+ }
48
+ ```
@@ -1,8 +1,48 @@
1
1
  # state-read
2
2
 
3
- [状态登记册(state-register)](../concept/state-register.md)中定义了一个状态值的读取任务。
3
+ [状态登记册(state-register)](../concept/state-register.md)中定义了从一个状态读取值的任务。
4
4
 
5
5
  ## 参数
6
6
 
7
7
  - 名称
8
- - 指定要获取的状态的“名称”
8
+ - 指定要读取的目标状态的"名称"
9
+ - **动态支持**: 支持使用以下模式的动态替换:
10
+ - `#{user.id}_status` - 使用 #{...} 模式
11
+ - `${user.role}_prefs` - 使用 ${...} 模式
12
+ - `{{domain.name}}_data` - 使用 {{...}} 模式
13
+ - `static_name` - 静态名称 (无替换)
14
+
15
+ ## 使用示例
16
+
17
+ ### 静态使用
18
+
19
+ ```json
20
+ {
21
+ "task": "state-read",
22
+ "params": {
23
+ "name": "machine-10"
24
+ }
25
+ }
26
+ ```
27
+
28
+ ### 动态使用
29
+
30
+ ```json
31
+ {
32
+ "task": "state-read",
33
+ "params": {
34
+ "name": "#{machine.code}"
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### 混合使用
40
+
41
+ ```json
42
+ {
43
+ "task": "state-read",
44
+ "params": {
45
+ "name": "#{machine.code}_${sensor.code}"
46
+ }
47
+ }
48
+ ```
@@ -8,5 +8,48 @@
8
8
 
9
9
  - 名前
10
10
  - 書き込みたい対象状態の「名前」を指定します
11
+ - **動的サポート**: 以下のパターンを使用した動的置換をサポートします:
12
+ - `#{user.id}_status` - #{...} パターン使用
13
+ - `${user.role}_prefs` - ${...} パターン使用
14
+ - `{{domain.name}}_data` - {{...}} パターン使用
15
+ - `static_name` - 静的名前 (置換なし)
11
16
  - [アクセサ](../concept/data-accessor.md)
12
17
  - シナリオ内のステップ名で、書き込みたいデータを指定します。
18
+
19
+ ## 使用例
20
+
21
+ ### 静的使用
22
+
23
+ ```json
24
+ {
25
+ "task": "state-write",
26
+ "params": {
27
+ "name": "user_status",
28
+ "accessor": "machine-10"
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### 動的使用
34
+
35
+ ```json
36
+ {
37
+ "task": "state-write",
38
+ "params": {
39
+ "name": "#{machine.code}",
40
+ "accessor": "result.status"
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### 混合使用
46
+
47
+ ```json
48
+ {
49
+ "task": "state-write",
50
+ "params": {
51
+ "name": "#{machine.code}_${sensor.code}",
52
+ "accessor": "user.preferences"
53
+ }
54
+ }
55
+ ```
@@ -8,5 +8,48 @@
8
8
 
9
9
  - name
10
10
  - 쓰고자 하는 대상 상태 "이름"을 지정한다
11
+ - **동적 지원**: 다음 패턴을 사용한 동적 치환을 지원합니다:
12
+ - `#{user.id}_status` - #{...} 패턴 사용
13
+ - `${user.role}_prefs` - ${...} 패턴 사용
14
+ - `{{domain.name}}_data` - {{...}} 패턴 사용
15
+ - `static_name` - 정적 이름 (치환 없음)
11
16
  - [accessor](../concept/data-accessor.md)
12
17
  - 시나리오 내의 하나의 스텝이름으로, 쓰고자 하는 데이타를 지정한다.
18
+
19
+ ## 사용 예시
20
+
21
+ ### 정적 사용
22
+
23
+ ```json
24
+ {
25
+ "task": "state-write",
26
+ "params": {
27
+ "name": "user_status",
28
+ "accessor": "machine-10"
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### 동적 사용
34
+
35
+ ```json
36
+ {
37
+ "task": "state-write",
38
+ "params": {
39
+ "name": "#{machine.code}",
40
+ "accessor": "result.status"
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### 혼합 사용
46
+
47
+ ```json
48
+ {
49
+ "task": "state-write",
50
+ "params": {
51
+ "name": "#{machine.code}_${sensor.code}",
52
+ "accessor": "user.preferences"
53
+ }
54
+ }
55
+ ```
@@ -1,12 +1,55 @@
1
1
  # state-write
2
2
 
3
- [State Register](../concept/state-register.md) defines a task for writing a value to a state.
3
+ [State Register](../concept/state-register.md) defines a task to write values to one state.
4
4
 
5
- > ⚠️ If the StateRegister with the specified name has autoPublish enabled, writing a value will automatically trigger a data publish event.
5
+ > ⚠️ If autoPublish is set to true in the StateRegister with the specified name, data publish will automatically occur when writing values.
6
6
 
7
7
  ## parameters
8
8
 
9
9
  - name
10
10
  - Specifies the "name" of the target state to be written
11
+ - **Dynamic Support**: Supports dynamic substitution using the following patterns:
12
+ - `#{user.id}_status` - Using #{...} pattern
13
+ - `${user.role}_prefs` - Using ${...} pattern
14
+ - `{{domain.name}}_data` - Using {{...}} pattern
15
+ - `static_name` - Static name (no substitution)
11
16
  - [accessor](../concept/data-accessor.md)
12
- - A step name within the scenario, specifying the data to be written.
17
+ - As a step name within the scenario, specifies the data to be written.
18
+
19
+ ## Usage Examples
20
+
21
+ ### Static Usage
22
+
23
+ ```json
24
+ {
25
+ "task": "state-write",
26
+ "params": {
27
+ "name": "user_status",
28
+ "accessor": "machine-10"
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### Dynamic Usage
34
+
35
+ ```json
36
+ {
37
+ "task": "state-write",
38
+ "params": {
39
+ "name": "#{machine.code}",
40
+ "accessor": "result.status"
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### Mixed Usage
46
+
47
+ ```json
48
+ {
49
+ "task": "state-write",
50
+ "params": {
51
+ "name": "#{machine.code}_${sensor.code}",
52
+ "accessor": "user.preferences"
53
+ }
54
+ }
55
+ ```
@@ -8,5 +8,48 @@
8
8
 
9
9
  - nama
10
10
  - Menentukan "nama" keadaan sasaran yang ingin ditulis
11
+ - **Sokongan Dinamik**: Menyokong penggantian dinamik menggunakan corak:
12
+ - `#{user.id}_status` - Menggunakan corak #{...}
13
+ - `${user.role}_prefs` - Menggunakan corak ${...}
14
+ - `{{domain.name}}_data` - Menggunakan corak {{...}}
15
+ - `static_name` - Nama statik (tiada penggantian)
11
16
  - [aksesor](../concept/data-accessor.md)
12
17
  - Sebuah nama langkah dalam skenario, yang menentukan data yang ingin ditulis.
18
+
19
+ ## Contoh Penggunaan
20
+
21
+ ### Penggunaan Statik
22
+
23
+ ```json
24
+ {
25
+ "task": "state-write",
26
+ "params": {
27
+ "name": "user_status",
28
+ "accessor": "machine-10"
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### Penggunaan Dinamik
34
+
35
+ ```json
36
+ {
37
+ "task": "state-write",
38
+ "params": {
39
+ "name": "#{machine.code}",
40
+ "accessor": "result.status"
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### Penggunaan Campuran
46
+
47
+ ```json
48
+ {
49
+ "task": "state-write",
50
+ "params": {
51
+ "name": "#{machine.code}_${sensor.code}",
52
+ "accessor": "user.preferences"
53
+ }
54
+ }
55
+ ```
@@ -7,6 +7,49 @@
7
7
  ## 参数
8
8
 
9
9
  - 名称
10
- - 指定要写入的目标状态的“名称”
10
+ - 指定要写入的目标状态的"名称"
11
+ - **动态支持**: 支持使用以下模式的动态替换:
12
+ - `#{user.id}_status` - 使用 #{...} 模式
13
+ - `${user.role}_prefs` - 使用 ${...} 模式
14
+ - `{{domain.name}}_data` - 使用 {{...}} 模式
15
+ - `static_name` - 静态名称 (无替换)
11
16
  - [访问器](../concept/data-accessor.md)
12
17
  - 在场景中的一个步骤名称,用于指定要写入的数据。
18
+
19
+ ## 使用示例
20
+
21
+ ### 静态使用
22
+
23
+ ```json
24
+ {
25
+ "task": "state-write",
26
+ "params": {
27
+ "name": "user_status",
28
+ "accessor": "machine-10"
29
+ }
30
+ }
31
+ ```
32
+
33
+ ### 动态使用
34
+
35
+ ```json
36
+ {
37
+ "task": "state-write",
38
+ "params": {
39
+ "name": "#{machine.code}",
40
+ "accessor": "result.status"
41
+ }
42
+ }
43
+ ```
44
+
45
+ ### 混合使用
46
+
47
+ ```json
48
+ {
49
+ "task": "state-write",
50
+ "params": {
51
+ "name": "#{machine.code}_${sensor.code}",
52
+ "accessor": "user.preferences"
53
+ }
54
+ }
55
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-base",
3
- "version": "9.0.5",
3
+ "version": "9.0.12",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -45,5 +45,5 @@
45
45
  "readline": "^1.3.0",
46
46
  "ses": "^1.5.0"
47
47
  },
48
- "gitHead": "da760d5cf77e2495da74360b1cdc1f99f13bb65f"
48
+ "gitHead": "2bb9eb1ca59f8b080ae7b0589c1cc085fe0f8a3f"
49
49
  }
@@ -8,6 +8,7 @@
8
8
  "label.auth-key": "authentication key",
9
9
  "label.connectionTimeoutMillis": "Connection Timeout (milliseconds)",
10
10
  "label.idleTimeoutMillis": "Idle Timeout (milliseconds)",
11
+ "label.input-params": "input parameters",
11
12
  "label.login-api-url": "login API URL",
12
13
  "label.login-page-path": "login page path",
13
14
  "label.maxPoolConnection": "Max Pool Connection",
@@ -8,6 +8,7 @@
8
8
  "label.auth-key": "認証キー",
9
9
  "label.connectionTimeoutMillis": "接続タイムアウト(ミリ秒)",
10
10
  "label.idleTimeoutMillis": "アイドルタイムアウト(ミリ秒)",
11
+ "label.input-params": "入力パラメータ",
11
12
  "label.login-api-url": "ログインAPI URL",
12
13
  "label.login-page-path": "ログインページパス",
13
14
  "label.maxPoolConnection": "最大プール接続数",
@@ -8,6 +8,7 @@
8
8
  "label.auth-key": "인증 키",
9
9
  "label.connectionTimeoutMillis": "연결 시간 제한 (밀리초)",
10
10
  "label.idleTimeoutMillis": "유휴 시간 제한 (밀리초)",
11
+ "label.input-params": "입력 파라미터",
11
12
  "label.login-api-url": "로그인 API URL",
12
13
  "label.login-page-path": "로그인 페이지 경로",
13
14
  "label.maxPoolConnection": "최대 풀 연결 수",
@@ -8,6 +8,7 @@
8
8
  "label.auth-key": "Kunci pengesahan",
9
9
  "label.connectionTimeoutMillis": "Had Masa Sambungan (milisaat)",
10
10
  "label.idleTimeoutMillis": "Had Masa Tanpa Aktiviti (milisaat)",
11
+ "label.input-params": "parameter input",
11
12
  "label.login-api-url": "URL API log masuk",
12
13
  "label.login-page-path": "laluan halaman log masuk",
13
14
  "label.maxPoolConnection": "Sambungan Pool Maksimum",
@@ -8,6 +8,7 @@
8
8
  "label.auth-key": "认证密钥",
9
9
  "label.connectionTimeoutMillis": "连接超时时间(毫秒)",
10
10
  "label.idleTimeoutMillis": "空闲超时时间(毫秒)",
11
+ "label.input-params": "输入参数",
11
12
  "label.login-api-url": "登录API URL",
12
13
  "label.login-page-path": "登录页面路径",
13
14
  "label.maxPoolConnection": "最大连接池连接数",