@webos-tools/cli 3.0.6 → 3.1.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 (159) hide show
  1. package/.eslintignore +1 -1
  2. package/.eslintrc.js +52 -52
  3. package/APIs.js +79 -79
  4. package/CHANGELOG.md +157 -138
  5. package/LICENSE +201 -201
  6. package/README.md +218 -218
  7. package/bin/ares-config.js +199 -199
  8. package/bin/ares-device-info.js +30 -30
  9. package/bin/ares-device.js +219 -219
  10. package/bin/ares-generate.js +274 -270
  11. package/bin/ares-inspect.js +179 -179
  12. package/bin/ares-install.js +223 -223
  13. package/bin/ares-launch.js +318 -318
  14. package/bin/ares-log.js +255 -255
  15. package/bin/ares-novacom.js +220 -223
  16. package/bin/ares-package.js +336 -336
  17. package/bin/ares-pull.js +156 -156
  18. package/bin/ares-push.js +155 -155
  19. package/bin/ares-server.js +174 -174
  20. package/bin/ares-setup-device.js +528 -520
  21. package/bin/ares-shell.js +132 -132
  22. package/bin/ares.js +166 -166
  23. package/files/conf/ares.json +49 -49
  24. package/files/conf/command-service.json +73 -73
  25. package/files/conf/config.json +31 -22
  26. package/files/conf/ipk.json +30 -30
  27. package/files/conf/novacom-devices.json +35 -35
  28. package/files/conf/query/query-app.json +14 -14
  29. package/files/conf/query/query-hosted.json +18 -18
  30. package/files/conf/query/query-package.json +10 -10
  31. package/files/conf/query/query-service.json +6 -6
  32. package/files/conf/sdk.json +8 -8
  33. package/files/conf/template.json +57 -57
  34. package/files/conf/webos_emul +27 -27
  35. package/files/conf-base/env/sdk-ose.json +8 -8
  36. package/files/conf-base/env/sdk-tv.json +8 -8
  37. package/files/conf-base/profile/config-ose.json +29 -21
  38. package/files/conf-base/profile/config-tv.json +31 -22
  39. package/files/conf-base/query/query-app.json +14 -14
  40. package/files/conf-base/query/query-hosted.json +18 -18
  41. package/files/conf-base/query/query-package.json +10 -10
  42. package/files/conf-base/query/query-service.json +6 -6
  43. package/files/conf-base/template-conf/ose-templates.json +67 -67
  44. package/files/conf-base/template-conf/tv-sdk-templates.json +57 -57
  45. package/files/help/ares-config.help +43 -43
  46. package/files/help/ares-device.help +94 -94
  47. package/files/help/ares-generate.help +65 -65
  48. package/files/help/ares-inspect.help +70 -70
  49. package/files/help/ares-install.help +90 -90
  50. package/files/help/ares-launch.help +100 -100
  51. package/files/help/ares-log-pmlogd.help +84 -84
  52. package/files/help/ares-log.help +101 -101
  53. package/files/help/ares-novacom.help +68 -68
  54. package/files/help/ares-package.help +101 -101
  55. package/files/help/ares-pull.help +38 -38
  56. package/files/help/ares-push.help +38 -38
  57. package/files/help/ares-server.help +39 -39
  58. package/files/help/ares-setup-device.help +116 -75
  59. package/files/help/ares-shell.help +42 -42
  60. package/files/help/ares.help +47 -47
  61. package/files/help/readme.help +23 -23
  62. package/files/schema/ApplicationDescription.schema +319 -319
  63. package/files/schema/NovacomDevices.schema +61 -61
  64. package/files/templates/ose-sdk-templates/appinfo/appinfo.json +10 -10
  65. package/files/templates/ose-sdk-templates/bootplate-web/index.html +88 -88
  66. package/files/templates/ose-sdk-templates/hosted-webapp/index.html +13 -13
  67. package/files/templates/ose-sdk-templates/icon/icon.png +0 -0
  68. package/files/templates/ose-sdk-templates/js-service/helloclient.js +31 -31
  69. package/files/templates/ose-sdk-templates/js-service/helloworld_webos_service.js +188 -188
  70. package/files/templates/ose-sdk-templates/qml-app/main.qml +68 -68
  71. package/files/templates/ose-sdk-templates/qmlappinfo/appinfo.json +10 -10
  72. package/files/templates/ose-sdk-templates/serviceinfo/package.json +11 -11
  73. package/files/templates/ose-sdk-templates/serviceinfo/services.json +8 -8
  74. package/files/templates/tv-sdk-templates/appinfo/appinfo.json +10 -10
  75. package/files/templates/tv-sdk-templates/bootplate-web/index.html +58 -58
  76. package/files/templates/tv-sdk-templates/bootplate-web/webOSTVjs-1.2.10/LICENSE-2.0.txt +202 -202
  77. package/files/templates/tv-sdk-templates/hosted-webapp/index.html +14 -14
  78. package/files/templates/tv-sdk-templates/js-service/helloworld_service.js +39 -39
  79. package/files/templates/tv-sdk-templates/packageinfo/packageinfo.json +3 -3
  80. package/files/templates/tv-sdk-templates/serviceinfo/package.json +11 -11
  81. package/files/templates/tv-sdk-templates/serviceinfo/services.json +8 -8
  82. package/files/templates/tv-sdk-templates/webicon/icon.png +0 -0
  83. package/files/templates/tv-sdk-templates/webicon/largeIcon.png +0 -0
  84. package/lib/base/ares.html +40 -40
  85. package/lib/base/cli-appdata.js +290 -290
  86. package/lib/base/cli-control.js +44 -44
  87. package/lib/base/common-tools.js +29 -29
  88. package/lib/base/error-handler.js +265 -265
  89. package/lib/base/file-watcher.js +155 -155
  90. package/lib/base/help-format.js +147 -147
  91. package/lib/base/luna.js +178 -178
  92. package/lib/base/novacom.js +1202 -1191
  93. package/lib/base/sdkenv.js +59 -59
  94. package/lib/base/server.js +137 -137
  95. package/lib/base/setup-device.js +335 -328
  96. package/lib/base/version-tools.js +79 -79
  97. package/lib/device.js +1419 -1419
  98. package/lib/generator.js +377 -377
  99. package/lib/inspect.js +493 -494
  100. package/lib/install.js +463 -463
  101. package/lib/launch.js +605 -605
  102. package/lib/log.js +584 -584
  103. package/lib/package.js +2147 -2129
  104. package/lib/pull.js +231 -231
  105. package/lib/pusher.js +210 -210
  106. package/lib/session.js +74 -74
  107. package/lib/shell.js +193 -193
  108. package/lib/tar-filter-pack.js +62 -62
  109. package/lib/util/copy.js +31 -31
  110. package/lib/util/createFileName.js +40 -40
  111. package/lib/util/eof.js +30 -30
  112. package/lib/util/json.js +63 -63
  113. package/lib/util/merge.js +14 -14
  114. package/lib/util/objclone.js +40 -40
  115. package/lib/util/spinner.js +37 -37
  116. package/npm-shrinkwrap.json +9242 -9116
  117. package/package.json +100 -100
  118. package/scripts/postinstall.js +24 -24
  119. package/spec/helpers/reporter.js +65 -65
  120. package/spec/jsSpecs/apiTest/generator.spec.js +372 -372
  121. package/spec/jsSpecs/apiTest/inspector.spec.js +89 -89
  122. package/spec/jsSpecs/apiTest/installer.spec.js +67 -67
  123. package/spec/jsSpecs/apiTest/launcher.spec.js +150 -150
  124. package/spec/jsSpecs/apiTest/packager.spec.js +194 -194
  125. package/spec/jsSpecs/apiTest/puller.spec.js +101 -101
  126. package/spec/jsSpecs/apiTest/pusher.spec.js +103 -103
  127. package/spec/jsSpecs/apiTest/server.spec.js +115 -115
  128. package/spec/jsSpecs/apiTest/setupDevice.spec.js +93 -93
  129. package/spec/jsSpecs/apiTest/shell.spec.js +49 -49
  130. package/spec/jsSpecs/ares-config.spec.js +78 -78
  131. package/spec/jsSpecs/ares-device.spec.js +443 -443
  132. package/spec/jsSpecs/ares-generate.spec.js +397 -397
  133. package/spec/jsSpecs/ares-inspect.spec.js +252 -252
  134. package/spec/jsSpecs/ares-install.spec.js +150 -150
  135. package/spec/jsSpecs/ares-launch.spec.js +301 -301
  136. package/spec/jsSpecs/ares-log.spec.js +824 -824
  137. package/spec/jsSpecs/ares-novacom.spec.js +149 -149
  138. package/spec/jsSpecs/ares-package.spec.js +1211 -1211
  139. package/spec/jsSpecs/ares-pull.spec.js +157 -157
  140. package/spec/jsSpecs/ares-push.spec.js +146 -146
  141. package/spec/jsSpecs/ares-server.spec.js +160 -160
  142. package/spec/jsSpecs/ares-setup-device.spec.js +300 -281
  143. package/spec/jsSpecs/ares-shell.spec.js +220 -220
  144. package/spec/jsSpecs/ares.spec.js +83 -83
  145. package/spec/jsSpecs/common-spec.js +169 -169
  146. package/spec/support/jasmine.json +22 -22
  147. package/spec/tempFiles/nativeApp/auto/pkg_arm64/GLES2 +0 -0
  148. package/spec/tempFiles/nativeApp/auto/pkg_arm64/appinfo.json +9 -9
  149. package/spec/tempFiles/nativeApp/ose/pkg_arm/Hello +0 -0
  150. package/spec/tempFiles/nativeApp/ose/pkg_arm/appinfo.json +8 -8
  151. package/spec/tempFiles/nativeApp/ose/pkg_arm/package.properties +2 -2
  152. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/Hello +0 -0
  153. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/appinfo.json +9 -9
  154. package/spec/tempFiles/nativeApp/rsi/pkg_x86/GLES2 +0 -0
  155. package/spec/tempFiles/nativeApp/rsi/pkg_x86/appinfo.json +9 -9
  156. package/spec/tempFiles/sign/sign.crt +32 -32
  157. package/spec/tempFiles/sign/signPriv.key +52 -52
  158. package/spec/test_data/ares-generate.json +41 -41
  159. package/spec/test_data/ares.json +33 -33
package/README.md CHANGED
@@ -1,218 +1,218 @@
1
- # @webos-tools/cli
2
-
3
- **@webos-tools/cli** is a Command-Line Interface (CLI) for webOS. It provides a collection of commands for creating, packaging, installing, and launching webOS apps or services in a command-line environment. With @webos-tools/cli, you can develop and test your app or service without using any IDE.
4
-
5
- ## Announcement
6
-
7
- **We moved here from @webosose/ares-cli.** In the future, we plan to develop and maintain a single webOS CLI here to support webOS.
8
-
9
- We are releasing a single CLI that supports both webOS OSE and webOS TV through this released CLI (v3.0.0). You can switch to CLI for OSE or TV by installing one CLI and changing only the profile. For more details, see [Profile Settings](#profile-settings).
10
-
11
- ## Installation
12
-
13
- > [!IMPORTANT]
14
- > If @webosose/ares-cli is installed globally, uninstall it before install globally @webos-tools/cli.
15
- >
16
- > ``` shell
17
- > # Uninstall globally @webosose/ares-cli
18
- > $ npm uninstall -g @webosose/ares-cli
19
- > ```
20
- >
21
- > ``` shell
22
- > # Check whether uninstall @webosose/ares-cli
23
- > $ ares -V
24
- > ares: command not found
25
- > ```
26
-
27
- The @webos-tools/cli is installed using `npm`.
28
-
29
- > Note: @webos-tools/cli was tested on Node.js v14.15.1 and v16.20.2.
30
-
31
- You can install @webos-tools/cli using the following command. We recommend installing it globally. For Linux and macOS, you might need the `sudo` command.
32
-
33
- ``` shell
34
- $ npm install -g @webos-tools/cli
35
- ```
36
-
37
- ## Profile Settings
38
-
39
- You can change the profile to `tv` or `ose`. The default profile is `tv` (webOS TV).
40
-
41
- ``` shell
42
- $ ares-config --profile ose
43
- profile and config data is changed to ose
44
- ```
45
-
46
- You can change the profile at any time while using the CLI by using the above command.
47
-
48
- ## Compatibility
49
-
50
- The release cycle of @webos-tools/cli is independent from that of webOS OSE or webOS TV. The latest CLI is compatible with the latest webOS OSE and webOS TV. So, we recommend using the latest version of CLI.
51
-
52
- If you want to use previous version of CLI, check the compatibility table for each platform.
53
-
54
- - [Compatibility of webOS OSE CLI](https://www.webosose.org/docs/tools/sdk/cli/cli-release-notes/#compatibility)
55
- - [Compatibility of webOS TV CLI](https://webostv.developer.lge.com/develop/tools/sdk-introduction#compatible-sdkversiontools-by-release-year)
56
-
57
- ## Command List
58
-
59
- The following table shows a list supported commands. For more details, refer to user guides in [Documentation](#documentation).
60
-
61
- | Command | Description | OSE | TV |
62
- |-------------------|--------------------------------------------------------------------------------|:---:|:--:|
63
- | ares-config | Configures webOS CLI. | v | v |
64
- | ares | Displays the help information for ares commands. | v | v |
65
- | ares-generate | Creates a webOS app or service from templates. | v | v |
66
- | ares-package | Packages the app or services into a package file. | v | v |
67
- | ares-setup-device | Manages the target devices. | v | v |
68
- | ares-novacom | Command Line Tool to control the device. | | v |
69
- | ares-install | Installs the app or service on the target device. | v | v |
70
- | ares-launch | Launches or terminates the app. | v | v |
71
- | ares-inspect | Enables Web Inspector or Node's Inspector for debugging web app or JS service. | v | v |
72
- | ares-server | Runs the Web server for testing local app file. | v | v |
73
- | ares-shell | Executes shell commands in the target device. | v | |
74
- | ares-push | Pushes file(s) from a host machine to a target device. | v | |
75
- | ares-pull | Pulls file(s) from a target device to a host machine. | v | |
76
- | ares-device | Displays the device information. | v | v |
77
- | ares-log | Shows or saves logs of webOS apps and services. | v | |
78
-
79
- ## Documentation
80
-
81
- For `ose` profile:
82
-
83
- - How to use webOS OSE CLI, see the [webOS OSE CLI User Guide](https://www.webosose.org/docs/tools/sdk/cli/cli-user-guide/).
84
- - How to develop external Web/QML/Native apps or JS/Native services for webOS OSE, see the [webOS OSE Tutorials](https://www.webosose.org/docs/tutorials/).
85
-
86
- For `tv` profile:
87
-
88
- - How to use webOS TV CLI, see the [webOS TV CLI Introduction](https://webostv.developer.lge.com/develop/tools/cli-introduction).
89
- - How to develop web apps or JS services for webOS TV, see the [webOS TV Developer Guide](https://webostv.developer.lge.com/develop/tools/cli-dev-guide).
90
-
91
- ## Testing
92
-
93
- You can test the @webos-tools/cli commands and their options to check their validity. Tests are performed by `jasmine`.
94
-
95
- ### Prerequisites
96
-
97
- 1. Turn on the webOS device.
98
- 2. Check the IP address and SSH port number.
99
- 3. (Only for webOS TV) Enable the developer mode. See [App Testing with Developer Mode App](https://webostv.developer.lge.com/develop/getting-started/developer-mode-app)
100
-
101
- ### Performing the Test
102
-
103
- The following table lists the default configurations for the test.
104
-
105
- | Parameter | Value |
106
- | :-------: | :-------: |
107
- | profile | ose |
108
- | device | emulator |
109
- | ip | 127.0.0.1 |
110
- | port | 6622 |
111
-
112
- - Test with default configurations.
113
-
114
- ``` shell
115
- $ jasmine
116
- ```
117
-
118
- or
119
-
120
- ``` shell
121
- $ jasmine --profile=ose --device=emulator --ip=127.0.0.1 --port=6622
122
- ```
123
-
124
- - Test with specific configurations. (The port number can be omitted when using port 22.)
125
-
126
- ``` shell
127
- $ jasmine --profile=ose --device=webOSOSE --ip=192.168.0.12
128
- ```
129
-
130
- - Test with specific port configurations.
131
-
132
- ``` shell
133
- $ jasmine --profile=ose --device=webOSOSE --ip=192.168.0.12 --port=24
134
- ```
135
-
136
- - Test ares-generate command.
137
-
138
- ``` shell
139
- $ jasmine --profile=ose --device=webOSOSE --ip=192.168.0.12 --port=24 spec/jsSpec/ares-generate.js
140
- ```
141
-
142
- - Test the `tv` profile. `passPhrase` must be entered as an input parameter. See [Turning Developer Mode on](https://webostv.developer.lge.com/develop/getting-started/developer-mode-app#installing-developer-mode-app).
143
-
144
- ``` shell
145
- $ jasmine --profile=tv --device=webOSTV --ip=192.168.0.12 --port=9922 --passPhrase=AB12CD
146
- ```
147
-
148
- ## Contributing
149
-
150
- You can contribute your source codes to our repository.
151
-
152
- The step-by-step guide is as follows:
153
-
154
- 1. Fork the [@webos-tools/cli repository](#). Make sure that you fork the whole repository.
155
- 2. Create a new branch from the develop branch.
156
- 3. Implement the source codes and `git push` the changes to the new branch.
157
- 4. Create a pull request. When you write the description for the pull request, make sure you follow [Pull Request Description Guidelines](#pull-request-description-guide).
158
- 5. Submit the pull request to the owner.
159
-
160
- ### Pull Request Description Guide
161
-
162
- The following is an example of the pull reqeust description
163
-
164
- ```
165
- Change ares-device-info to ares-device
166
-
167
- :Release Notes:
168
- Expand the scope of ares-device-info command by changing its name
169
-
170
- :Detailed Notes:
171
- For now, the scope of the ares-device-info command seems to narrow,
172
- so it is hard to add other options to the command (such as capture)
173
- - Rename ares-device-info.js to ares-device.js
174
- - Add --system-info and --session-info options
175
- - Update ares-device TC
176
-
177
- :Testing Performed:
178
- 1. All unit test passed
179
- 2. ESLint done
180
- 3. Check the below commands
181
- $ ares-device
182
- $ ares-device --system-info
183
- $ ares-device --session-info
184
-
185
- :Issues Addressed:
186
- [ISSUE-1] Change ares-device-info to ares-device
187
- ```
188
-
189
- - Summary: Describe the summary of this pull request. Make sure you capitalize the first letter of the summary.
190
- - Release Notes: Describe what this pull request implements.
191
- - Detailed Notes: Describe the problems of this pull request and how to fix them.
192
- - Testing Performed: Describe tests you performed.
193
- - Unit test: Run CLI unit test via `jasmine` on the target device or emulator and write the result. All unit tests must be passed.
194
- - ESlint: Run `eslint` on @webos-tools/cli root directory and write the result. No warning or error would be allowed.
195
- - Detailed test steps for changes: Write commands that can test your changes. Make sure that maintainers can verify your changes using these steps.
196
- - Issues Addressed: Write issue numbers and those summary.
197
-
198
- ## Copyright and License Information
199
-
200
- Unless otherwise specified, all content, including all source code files and documentation files in this repository are:
201
-
202
- Copyright (c) 2020-2024 LG Electronics, Inc.
203
-
204
- All content, including all source code files and documentation files in this repository except otherwise noted are:
205
-
206
- Licensed under the Apache License, Version 2.0 (the "License");
207
- you may not use this file except in compliance with the License.
208
- You may obtain a copy of the License at
209
-
210
- http://www.apache.org/licenses/LICENSE-2.0
211
-
212
- Unless required by applicable law or agreed to in writing, software
213
- distributed under the License is distributed on an "AS IS" BASIS,
214
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
215
- See the License for the specific language governing permissions and
216
- limitations under the License.
217
-
218
- SPDX-License-Identifier: Apache-2.0
1
+ # @webos-tools/cli
2
+
3
+ **@webos-tools/cli** is a Command-Line Interface (CLI) for webOS. It provides a collection of commands for creating, packaging, installing, and launching webOS apps or services in a command-line environment. With @webos-tools/cli, you can develop and test your app or service without using any IDE.
4
+
5
+ ## Announcement
6
+
7
+ **We moved here from @webosose/ares-cli.** In the future, we plan to develop and maintain a single webOS CLI here to support webOS.
8
+
9
+ We are releasing a single CLI that supports both webOS OSE and webOS TV through this released CLI (v3.0.0). You can switch to CLI for OSE or TV by installing one CLI and changing only the profile. For more details, see [Profile Settings](#profile-settings).
10
+
11
+ ## Installation
12
+
13
+ > [!IMPORTANT]
14
+ > If @webosose/ares-cli is installed globally, uninstall it before install globally @webos-tools/cli.
15
+ >
16
+ > ``` shell
17
+ > # Uninstall globally @webosose/ares-cli
18
+ > $ npm uninstall -g @webosose/ares-cli
19
+ > ```
20
+ >
21
+ > ``` shell
22
+ > # Check whether uninstall @webosose/ares-cli
23
+ > $ ares -V
24
+ > ares: command not found
25
+ > ```
26
+
27
+ The @webos-tools/cli is installed using `npm`.
28
+
29
+ > Note: @webos-tools/cli was tested on Node.js v14.15.1 and v16.20.2.
30
+
31
+ You can install @webos-tools/cli using the following command. We recommend installing it globally. For Linux and macOS, you might need the `sudo` command.
32
+
33
+ ``` shell
34
+ $ npm install -g @webos-tools/cli
35
+ ```
36
+
37
+ ## Profile Settings
38
+
39
+ You can change the profile to `tv` or `ose`. The default profile is `tv` (webOS TV).
40
+
41
+ ``` shell
42
+ $ ares-config --profile ose
43
+ profile and config data is changed to ose
44
+ ```
45
+
46
+ You can change the profile at any time while using the CLI by using the above command.
47
+
48
+ ## Compatibility
49
+
50
+ The release cycle of @webos-tools/cli is independent from that of webOS OSE or webOS TV. The latest CLI is compatible with the latest webOS OSE and webOS TV. So, we recommend using the latest version of CLI.
51
+
52
+ If you want to use previous version of CLI, check the compatibility table for each platform.
53
+
54
+ - [Compatibility of webOS OSE CLI](https://www.webosose.org/docs/tools/sdk/cli/cli-release-notes/#compatibility)
55
+ - [Compatibility of webOS TV CLI](https://webostv.developer.lge.com/develop/tools/sdk-introduction#compatible-sdkversiontools-by-release-year)
56
+
57
+ ## Command List
58
+
59
+ The following table shows a list supported commands. For more details, refer to user guides in [Documentation](#documentation).
60
+
61
+ | Command | Description | OSE | TV |
62
+ |-------------------|--------------------------------------------------------------------------------|:---:|:--:|
63
+ | ares-config | Configures webOS CLI. | v | v |
64
+ | ares | Displays the help information for ares commands. | v | v |
65
+ | ares-generate | Creates a webOS app or service from templates. | v | v |
66
+ | ares-package | Packages the app or services into a package file. | v | v |
67
+ | ares-setup-device | Manages the target devices. | v | v |
68
+ | ares-novacom | Command Line Tool to control the device. | | v |
69
+ | ares-install | Installs the app or service on the target device. | v | v |
70
+ | ares-launch | Launches or terminates the app. | v | v |
71
+ | ares-inspect | Enables Web Inspector or Node's Inspector for debugging web app or JS service. | v | v |
72
+ | ares-server | Runs the Web server for testing local app file. | v | v |
73
+ | ares-shell | Executes shell commands in the target device. | v | |
74
+ | ares-push | Pushes file(s) from a host machine to a target device. | v | |
75
+ | ares-pull | Pulls file(s) from a target device to a host machine. | v | |
76
+ | ares-device | Displays the device information. | v | v |
77
+ | ares-log | Shows or saves logs of webOS apps and services. | v | |
78
+
79
+ ## Documentation
80
+
81
+ For `ose` profile:
82
+
83
+ - How to use webOS OSE CLI, see the [webOS OSE CLI User Guide](https://www.webosose.org/docs/tools/sdk/cli/cli-user-guide/).
84
+ - How to develop external Web/QML/Native apps or JS/Native services for webOS OSE, see the [webOS OSE Tutorials](https://www.webosose.org/docs/tutorials/).
85
+
86
+ For `tv` profile:
87
+
88
+ - How to use webOS TV CLI, see the [webOS TV CLI Introduction](https://webostv.developer.lge.com/develop/tools/cli-introduction).
89
+ - How to develop web apps or JS services for webOS TV, see the [webOS TV Developer Guide](https://webostv.developer.lge.com/develop/tools/cli-dev-guide).
90
+
91
+ ## Testing
92
+
93
+ You can test the @webos-tools/cli commands and their options to check their validity. Tests are performed by `jasmine`.
94
+
95
+ ### Prerequisites
96
+
97
+ 1. Turn on the webOS device.
98
+ 2. Check the IP address and SSH port number.
99
+ 3. (Only for webOS TV) Enable the developer mode. See [App Testing with Developer Mode App](https://webostv.developer.lge.com/develop/getting-started/developer-mode-app)
100
+
101
+ ### Performing the Test
102
+
103
+ The following table lists the default configurations for the test.
104
+
105
+ | Parameter | Value |
106
+ | :-------: | :-------: |
107
+ | profile | ose |
108
+ | device | emulator |
109
+ | ip | 127.0.0.1 |
110
+ | port | 6622 |
111
+
112
+ - Test with default configurations.
113
+
114
+ ``` shell
115
+ $ jasmine
116
+ ```
117
+
118
+ or
119
+
120
+ ``` shell
121
+ $ jasmine --profile=ose --device=emulator --ip=127.0.0.1 --port=6622
122
+ ```
123
+
124
+ - Test with specific configurations. (The port number can be omitted when using port 22.)
125
+
126
+ ``` shell
127
+ $ jasmine --profile=ose --device=webOSOSE --ip=192.168.0.12
128
+ ```
129
+
130
+ - Test with specific port configurations.
131
+
132
+ ``` shell
133
+ $ jasmine --profile=ose --device=webOSOSE --ip=192.168.0.12 --port=24
134
+ ```
135
+
136
+ - Test ares-generate command.
137
+
138
+ ``` shell
139
+ $ jasmine --profile=ose --device=webOSOSE --ip=192.168.0.12 --port=24 spec/jsSpec/ares-generate.js
140
+ ```
141
+
142
+ - Test the `tv` profile. `passPhrase` must be entered as an input parameter. See [Turning Developer Mode on](https://webostv.developer.lge.com/develop/getting-started/developer-mode-app#installing-developer-mode-app).
143
+
144
+ ``` shell
145
+ $ jasmine --profile=tv --device=webOSTV --ip=192.168.0.12 --port=9922 --passPhrase=AB12CD
146
+ ```
147
+
148
+ ## Contributing
149
+
150
+ You can contribute your source codes to our repository.
151
+
152
+ The step-by-step guide is as follows:
153
+
154
+ 1. Fork the [@webos-tools/cli repository](#). Make sure that you fork the whole repository.
155
+ 2. Create a new branch from the develop branch.
156
+ 3. Implement the source codes and `git push` the changes to the new branch.
157
+ 4. Create a pull request. When you write the description for the pull request, make sure you follow [Pull Request Description Guidelines](#pull-request-description-guide).
158
+ 5. Submit the pull request to the owner.
159
+
160
+ ### Pull Request Description Guide
161
+
162
+ The following is an example of the pull reqeust description
163
+
164
+ ```
165
+ Change ares-device-info to ares-device
166
+
167
+ :Release Notes:
168
+ Expand the scope of ares-device-info command by changing its name
169
+
170
+ :Detailed Notes:
171
+ For now, the scope of the ares-device-info command seems to narrow,
172
+ so it is hard to add other options to the command (such as capture)
173
+ - Rename ares-device-info.js to ares-device.js
174
+ - Add --system-info and --session-info options
175
+ - Update ares-device TC
176
+
177
+ :Testing Performed:
178
+ 1. All unit test passed
179
+ 2. ESLint done
180
+ 3. Check the below commands
181
+ $ ares-device
182
+ $ ares-device --system-info
183
+ $ ares-device --session-info
184
+
185
+ :Issues Addressed:
186
+ [ISSUE-1] Change ares-device-info to ares-device
187
+ ```
188
+
189
+ - Summary: Describe the summary of this pull request. Make sure you capitalize the first letter of the summary.
190
+ - Release Notes: Describe what this pull request implements.
191
+ - Detailed Notes: Describe the problems of this pull request and how to fix them.
192
+ - Testing Performed: Describe tests you performed.
193
+ - Unit test: Run CLI unit test via `jasmine` on the target device or emulator and write the result. All unit tests must be passed.
194
+ - ESlint: Run `eslint` on @webos-tools/cli root directory and write the result. No warning or error would be allowed.
195
+ - Detailed test steps for changes: Write commands that can test your changes. Make sure that maintainers can verify your changes using these steps.
196
+ - Issues Addressed: Write issue numbers and those summary.
197
+
198
+ ## Copyright and License Information
199
+
200
+ Unless otherwise specified, all content, including all source code files and documentation files in this repository are:
201
+
202
+ Copyright (c) 2020-2024 LG Electronics, Inc.
203
+
204
+ All content, including all source code files and documentation files in this repository except otherwise noted are:
205
+
206
+ Licensed under the Apache License, Version 2.0 (the "License");
207
+ you may not use this file except in compliance with the License.
208
+ You may obtain a copy of the License at
209
+
210
+ http://www.apache.org/licenses/LICENSE-2.0
211
+
212
+ Unless required by applicable law or agreed to in writing, software
213
+ distributed under the License is distributed on an "AS IS" BASIS,
214
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
215
+ See the License for the specific language governing permissions and
216
+ limitations under the License.
217
+
218
+ SPDX-License-Identifier: Apache-2.0