iobroker.rest-api 2.0.2 → 3.0.0

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 (51) hide show
  1. package/README.md +49 -8
  2. package/admin/i18n/{de/translations.json → de.json} +22 -22
  3. package/admin/i18n/{en/translations.json → en.json} +22 -23
  4. package/admin/i18n/{es/translations.json → es.json} +22 -23
  5. package/admin/i18n/{fr/translations.json → fr.json} +22 -23
  6. package/admin/i18n/{it/translations.json → it.json} +22 -23
  7. package/admin/i18n/{nl/translations.json → nl.json} +22 -23
  8. package/admin/i18n/{pl/translations.json → pl.json} +22 -23
  9. package/admin/i18n/{pt/translations.json → pt.json} +22 -23
  10. package/admin/i18n/{ru/translations.json → ru.json} +22 -23
  11. package/admin/i18n/uk.json +32 -0
  12. package/admin/i18n/{zh-cn/translations.json → zh-cn.json} +22 -23
  13. package/admin/jsonConfig.json +178 -180
  14. package/admin/rest-api.svg +8 -0
  15. package/dist/lib/api/controllers/common.js +129 -0
  16. package/dist/lib/api/controllers/common.js.map +1 -0
  17. package/dist/lib/api/controllers/enum.js +58 -0
  18. package/dist/lib/api/controllers/enum.js.map +1 -0
  19. package/dist/lib/api/controllers/file.js +104 -0
  20. package/dist/lib/api/controllers/file.js.map +1 -0
  21. package/dist/lib/api/controllers/history.js +262 -0
  22. package/dist/lib/api/controllers/history.js.map +1 -0
  23. package/dist/lib/api/controllers/object.js +346 -0
  24. package/dist/lib/api/controllers/object.js.map +1 -0
  25. package/dist/lib/api/controllers/sendTo.js +118 -0
  26. package/dist/lib/api/controllers/sendTo.js.map +1 -0
  27. package/dist/lib/api/controllers/state.js +545 -0
  28. package/dist/lib/api/controllers/state.js.map +1 -0
  29. package/dist/lib/api/swagger/swagger.yaml +2551 -0
  30. package/{lib → dist/lib}/common.js +8 -10
  31. package/dist/lib/common.js.map +1 -0
  32. package/dist/lib/rest-api.js +1216 -0
  33. package/dist/lib/rest-api.js.map +1 -0
  34. package/dist/main.js +159 -0
  35. package/dist/main.js.map +1 -0
  36. package/examples/demoBrowserClient.html +95 -82
  37. package/examples/demoNodeClient.js +8 -7
  38. package/examples/longPolling.js +46 -45
  39. package/io-package.json +43 -34
  40. package/package.json +36 -24
  41. package/lib/api/controllers/common.js +0 -150
  42. package/lib/api/controllers/enum.js +0 -44
  43. package/lib/api/controllers/file.js +0 -74
  44. package/lib/api/controllers/history.js +0 -239
  45. package/lib/api/controllers/object.js +0 -273
  46. package/lib/api/controllers/sendTo.js +0 -123
  47. package/lib/api/controllers/state.js +0 -565
  48. package/lib/api/swagger/swagger.yaml +0 -2624
  49. package/lib/rest-api.js +0 -1123
  50. package/main.js +0 -173
  51. /package/{lib → dist/lib}/config/default.yaml +0 -0
package/main.js DELETED
@@ -1,173 +0,0 @@
1
- /* jshint -W097 */
2
- /* jshint strict: false */
3
- /* jslint node: true */
4
- 'use strict';
5
-
6
- const utils = require('@iobroker/adapter-core'); // Get common adapter utils
7
- const { WebServer } = require('@iobroker/webserver');
8
- const RestAPI = require('./lib/rest-api.js');
9
- const adapterName = require('./package.json').name.split('.').pop();
10
-
11
- let webServer = null;
12
- let adapter;
13
-
14
- function startAdapter(options) {
15
- options = options || {};
16
- Object.assign(options, {
17
- name: adapterName,
18
- stateChange: (id, state) => {
19
- webServer && webServer.api && webServer.api.stateChange(id, state);
20
- },
21
- objectChange: (id, obj) => webServer && webServer.api && webServer.api.objectChange(id, obj),
22
- unload: callback => {
23
- try {
24
- adapter.setState('info.connection', false, true);
25
- adapter.log.info(`terminating http${adapter.config.secure ? 's' : ''} server on port ${adapter.config.port}`);
26
- if (webServer && webServer.api) {
27
- webServer.api.unload()
28
- .then(() => {
29
- try {
30
- if (webServer.server) {
31
- webServer.server.close();
32
- webServer.server = null;
33
- }
34
- } catch (error) {
35
- // ignore
36
- console.error('Cannot close server: ' + error);
37
- }
38
- webServer = null;
39
- callback();
40
- });
41
- } else {
42
- if (webServer && webServer.server) {
43
- webServer.server.close();
44
- webServer.server = null;
45
- }
46
- webServer = null;
47
- callback();
48
- }
49
- } catch (error) {
50
- console.error('Cannot close server: ' + error);
51
- callback();
52
- }
53
- },
54
- ready: main
55
- });
56
-
57
- adapter = new utils.Adapter(options);
58
-
59
- return adapter;
60
- }
61
-
62
- function main() {
63
- if (adapter.config.webInstance) {
64
- console.log('Adapter runs as a part of web service');
65
- adapter.log.warn('Adapter runs as a part of web service');
66
- adapter.setForeignState(`system.adapter.${adapter.namespace}.alive`, false, true, () =>
67
- setTimeout(() => process.exit(utils.EXIT_CODES.ADAPTER_REQUESTED_TERMINATION), 1000));
68
- } else {
69
- if (adapter.config.secure) {
70
- // Load certificates
71
- adapter.getCertificates((err, certificates, leConfig) => {
72
- adapter.config.certificates = certificates;
73
- adapter.config.leConfig = leConfig;
74
- initWebServer(adapter.config, server =>
75
- webServer = server);
76
- });
77
- } else {
78
- initWebServer(adapter.config, server =>
79
- webServer = server);
80
- }
81
- }
82
- }
83
-
84
- //settings: {
85
- // "port": 8080,
86
- // "auth": false,
87
- // "secure": false,
88
- // "bind": "0.0.0.0", // "::"
89
- // "cache": false
90
- //}
91
- function initWebServer(settings, callback) {
92
- settings.port = parseInt(settings.port, 10);
93
-
94
- const server = {
95
- app: null,
96
- server: null,
97
- api: null,
98
- io: null,
99
- settings
100
- };
101
-
102
- server.api = new RestAPI(server.server, settings, adapter, null, null, async app => {
103
- if (settings.port) {
104
- if (settings.secure && !adapter.config.certificates) {
105
- return null;
106
- }
107
-
108
- try {
109
- const webserver = new WebServer({
110
- app,
111
- adapter,
112
- secure: adapter.config.secure
113
- });
114
- server.server = await webserver.init();
115
- } catch (err) {
116
- adapter.log.error(`Cannot create webserver: ${err}`);
117
- adapter.terminate ? adapter.terminate(1) : process.exit(1);
118
- return;
119
- }
120
- server.server.__server = server;
121
- } else {
122
- adapter.log.error('port missing');
123
- process.exit(1);
124
- }
125
-
126
- if (server.server) {
127
- let serverListening = false;
128
- let serverPort = settings.port;
129
-
130
- server.server.on('error', e => {
131
- if (e.toString().includes('EACCES') && serverPort <= 1024) {
132
- adapter.log.error(`node.js process has no rights to start server on the port ${serverPort}.\n` +
133
- `Do you know that on linux you need special permissions for ports under 1024?\n` +
134
- `You can call in shell following scrip to allow it for node.js: "iobroker fix"`
135
- );
136
- } else {
137
- adapter.log.error(`Cannot start server on ${settings.bind || '0.0.0.0'}:${serverPort}: ${e}`);
138
- }
139
- if (!serverListening) {
140
- callback && callback(server);
141
- adapter.terminate ? adapter.terminate(1) : process.exit(1);
142
- }
143
- });
144
-
145
- adapter.getPort(settings.port, (!settings.bind || settings.bind === '0.0.0.0') ? undefined : settings.bind || undefined, port => {
146
- if (port !== settings.port && !adapter.config.findNextPort) {
147
- adapter.log.error(`port ${settings.port} already in use`);
148
- process.exit(1);
149
- }
150
- serverPort = port;
151
-
152
- server.server.listen(port, (!settings.bind || settings.bind === '0.0.0.0') ? undefined : settings.bind || undefined, async () => {
153
- await adapter.setStateAsync('info.connection', true, true);
154
- adapter.log.info(`http${settings.secure ? 's' : ''} server listening on port ${port}`);
155
- serverListening = true
156
- });
157
- callback && callback(server);
158
- callback = null;
159
- });
160
- } else if (callback) {
161
- callback(server);
162
- callback = null;
163
- }
164
- });
165
- }
166
-
167
- // If started as allInOne mode => return function to create instance
168
- if (module.parent) {
169
- module.exports = startAdapter;
170
- } else {
171
- // or start the instance directly
172
- startAdapter();
173
- }
File without changes