@webos-tools/cli 3.2.1 → 3.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.
Files changed (149) hide show
  1. package/.eslintignore +1 -1
  2. package/.eslintrc.js +52 -52
  3. package/APIs.js +79 -79
  4. package/CHANGELOG.md +7 -0
  5. package/LICENSE +201 -201
  6. package/bin/ares-config.js +0 -0
  7. package/bin/ares-device-info.js +30 -30
  8. package/bin/ares-device.js +0 -0
  9. package/bin/ares-generate.js +274 -274
  10. package/bin/ares-inspect.js +179 -179
  11. package/bin/ares-install.js +223 -223
  12. package/bin/ares-launch.js +0 -0
  13. package/bin/ares-log.js +258 -258
  14. package/bin/ares-novacom.js +0 -0
  15. package/bin/ares-package.js +0 -0
  16. package/bin/ares-pull.js +156 -156
  17. package/bin/ares-push.js +155 -155
  18. package/bin/ares-server.js +174 -174
  19. package/bin/ares-setup-device.js +0 -0
  20. package/bin/ares-shell.js +132 -132
  21. package/bin/ares.js +166 -166
  22. package/files/conf/ipk.json +30 -30
  23. package/files/conf/query/query-app.json +14 -14
  24. package/files/conf/query/query-hosted.json +18 -18
  25. package/files/conf/query/query-package.json +10 -10
  26. package/files/conf/query/query-service.json +6 -6
  27. package/files/conf/webos_emul +27 -27
  28. package/files/conf-base/env/sdk-apollo.json +7 -7
  29. package/files/conf-base/env/sdk-ose.json +8 -8
  30. package/files/conf-base/env/sdk-tv.json +8 -8
  31. package/files/conf-base/profile/config-apollo.json +28 -28
  32. package/files/conf-base/profile/config-ose.json +29 -29
  33. package/files/conf-base/profile/config-tv.json +31 -31
  34. package/files/conf-base/query/query-app.json +14 -14
  35. package/files/conf-base/query/query-hosted.json +18 -18
  36. package/files/conf-base/query/query-package.json +10 -10
  37. package/files/conf-base/query/query-service.json +6 -6
  38. package/files/conf-base/template-conf/ose-templates.json +67 -67
  39. package/files/conf-base/template-conf/tv-sdk-templates.json +57 -57
  40. package/files/help/ares-device.help +109 -109
  41. package/files/help/ares-install.help +95 -95
  42. package/files/help/ares-log-pmlogd.help +84 -84
  43. package/files/help/ares-log.help +101 -101
  44. package/files/help/ares-novacom.help +68 -68
  45. package/files/help/ares-pull.help +38 -38
  46. package/files/help/ares-push.help +38 -38
  47. package/files/help/ares-server.help +44 -44
  48. package/files/help/ares-shell.help +42 -42
  49. package/files/help/ares.help +52 -52
  50. package/files/help/readme.help +23 -23
  51. package/files/schema/ApplicationDescription.schema +319 -319
  52. package/files/templates/apollo-sdk-templates/appinfo/appinfo.json +10 -10
  53. package/files/templates/apollo-sdk-templates/bootplate-web/index.html +88 -88
  54. package/files/templates/apollo-sdk-templates/hosted-webapp/index.html +13 -13
  55. package/files/templates/apollo-sdk-templates/js-service/helloclient.js +31 -31
  56. package/files/templates/apollo-sdk-templates/js-service/helloworld_webos_service.js +188 -188
  57. package/files/templates/apollo-sdk-templates/serviceinfo/package.json +11 -11
  58. package/files/templates/apollo-sdk-templates/serviceinfo/services.json +8 -8
  59. package/files/templates/ose-sdk-templates/appinfo/appinfo.json +10 -10
  60. package/files/templates/ose-sdk-templates/bootplate-web/index.html +88 -88
  61. package/files/templates/ose-sdk-templates/hosted-webapp/index.html +13 -13
  62. package/files/templates/ose-sdk-templates/icon/icon.png +0 -0
  63. package/files/templates/ose-sdk-templates/js-service/helloclient.js +31 -31
  64. package/files/templates/ose-sdk-templates/js-service/helloworld_webos_service.js +188 -188
  65. package/files/templates/ose-sdk-templates/qml-app/main.qml +68 -68
  66. package/files/templates/ose-sdk-templates/qmlappinfo/appinfo.json +10 -10
  67. package/files/templates/ose-sdk-templates/serviceinfo/package.json +11 -11
  68. package/files/templates/ose-sdk-templates/serviceinfo/services.json +8 -8
  69. package/files/templates/tv-sdk-templates/appinfo/appinfo.json +10 -10
  70. package/files/templates/tv-sdk-templates/bootplate-web/index.html +58 -58
  71. package/files/templates/tv-sdk-templates/bootplate-web/webOSTVjs-1.2.10/LICENSE-2.0.txt +202 -202
  72. package/files/templates/tv-sdk-templates/hosted-webapp/index.html +14 -14
  73. package/files/templates/tv-sdk-templates/js-service/helloworld_service.js +39 -39
  74. package/files/templates/tv-sdk-templates/packageinfo/packageinfo.json +3 -3
  75. package/files/templates/tv-sdk-templates/serviceinfo/package.json +11 -11
  76. package/files/templates/tv-sdk-templates/serviceinfo/services.json +8 -8
  77. package/files/templates/tv-sdk-templates/webicon/icon.png +0 -0
  78. package/files/templates/tv-sdk-templates/webicon/largeIcon.png +0 -0
  79. package/lib/base/ares.html +40 -40
  80. package/lib/base/cli-appdata.js +290 -290
  81. package/lib/base/cli-control.js +44 -44
  82. package/lib/base/common-tools.js +29 -29
  83. package/lib/base/error-handler.js +265 -265
  84. package/lib/base/file-watcher.js +155 -155
  85. package/lib/base/help-format.js +147 -147
  86. package/lib/base/luna.js +178 -178
  87. package/lib/base/sdkenv.js +59 -59
  88. package/lib/base/server.js +137 -137
  89. package/lib/base/version-tools.js +79 -79
  90. package/lib/device.js +1419 -1419
  91. package/lib/inspect.js +493 -493
  92. package/lib/log.js +584 -584
  93. package/lib/package.js +1 -3
  94. package/lib/pull.js +231 -231
  95. package/lib/pusher.js +210 -210
  96. package/lib/session.js +74 -74
  97. package/lib/shell.js +193 -193
  98. package/lib/tar-filter-pack.js +62 -62
  99. package/lib/util/copy.js +31 -31
  100. package/lib/util/createFileName.js +40 -40
  101. package/lib/util/eof.js +30 -30
  102. package/lib/util/json.js +63 -63
  103. package/lib/util/merge.js +14 -14
  104. package/lib/util/objclone.js +40 -40
  105. package/lib/util/spinner.js +37 -37
  106. package/npm-shrinkwrap.json +1 -1
  107. package/package.json +1 -1
  108. package/scripts/postinstall.js +24 -24
  109. package/spec/helpers/reporter.js +65 -65
  110. package/spec/jsSpecs/apiTest/generator.spec.js +372 -372
  111. package/spec/jsSpecs/apiTest/inspector.spec.js +89 -89
  112. package/spec/jsSpecs/apiTest/installer.spec.js +67 -67
  113. package/spec/jsSpecs/apiTest/launcher.spec.js +150 -150
  114. package/spec/jsSpecs/apiTest/packager.spec.js +194 -194
  115. package/spec/jsSpecs/apiTest/puller.spec.js +101 -101
  116. package/spec/jsSpecs/apiTest/pusher.spec.js +103 -103
  117. package/spec/jsSpecs/apiTest/server.spec.js +115 -115
  118. package/spec/jsSpecs/apiTest/setupDevice.spec.js +93 -93
  119. package/spec/jsSpecs/apiTest/shell.spec.js +49 -49
  120. package/spec/jsSpecs/ares-config.spec.js +88 -88
  121. package/spec/jsSpecs/ares-device.spec.js +443 -443
  122. package/spec/jsSpecs/ares-generate.spec.js +397 -397
  123. package/spec/jsSpecs/ares-inspect.spec.js +252 -252
  124. package/spec/jsSpecs/ares-install.spec.js +150 -150
  125. package/spec/jsSpecs/ares-log.spec.js +824 -824
  126. package/spec/jsSpecs/ares-novacom.spec.js +149 -149
  127. package/spec/jsSpecs/ares-pull.spec.js +157 -157
  128. package/spec/jsSpecs/ares-push.spec.js +146 -146
  129. package/spec/jsSpecs/ares-shell.spec.js +220 -220
  130. package/spec/jsSpecs/ares.spec.js +83 -83
  131. package/spec/support/jasmine.json +22 -22
  132. package/spec/tempFiles/nativeApp/auto/pkg_arm64/GLES2 +0 -0
  133. package/spec/tempFiles/nativeApp/auto/pkg_arm64/appinfo.json +9 -9
  134. package/spec/tempFiles/nativeApp/ose/pkg_arm/Hello +0 -0
  135. package/spec/tempFiles/nativeApp/ose/pkg_arm/appinfo.json +8 -8
  136. package/spec/tempFiles/nativeApp/ose/pkg_arm/package.properties +2 -2
  137. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/Hello +0 -0
  138. package/spec/tempFiles/nativeApp/oseEmul/pkg_x86/appinfo.json +9 -9
  139. package/spec/tempFiles/nativeApp/rsi/pkg_x86/GLES2 +0 -0
  140. package/spec/tempFiles/nativeApp/rsi/pkg_x86/appinfo.json +9 -9
  141. package/spec/tempFiles/sign/sign.crt +32 -32
  142. package/spec/tempFiles/sign/signPriv.key +52 -52
  143. package/spec/test_data/ares-generate.json +57 -57
  144. package/spec/test_data/ares.json +50 -50
  145. package/.vscode/c_cpp_properties.json +0 -21
  146. package/.vscode/launch.json +0 -97
  147. package/.vscode/settings.json +0 -13
  148. package/.vscode/tasks.json +0 -32
  149. package/webos-tools-cli-3.2.1.tgz +0 -0
@@ -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,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": "1.0.0",
4
- "vendor": "My Company",
5
- "type": "web",
6
- "main": "index.html",
7
- "title": "new app",
8
- "icon": "icon.png",
9
- "requiredPermissions": ["time.query", "activity.operation"]
10
- }
1
+ {
2
+ "id": "com.domain.app",
3
+ "version": "1.0.0",
4
+ "vendor": "My Company",
5
+ "type": "web",
6
+ "main": "index.html",
7
+ "title": "new app",
8
+ "icon": "icon.png",
9
+ "requiredPermissions": ["time.query", "activity.operation"]
10
+ }
@@ -1,88 +1,88 @@
1
- <!--
2
- Copyright (c) 2020-2024 LG Electronics Inc.
3
-
4
- SPDX-License-Identifier: Apache-2.0
5
- -->
6
-
7
- <!DOCTYPE html>
8
- <html>
9
- <head>
10
- <title>Example Web App</title>
11
- <style type="text/css">
12
- body {
13
- width: 100%;
14
- height: 100%;
15
- background-color:#202020;
16
- }
17
- div {
18
- position:absolute;
19
- height:100%;
20
- width:100%;
21
- display: table;
22
- }
23
- h1 {
24
- display: table-cell;
25
- vertical-align: middle;
26
- text-align:center;
27
- color:#FFFFFF;
28
- }
29
- </style>
30
- <script type="text/javascript">
31
- window.onload = function() {
32
- var bridge = new WebOSServiceBridge();
33
- /*
34
- * getTimeApi calls gettime of systemservice, a module in the platform.
35
- */
36
- var getTimeApi = 'luna://com.webos.service.systemservice/clock/getTime';
37
- var getTimeParams = '{}';
38
-
39
- /*
40
- * helloApi calls the hello method of js_service template provided by CLI.
41
- * In this case, the service name is used as default name "com.domain.app.service" is.
42
- * If you change this service name, you need to change the service name of the following API.
43
- *
44
- * If you change the name to helloParams as you want, the contents will be reflected on the screen.
45
- */
46
- var helloApi = 'luna://com.domain.app.service/hello';
47
- var helloParams = '{"name":"webOS"}';
48
-
49
- function getTime_callback(msg){
50
- var arg = JSON.parse(msg);
51
- if (arg.returnValue) {
52
- console.log("[APP_NAME: example web app] GETTIME_SUCCESS UTC : " + arg.utc);
53
- //webOSSystem.PmLogString(6, "GETTIME_SUCCESS", '{"APP_NAME": "example web app"}', "UTC : " + arg.utc);
54
- }
55
- else {
56
- console.error("[APP_NAME: example web app] GETTIME_FAILED errorText : " + arg.errorText);
57
- //webOSSystem.PmLogString(3, "GETTIME_FAILED", '{"APP_NAME": "example web app"}', "errorText : " + arg.errorText);
58
- }
59
- }
60
-
61
- function hello_callback(msg){
62
- var arg = JSON.parse(msg);
63
- if (arg.returnValue) {
64
- document.getElementById("txt_msg").innerHTML = arg.Response;
65
- console.log("[APP_NAME: example web app] CALLHELLO_SUCCESS response : " + arg.Response);
66
- //webOSSystem.PmLogString(6, "CALLHELLO_SUCCESS", '{"APP_NAME": "example web app"}', "response : " + arg.Response);
67
- }
68
- else {
69
- console.error("[APP_NAME: example web app] CALLHELLO_FAILED errorText : " + arg.errorText);
70
- //webOSSystem.PmLogString(3, "CALLHELLO_FAILED", '{"APP_NAME": "example web app"}', "errorText : " + arg.errorText);
71
- }
72
- }
73
-
74
- bridge.onservicecallback = getTime_callback;
75
- bridge.call(getTimeApi, getTimeParams);
76
- document.getElementById("txt_msg").onclick = function() {
77
- bridge.onservicecallback = hello_callback;
78
- bridge.call(helloApi, helloParams);
79
- };
80
- }
81
- </script>
82
- </head>
83
- <body>
84
- <div>
85
- <h1 id="txt_msg">Hello, Web Application!!</h1>
86
- </div>
87
- </body>
88
- </html>
1
+ <!--
2
+ Copyright (c) 2020-2024 LG Electronics Inc.
3
+
4
+ SPDX-License-Identifier: Apache-2.0
5
+ -->
6
+
7
+ <!DOCTYPE html>
8
+ <html>
9
+ <head>
10
+ <title>Example Web App</title>
11
+ <style type="text/css">
12
+ body {
13
+ width: 100%;
14
+ height: 100%;
15
+ background-color:#202020;
16
+ }
17
+ div {
18
+ position:absolute;
19
+ height:100%;
20
+ width:100%;
21
+ display: table;
22
+ }
23
+ h1 {
24
+ display: table-cell;
25
+ vertical-align: middle;
26
+ text-align:center;
27
+ color:#FFFFFF;
28
+ }
29
+ </style>
30
+ <script type="text/javascript">
31
+ window.onload = function() {
32
+ var bridge = new WebOSServiceBridge();
33
+ /*
34
+ * getTimeApi calls gettime of systemservice, a module in the platform.
35
+ */
36
+ var getTimeApi = 'luna://com.webos.service.systemservice/clock/getTime';
37
+ var getTimeParams = '{}';
38
+
39
+ /*
40
+ * helloApi calls the hello method of js_service template provided by CLI.
41
+ * In this case, the service name is used as default name "com.domain.app.service" is.
42
+ * If you change this service name, you need to change the service name of the following API.
43
+ *
44
+ * If you change the name to helloParams as you want, the contents will be reflected on the screen.
45
+ */
46
+ var helloApi = 'luna://com.domain.app.service/hello';
47
+ var helloParams = '{"name":"webOS"}';
48
+
49
+ function getTime_callback(msg){
50
+ var arg = JSON.parse(msg);
51
+ if (arg.returnValue) {
52
+ console.log("[APP_NAME: example web app] GETTIME_SUCCESS UTC : " + arg.utc);
53
+ //webOSSystem.PmLogString(6, "GETTIME_SUCCESS", '{"APP_NAME": "example web app"}', "UTC : " + arg.utc);
54
+ }
55
+ else {
56
+ console.error("[APP_NAME: example web app] GETTIME_FAILED errorText : " + arg.errorText);
57
+ //webOSSystem.PmLogString(3, "GETTIME_FAILED", '{"APP_NAME": "example web app"}', "errorText : " + arg.errorText);
58
+ }
59
+ }
60
+
61
+ function hello_callback(msg){
62
+ var arg = JSON.parse(msg);
63
+ if (arg.returnValue) {
64
+ document.getElementById("txt_msg").innerHTML = arg.Response;
65
+ console.log("[APP_NAME: example web app] CALLHELLO_SUCCESS response : " + arg.Response);
66
+ //webOSSystem.PmLogString(6, "CALLHELLO_SUCCESS", '{"APP_NAME": "example web app"}', "response : " + arg.Response);
67
+ }
68
+ else {
69
+ console.error("[APP_NAME: example web app] CALLHELLO_FAILED errorText : " + arg.errorText);
70
+ //webOSSystem.PmLogString(3, "CALLHELLO_FAILED", '{"APP_NAME": "example web app"}', "errorText : " + arg.errorText);
71
+ }
72
+ }
73
+
74
+ bridge.onservicecallback = getTime_callback;
75
+ bridge.call(getTimeApi, getTimeParams);
76
+ document.getElementById("txt_msg").onclick = function() {
77
+ bridge.onservicecallback = hello_callback;
78
+ bridge.call(helloApi, helloParams);
79
+ };
80
+ }
81
+ </script>
82
+ </head>
83
+ <body>
84
+ <div>
85
+ <h1 id="txt_msg">Hello, Web Application!!</h1>
86
+ </div>
87
+ </body>
88
+ </html>
@@ -1,14 +1,14 @@
1
- <!--
2
- Copyright (c) 2020-2024 LG Electronics Inc.
3
-
4
- SPDX-License-Identifier: Apache-2.0
5
- -->
6
-
7
- <!DOCTYPE html>
8
- <html>
9
- <head>
10
- <script>location.href='http://webosose.org/';</script>
11
- </head>
12
- <body>
13
- </body>
1
+ <!--
2
+ Copyright (c) 2020-2024 LG Electronics Inc.
3
+
4
+ SPDX-License-Identifier: Apache-2.0
5
+ -->
6
+
7
+ <!DOCTYPE html>
8
+ <html>
9
+ <head>
10
+ <script>location.href='http://webosose.org/';</script>
11
+ </head>
12
+ <body>
13
+ </body>
14
14
  </html>
File without changes