@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
@@ -1,188 +1,188 @@
1
- /*
2
- * Copyright (c) 2020-2024 LG Electronics Inc.
3
- *
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- // helloworld_webos_service.js
8
- // is simple service, based on low-level luna-bus API
9
-
10
- // eslint-disable-next-line import/no-unresolved
11
- const pkgInfo = require('./package.json');
12
- const Service = require('webos-service');
13
-
14
- const service = new Service(pkgInfo.name); // Create service by service name on package.json
15
- const logHeader = "[" + pkgInfo.name + "]";
16
- let greeting = "Hello, World!";
17
-
18
- // a method that always returns the same value
19
- service.register("hello", function(message) {
20
- console.log(logHeader, "SERVICE_METHOD_CALLED:/hello");
21
- console.log("In hello callback");
22
- const name = message.payload.name ? message.payload.name : "World";
23
-
24
- message.respond({
25
- returnValue: true,
26
- Response: "Hello, " + name + "!"
27
- });
28
- });
29
-
30
- // set some state in the service
31
- service.register("/config/setGreeting", function(message) {
32
- console.log(logHeader, "SERVICE_METHOD_CALLED:/config/setGreeting");
33
- console.log("In setGreeting callback");
34
- if (message.payload.greeting) {
35
- greeting = message.payload.greeting;
36
- } else {
37
- message.respond({
38
- returnValue: false,
39
- errorText: "argument 'greeting' is required",
40
- errorCode: 1
41
- });
42
- }
43
- message.respond({
44
- returnValue: true,
45
- greeting: greeting
46
- });
47
- });
48
-
49
- // call another service
50
- service.register("time", function(message) {
51
- console.log(logHeader, "SERVICE_METHOD_CALLED:/time");
52
- console.log("time callback");
53
- service.call("luna://com.webos.service.systemservice/clock/getTime", {}, function(m2) {
54
- console.log(logHeader, "SERVICE_METHOD_CALLED:com.webos.service.systemservice/clock/getTime");
55
- const response = "You appear to have your UTC set to: " + m2.payload.utc;
56
- console.log(response);
57
- message.respond({message: response});
58
- });
59
- });
60
-
61
- // handle subscription requests
62
- const subscriptions = {};
63
- let interval;
64
- let x = 1;
65
- function createInterval() {
66
- if (interval) {
67
- return;
68
- }
69
- console.log(logHeader, "create_interval");
70
- console.log("create new interval");
71
- interval = setInterval(function() {
72
- sendResponses();
73
- }, 1000);
74
- }
75
-
76
- // send responses to each subscribed client
77
- function sendResponses() {
78
- console.log(logHeader, "send_response");
79
- console.log("Sending responses, subscription count=" + Object.keys(subscriptions).length);
80
- for (const i in subscriptions) {
81
- if (Object.prototype.hasOwnProperty.call(subscriptions, i)) {
82
- const s = subscriptions[i];
83
- s.respond({
84
- returnValue: true,
85
- event: "beat " + x
86
- });
87
- }
88
- }
89
- x++;
90
- }
91
-
92
- // listen for requests, and handle subscriptions via implicit event handlers in call
93
- // to register
94
- service.register("heartbeat", function(message) {
95
- const uniqueToken = message.uniqueToken;
96
- console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat");
97
- console.log("heartbeat callback, uniqueToken: " + uniqueToken + ", token: " + message.token);
98
- message.respond({event: "beat"});
99
- if (message.isSubscription) {
100
- subscriptions[uniqueToken] = message;
101
- if (!interval) {
102
- createInterval();
103
- }
104
- }
105
- },
106
- function(message) {
107
- const uniqueToken = message.uniqueToken;
108
- console.log("Canceled " + uniqueToken);
109
- delete subscriptions[uniqueToken];
110
- const keys = Object.keys(subscriptions);
111
- if (keys.length === 0) {
112
- console.log("no more subscriptions, canceling interval");
113
- clearInterval(interval);
114
- interval = undefined;
115
- }
116
- });
117
-
118
- // EventEmitter-based API for subscriptions
119
- // note that the previous examples are actually using this API as well, they're
120
- // just setting a "request" handler implicitly
121
- const heartbeat2 = service.register("heartbeat2");
122
- heartbeat2.on("request", function(message) {
123
- console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat2/request");
124
- console.log("heartbeat callback");
125
- message.respond({event: "beat"});
126
- if (message.isSubscription) {
127
- subscriptions[message.uniqueToken] = message;
128
- if (!interval) {
129
- createInterval();
130
- }
131
- }
132
- });
133
- heartbeat2.on("cancel", function(message) {
134
- console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat2/cancel");
135
- console.log("Canceled " + message.uniqueToken);
136
- delete subscriptions[message.uniqueToken];
137
- const keys = Object.keys(subscriptions);
138
- if (keys.length === 0) {
139
- console.log("no more subscriptions, canceling interval");
140
- clearInterval(interval);
141
- interval = undefined;
142
- }
143
- });
144
-
145
- service.register("ping", function(message) {
146
- console.log(logHeader, "SERVICE_METHOD_CALLED:/ping");
147
- console.log("Ping! setting up activity");
148
- const methodName = "luna://" + pkgInfo.name + "/pong";
149
- const activitySpec = {
150
- "activity": {
151
- "name": "My Activity", // this needs to be unique, per service
152
- "description": "do something", // required
153
- "background": true, // can use foreground or background, or set individual properties (see Activity Specification below, for details)
154
- "persist": true, // this activity will be persistent across reboots
155
- "explicit": true, // this activity *must* be completed or cancelled explicitly, or it will be re-launched until it does
156
- "callback": { // what service to call when this activity starts
157
- "method": methodName, // URI to service
158
- "params": { // parameters/arguments to pass to service
159
- }
160
- }
161
- },
162
- "start": true, // start the activity immediately when its requirements (if any) are met
163
- "replace": true, // if an activity with the same name already exists, replace it
164
- "subscribe": false // if "subscribe" is false, the activity needs to be adopted immediately, or it gets canceled
165
- };
166
- service.call("luna://com.webos.service.activitymanager/create", activitySpec, function(reply) {
167
- console.log(logHeader, "SERVICE_METHOD_CALLED:com.webos.service.activitymanager/create");
168
- const activityId = reply.payload.activityId;
169
- console.log("ActivityId = " + activityId);
170
- message.respond({msg: "Created activity "+ activityId});
171
- });
172
- });
173
-
174
- service.register("pong", function(message) {
175
- console.log(logHeader, "SERVICE_METHOD_CALLED:/pong");
176
- console.log("Pong!");
177
- console.log(message.payload);
178
- message.respond({message: "Pong"});
179
- });
180
-
181
- service.register("/do/re/me", function(message) {
182
- console.log(logHeader, "SERVICE_METHOD_CALLED://do/re/me");
183
- message.respond({verses:[
184
- {doe: "a deer, a female deer"},
185
- {ray: "a drop of golden sun"},
186
- {me: "a name I call myself"}
187
- ]});
188
- });
1
+ /*
2
+ * Copyright (c) 2020-2024 LG Electronics Inc.
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ // helloworld_webos_service.js
8
+ // is simple service, based on low-level luna-bus API
9
+
10
+ // eslint-disable-next-line import/no-unresolved
11
+ const pkgInfo = require('./package.json');
12
+ const Service = require('webos-service');
13
+
14
+ const service = new Service(pkgInfo.name); // Create service by service name on package.json
15
+ const logHeader = "[" + pkgInfo.name + "]";
16
+ let greeting = "Hello, World!";
17
+
18
+ // a method that always returns the same value
19
+ service.register("hello", function(message) {
20
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/hello");
21
+ console.log("In hello callback");
22
+ const name = message.payload.name ? message.payload.name : "World";
23
+
24
+ message.respond({
25
+ returnValue: true,
26
+ Response: "Hello, " + name + "!"
27
+ });
28
+ });
29
+
30
+ // set some state in the service
31
+ service.register("/config/setGreeting", function(message) {
32
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/config/setGreeting");
33
+ console.log("In setGreeting callback");
34
+ if (message.payload.greeting) {
35
+ greeting = message.payload.greeting;
36
+ } else {
37
+ message.respond({
38
+ returnValue: false,
39
+ errorText: "argument 'greeting' is required",
40
+ errorCode: 1
41
+ });
42
+ }
43
+ message.respond({
44
+ returnValue: true,
45
+ greeting: greeting
46
+ });
47
+ });
48
+
49
+ // call another service
50
+ service.register("time", function(message) {
51
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/time");
52
+ console.log("time callback");
53
+ service.call("luna://com.webos.service.systemservice/clock/getTime", {}, function(m2) {
54
+ console.log(logHeader, "SERVICE_METHOD_CALLED:com.webos.service.systemservice/clock/getTime");
55
+ const response = "You appear to have your UTC set to: " + m2.payload.utc;
56
+ console.log(response);
57
+ message.respond({message: response});
58
+ });
59
+ });
60
+
61
+ // handle subscription requests
62
+ const subscriptions = {};
63
+ let interval;
64
+ let x = 1;
65
+ function createInterval() {
66
+ if (interval) {
67
+ return;
68
+ }
69
+ console.log(logHeader, "create_interval");
70
+ console.log("create new interval");
71
+ interval = setInterval(function() {
72
+ sendResponses();
73
+ }, 1000);
74
+ }
75
+
76
+ // send responses to each subscribed client
77
+ function sendResponses() {
78
+ console.log(logHeader, "send_response");
79
+ console.log("Sending responses, subscription count=" + Object.keys(subscriptions).length);
80
+ for (const i in subscriptions) {
81
+ if (Object.prototype.hasOwnProperty.call(subscriptions, i)) {
82
+ const s = subscriptions[i];
83
+ s.respond({
84
+ returnValue: true,
85
+ event: "beat " + x
86
+ });
87
+ }
88
+ }
89
+ x++;
90
+ }
91
+
92
+ // listen for requests, and handle subscriptions via implicit event handlers in call
93
+ // to register
94
+ service.register("heartbeat", function(message) {
95
+ const uniqueToken = message.uniqueToken;
96
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat");
97
+ console.log("heartbeat callback, uniqueToken: " + uniqueToken + ", token: " + message.token);
98
+ message.respond({event: "beat"});
99
+ if (message.isSubscription) {
100
+ subscriptions[uniqueToken] = message;
101
+ if (!interval) {
102
+ createInterval();
103
+ }
104
+ }
105
+ },
106
+ function(message) {
107
+ const uniqueToken = message.uniqueToken;
108
+ console.log("Canceled " + uniqueToken);
109
+ delete subscriptions[uniqueToken];
110
+ const keys = Object.keys(subscriptions);
111
+ if (keys.length === 0) {
112
+ console.log("no more subscriptions, canceling interval");
113
+ clearInterval(interval);
114
+ interval = undefined;
115
+ }
116
+ });
117
+
118
+ // EventEmitter-based API for subscriptions
119
+ // note that the previous examples are actually using this API as well, they're
120
+ // just setting a "request" handler implicitly
121
+ const heartbeat2 = service.register("heartbeat2");
122
+ heartbeat2.on("request", function(message) {
123
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat2/request");
124
+ console.log("heartbeat callback");
125
+ message.respond({event: "beat"});
126
+ if (message.isSubscription) {
127
+ subscriptions[message.uniqueToken] = message;
128
+ if (!interval) {
129
+ createInterval();
130
+ }
131
+ }
132
+ });
133
+ heartbeat2.on("cancel", function(message) {
134
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/heartbeat2/cancel");
135
+ console.log("Canceled " + message.uniqueToken);
136
+ delete subscriptions[message.uniqueToken];
137
+ const keys = Object.keys(subscriptions);
138
+ if (keys.length === 0) {
139
+ console.log("no more subscriptions, canceling interval");
140
+ clearInterval(interval);
141
+ interval = undefined;
142
+ }
143
+ });
144
+
145
+ service.register("ping", function(message) {
146
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/ping");
147
+ console.log("Ping! setting up activity");
148
+ const methodName = "luna://" + pkgInfo.name + "/pong";
149
+ const activitySpec = {
150
+ "activity": {
151
+ "name": "My Activity", // this needs to be unique, per service
152
+ "description": "do something", // required
153
+ "background": true, // can use foreground or background, or set individual properties (see Activity Specification below, for details)
154
+ "persist": true, // this activity will be persistent across reboots
155
+ "explicit": true, // this activity *must* be completed or cancelled explicitly, or it will be re-launched until it does
156
+ "callback": { // what service to call when this activity starts
157
+ "method": methodName, // URI to service
158
+ "params": { // parameters/arguments to pass to service
159
+ }
160
+ }
161
+ },
162
+ "start": true, // start the activity immediately when its requirements (if any) are met
163
+ "replace": true, // if an activity with the same name already exists, replace it
164
+ "subscribe": false // if "subscribe" is false, the activity needs to be adopted immediately, or it gets canceled
165
+ };
166
+ service.call("luna://com.webos.service.activitymanager/create", activitySpec, function(reply) {
167
+ console.log(logHeader, "SERVICE_METHOD_CALLED:com.webos.service.activitymanager/create");
168
+ const activityId = reply.payload.activityId;
169
+ console.log("ActivityId = " + activityId);
170
+ message.respond({msg: "Created activity "+ activityId});
171
+ });
172
+ });
173
+
174
+ service.register("pong", function(message) {
175
+ console.log(logHeader, "SERVICE_METHOD_CALLED:/pong");
176
+ console.log("Pong!");
177
+ console.log(message.payload);
178
+ message.respond({message: "Pong"});
179
+ });
180
+
181
+ service.register("/do/re/me", function(message) {
182
+ console.log(logHeader, "SERVICE_METHOD_CALLED://do/re/me");
183
+ message.respond({verses:[
184
+ {doe: "a deer, a female deer"},
185
+ {ray: "a drop of golden sun"},
186
+ {me: "a name I call myself"}
187
+ ]});
188
+ });
@@ -1,68 +1,68 @@
1
- /*
2
- * Copyright (c) 2020-2024 LG Electronics Inc.
3
- *
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import QtQuick 2.4
8
- import WebOSServices 1.0
9
- import Eos.Window 0.1
10
- import PmLog 1.0
11
-
12
- WebOSWindow {
13
- id: root
14
- width: 1920
15
- height: 1080
16
- visible: true
17
- appId: "com.example.app.qml"
18
- title: "QML app"
19
- color: "lightblue"
20
- displayAffinity: params["displayAffinity"]
21
-
22
- Text {
23
- id: mainText
24
- anchors.centerIn: parent
25
- font.family: "Helvetica"
26
- font.pointSize: 50
27
- text: "Hello, QML Application!!"
28
- }
29
-
30
- property var launchParams: params
31
- onLaunchParamsChanged: {
32
- pmLog.info("LAUNCH_PARAMS", {"params": launchParams})
33
- }
34
-
35
- Service {
36
- id: systemService
37
- appId: "com.example.app.qml"
38
-
39
- function getTime() {
40
- call("luna://com.webos.service.systemservice","/clock/getTime","{}")
41
- }
42
-
43
- onResponse: {
44
- var jsonObject = JSON.parse(payload);
45
- pmLog.info("GETTIME", {"utc": jsonObject.utc});
46
- mainText.text = "UTC : " + jsonObject.utc
47
- }
48
-
49
- onError: {
50
- var jsonObject = JSON.parse(payload);
51
- pmLog.error("GETTIME", {"error": jsonObject});
52
- }
53
- }
54
-
55
- MouseArea {
56
- anchors.fill: parent
57
- onClicked: systemService.getTime()
58
- }
59
-
60
- onWindowStateChanged: {
61
- pmLog.info("WINDOW_CHANGED", {"status": windowState})
62
- }
63
-
64
- PmLog {
65
- id: pmLog
66
- context: "QMLApp"
67
- }
68
- }
1
+ /*
2
+ * Copyright (c) 2020-2024 LG Electronics Inc.
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import QtQuick 2.4
8
+ import WebOSServices 1.0
9
+ import Eos.Window 0.1
10
+ import PmLog 1.0
11
+
12
+ WebOSWindow {
13
+ id: root
14
+ width: 1920
15
+ height: 1080
16
+ visible: true
17
+ appId: "com.example.app.qml"
18
+ title: "QML app"
19
+ color: "lightblue"
20
+ displayAffinity: params["displayAffinity"]
21
+
22
+ Text {
23
+ id: mainText
24
+ anchors.centerIn: parent
25
+ font.family: "Helvetica"
26
+ font.pointSize: 50
27
+ text: "Hello, QML Application!!"
28
+ }
29
+
30
+ property var launchParams: params
31
+ onLaunchParamsChanged: {
32
+ pmLog.info("LAUNCH_PARAMS", {"params": launchParams})
33
+ }
34
+
35
+ Service {
36
+ id: systemService
37
+ appId: "com.example.app.qml"
38
+
39
+ function getTime() {
40
+ call("luna://com.webos.service.systemservice","/clock/getTime","{}")
41
+ }
42
+
43
+ onResponse: {
44
+ var jsonObject = JSON.parse(payload);
45
+ pmLog.info("GETTIME", {"utc": jsonObject.utc});
46
+ mainText.text = "UTC : " + jsonObject.utc
47
+ }
48
+
49
+ onError: {
50
+ var jsonObject = JSON.parse(payload);
51
+ pmLog.error("GETTIME", {"error": jsonObject});
52
+ }
53
+ }
54
+
55
+ MouseArea {
56
+ anchors.fill: parent
57
+ onClicked: systemService.getTime()
58
+ }
59
+
60
+ onWindowStateChanged: {
61
+ pmLog.info("WINDOW_CHANGED", {"status": windowState})
62
+ }
63
+
64
+ PmLog {
65
+ id: pmLog
66
+ context: "QMLApp"
67
+ }
68
+ }
@@ -1,10 +1,10 @@
1
- {
2
- "id": "com.example.app.qml",
3
- "version": "1.0.0",
4
- "vendor": "My Company",
5
- "type": "qml",
6
- "main": "main.qml",
7
- "title": "QML App",
8
- "icon": "icon.png",
9
- "requiredPermissions": ["time.query", "applications.operation"]
10
- }
1
+ {
2
+ "id": "com.example.app.qml",
3
+ "version": "1.0.0",
4
+ "vendor": "My Company",
5
+ "type": "qml",
6
+ "main": "main.qml",
7
+ "title": "QML App",
8
+ "icon": "icon.png",
9
+ "requiredPermissions": ["time.query", "applications.operation"]
10
+ }
@@ -1,11 +1,11 @@
1
- {
2
- "name": "com.domain.app.service",
3
- "version": "1.0.0",
4
- "description": "Helloworld service",
5
- "main": "helloworld_webos_service.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
8
- },
9
- "author": "",
10
- "license": "BSD"
11
- }
1
+ {
2
+ "name": "com.domain.app.service",
3
+ "version": "1.0.0",
4
+ "description": "Helloworld service",
5
+ "main": "helloworld_webos_service.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "author": "",
10
+ "license": "BSD"
11
+ }
@@ -1,8 +1,8 @@
1
- {
2
- "id": "com.domain.app.service",
3
- "description": "HelloWorld Service",
4
- "services": [ {
5
- "name": "com.domain.app.service",
6
- "description": "HelloWorld Service"
7
- } ]
8
- }
1
+ {
2
+ "id": "com.domain.app.service",
3
+ "description": "HelloWorld Service",
4
+ "services": [ {
5
+ "name": "com.domain.app.service",
6
+ "description": "HelloWorld Service"
7
+ } ]
8
+ }
@@ -1,10 +1,10 @@
1
- {
2
- "id": "com.domain.app",
3
- "version": "0.0.1",
4
- "vendor": "My Company",
5
- "type": "web",
6
- "main": "index.html",
7
- "title": "new app",
8
- "icon": "icon.png",
9
- "largeIcon": "largeIcon.png"
10
- }
1
+ {
2
+ "id": "com.domain.app",
3
+ "version": "0.0.1",
4
+ "vendor": "My Company",
5
+ "type": "web",
6
+ "main": "index.html",
7
+ "title": "new app",
8
+ "icon": "icon.png",
9
+ "largeIcon": "largeIcon.png"
10
+ }