@bitpoolos/edge-bacnet 1.0.6 → 1.1.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 (181) hide show
  1. package/bacnet_client.js +650 -233
  2. package/bacnet_device.js +65 -16
  3. package/bacnet_gateway.html +242 -99
  4. package/bacnet_gateway.js +211 -27
  5. package/bacnet_object.js +1 -1
  6. package/bacnet_read.html +211 -133
  7. package/bacnet_read.js +24 -24
  8. package/bacnet_server.js +321 -0
  9. package/bacnet_write.html +24 -15
  10. package/bacnet_write.js +0 -2
  11. package/common.js +95 -9
  12. package/edge-bacnet-datastore.cfg +0 -0
  13. package/package.json +6 -4
  14. package/resources/confirmationservice.min.js +1 -0
  15. package/resources/confirmdialog.min.js +1 -0
  16. package/resources/fonts/primeicons.woff2 +0 -0
  17. package/resources/node-bacnet/CHANGELOG.md +481 -0
  18. package/resources/{bacstack → node-bacnet}/LICENSE.md +3 -1
  19. package/resources/node-bacnet/README.md +91 -0
  20. package/resources/node-bacnet/docs/Client.html +4422 -0
  21. package/resources/node-bacnet/docs/bacnet-icon-quad.png +0 -0
  22. package/resources/node-bacnet/docs/bacnet-icon-quad128.png +0 -0
  23. package/resources/node-bacnet/docs/bacnet-icon-quad64.png +0 -0
  24. package/resources/node-bacnet/docs/bacnet-icon-small.xcf +0 -0
  25. package/resources/node-bacnet/docs/bacnet-icon.xcf +0 -0
  26. package/resources/node-bacnet/docs/bacnet.html +7032 -0
  27. package/resources/node-bacnet/docs/client.js.html +1759 -0
  28. package/resources/node-bacnet/docs/enum.js.html +2530 -0
  29. package/resources/node-bacnet/docs/global.html +2068 -0
  30. package/resources/node-bacnet/docs/images/mocha-logo.svg +65 -0
  31. package/resources/node-bacnet/docs/index.html +283 -0
  32. package/resources/node-bacnet/docs/scripts/collapse.js +11 -0
  33. package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +4 -0
  34. package/resources/node-bacnet/docs/scripts/linenumber.js +26 -0
  35. package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  36. package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +2 -0
  37. package/resources/node-bacnet/docs/scripts/prettify/prettify.js +28 -0
  38. package/resources/node-bacnet/docs/scripts/search.js +47 -0
  39. package/resources/node-bacnet/docs/services_i-am.js.html +157 -0
  40. package/resources/node-bacnet/docs/services_time-sync.js.html +118 -0
  41. package/resources/node-bacnet/docs/services_who-is.js.html +138 -0
  42. package/resources/node-bacnet/docs/styles/jsdoc.css +683 -0
  43. package/resources/node-bacnet/docs/styles/prettify.css +82 -0
  44. package/resources/node-bacnet/examples/discover-devices.js +66 -0
  45. package/resources/node-bacnet/examples/read-device.js +510 -0
  46. package/resources/node-bacnet/examples/subscribe-cov.js +75 -0
  47. package/resources/{bacstack → node-bacnet}/index.js +3 -0
  48. package/resources/{bacstack → node-bacnet}/lib/apdu.js +56 -39
  49. package/resources/{bacstack → node-bacnet}/lib/asn1.js +550 -532
  50. package/resources/node-bacnet/lib/bvlc.js +90 -0
  51. package/resources/node-bacnet/lib/client.js +1695 -0
  52. package/resources/node-bacnet/lib/enum.js +2463 -0
  53. package/resources/node-bacnet/lib/npdu.js +123 -0
  54. package/resources/{bacstack → node-bacnet}/lib/services/add-list-element.js +12 -6
  55. package/resources/{bacstack → node-bacnet}/lib/services/alarm-acknowledge.js +3 -3
  56. package/resources/{bacstack → node-bacnet}/lib/services/alarm-summary.js +5 -4
  57. package/resources/{bacstack → node-bacnet}/lib/services/atomic-read-file.js +49 -26
  58. package/resources/{bacstack → node-bacnet}/lib/services/atomic-write-file.js +40 -23
  59. package/resources/{bacstack → node-bacnet}/lib/services/cov-notify.js +33 -17
  60. package/resources/{bacstack → node-bacnet}/lib/services/create-object.js +23 -13
  61. package/resources/{bacstack → node-bacnet}/lib/services/delete-object.js +7 -2
  62. package/resources/{bacstack → node-bacnet}/lib/services/device-communication-control.js +8 -3
  63. package/resources/{bacstack → node-bacnet}/lib/services/error.js +7 -0
  64. package/resources/{bacstack → node-bacnet}/lib/services/event-information.js +10 -9
  65. package/resources/{bacstack → node-bacnet}/lib/services/event-notify-data.js +38 -16
  66. package/resources/{bacstack → node-bacnet}/lib/services/get-enrollment-summary.js +24 -11
  67. package/resources/{bacstack → node-bacnet}/lib/services/get-event-information.js +28 -13
  68. package/resources/node-bacnet/lib/services/i-am.js +90 -0
  69. package/resources/{bacstack/lib/services/i-have-broadcast.js → node-bacnet/lib/services/i-have.js} +3 -2
  70. package/resources/{bacstack → node-bacnet}/lib/services/index.js +7 -4
  71. package/resources/{bacstack → node-bacnet}/lib/services/life-safety-operation.js +3 -2
  72. package/resources/{bacstack → node-bacnet}/lib/services/private-transfer.js +3 -2
  73. package/resources/{bacstack → node-bacnet}/lib/services/read-property-multiple.js +11 -6
  74. package/resources/{bacstack → node-bacnet}/lib/services/read-property.js +42 -24
  75. package/resources/{bacstack → node-bacnet}/lib/services/read-range.js +37 -27
  76. package/resources/node-bacnet/lib/services/register-foreign-device.js +18 -0
  77. package/resources/{bacstack → node-bacnet}/lib/services/reinitialize-device.js +9 -4
  78. package/resources/{bacstack → node-bacnet}/lib/services/subscribe-cov.js +9 -4
  79. package/resources/{bacstack → node-bacnet}/lib/services/subscribe-property.js +18 -8
  80. package/resources/{bacstack → node-bacnet}/lib/services/time-sync.js +28 -5
  81. package/resources/{bacstack → node-bacnet}/lib/services/who-has.js +3 -3
  82. package/resources/{bacstack → node-bacnet}/lib/services/who-is.js +42 -9
  83. package/resources/{bacstack → node-bacnet}/lib/services/write-property-multiple.js +33 -16
  84. package/resources/{bacstack → node-bacnet}/lib/services/write-property.js +23 -13
  85. package/resources/node-bacnet/lib/transport.js +82 -0
  86. package/resources/node-bacnet/package.json +92 -0
  87. package/resources/primeicons.css +90 -2
  88. package/resources/bacstack/.codeclimate.yml +0 -15
  89. package/resources/bacstack/.dockerignore +0 -5
  90. package/resources/bacstack/.editorconfig +0 -13
  91. package/resources/bacstack/.eslintrc.yml +0 -13
  92. package/resources/bacstack/.github/ISSUE_TEMPLATE.md +0 -26
  93. package/resources/bacstack/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  94. package/resources/bacstack/.github/workflows/ci.yml +0 -39
  95. package/resources/bacstack/.jscsrc +0 -8
  96. package/resources/bacstack/.jshintrc +0 -50
  97. package/resources/bacstack/.travis.yml +0 -27
  98. package/resources/bacstack/CHANGELOG.md +0 -232
  99. package/resources/bacstack/CODE_OF_CONDUCT.md +0 -74
  100. package/resources/bacstack/CONTRIBUTING.md +0 -77
  101. package/resources/bacstack/Dockerfile +0 -15
  102. package/resources/bacstack/FAQ.md +0 -64
  103. package/resources/bacstack/README.md +0 -157
  104. package/resources/bacstack/docker-compose.yml +0 -9
  105. package/resources/bacstack/lib/adpu.js +0 -190
  106. package/resources/bacstack/lib/bvlc.js +0 -43
  107. package/resources/bacstack/lib/client.js +0 -1028
  108. package/resources/bacstack/lib/enum.js +0 -1314
  109. package/resources/bacstack/lib/npdu.js +0 -119
  110. package/resources/bacstack/lib/services/i-am-broadcast.js +0 -51
  111. package/resources/bacstack/lib/services.js +0 -1963
  112. package/resources/bacstack/lib/transport.js +0 -52
  113. package/resources/bacstack/package-lock.json +0 -7974
  114. package/resources/bacstack/package.json +0 -84
  115. package/resources/bacstack/test/compliance/who-is.spec.js +0 -37
  116. package/resources/bacstack/test/integration/acknowledge-alarm.spec.js +0 -14
  117. package/resources/bacstack/test/integration/add-list-element.spec.js +0 -16
  118. package/resources/bacstack/test/integration/confirmed-event-notification.spec.js +0 -30
  119. package/resources/bacstack/test/integration/confirmed-private-transfer.spec.js +0 -15
  120. package/resources/bacstack/test/integration/create-object.spec.js +0 -16
  121. package/resources/bacstack/test/integration/delete-object.spec.js +0 -14
  122. package/resources/bacstack/test/integration/device-communication-control.spec.js +0 -14
  123. package/resources/bacstack/test/integration/get-alarm-summary.spec.js +0 -14
  124. package/resources/bacstack/test/integration/get-enrollment-summary.spec.js +0 -15
  125. package/resources/bacstack/test/integration/get-event-information.spec.js +0 -14
  126. package/resources/bacstack/test/integration/read-file.spec.js +0 -14
  127. package/resources/bacstack/test/integration/read-property-multiple.spec.js +0 -110
  128. package/resources/bacstack/test/integration/read-property.spec.js +0 -14
  129. package/resources/bacstack/test/integration/read-range.spec.js +0 -14
  130. package/resources/bacstack/test/integration/reinitialize-sevice.spec.js +0 -14
  131. package/resources/bacstack/test/integration/remove-list-element.spec.js +0 -16
  132. package/resources/bacstack/test/integration/subscribe-cov.spec.js +0 -14
  133. package/resources/bacstack/test/integration/subscribe-property.spec.js +0 -14
  134. package/resources/bacstack/test/integration/time-sync-utc.spec.js +0 -10
  135. package/resources/bacstack/test/integration/time-sync.spec.js +0 -10
  136. package/resources/bacstack/test/integration/unconfirmed-event-notification.spec.js +0 -28
  137. package/resources/bacstack/test/integration/unconfirmed-private-transfer.spec.js +0 -11
  138. package/resources/bacstack/test/integration/utils.js +0 -30
  139. package/resources/bacstack/test/integration/who-is.spec.js +0 -17
  140. package/resources/bacstack/test/integration/write-file.spec.js +0 -14
  141. package/resources/bacstack/test/integration/write-property-multiple.spec.js +0 -19
  142. package/resources/bacstack/test/integration/write-property.spec.js +0 -14
  143. package/resources/bacstack/test/unit/apdu.spec.js +0 -162
  144. package/resources/bacstack/test/unit/asn1.spec.js +0 -39
  145. package/resources/bacstack/test/unit/bacnet-apdu.spec.js +0 -161
  146. package/resources/bacstack/test/unit/bacnet-asn1.spec.js +0 -32
  147. package/resources/bacstack/test/unit/bacnet-bvlc.spec.js +0 -57
  148. package/resources/bacstack/test/unit/bacnet-npdu.spec.js +0 -118
  149. package/resources/bacstack/test/unit/bacnet-services.spec.js +0 -2052
  150. package/resources/bacstack/test/unit/bvlc.spec.js +0 -58
  151. package/resources/bacstack/test/unit/npdu.spec.js +0 -119
  152. package/resources/bacstack/test/unit/service-add-list-element.spec.js +0 -24
  153. package/resources/bacstack/test/unit/service-alarm-acknowledge.spec.js +0 -71
  154. package/resources/bacstack/test/unit/service-alarm-summary.spec.js +0 -22
  155. package/resources/bacstack/test/unit/service-atomic-read-file.spec.js +0 -54
  156. package/resources/bacstack/test/unit/service-atomic-write-file.spec.js +0 -56
  157. package/resources/bacstack/test/unit/service-cov-notify.spec.js +0 -98
  158. package/resources/bacstack/test/unit/service-create-object.spec.js +0 -90
  159. package/resources/bacstack/test/unit/service-delete-object.spec.js +0 -17
  160. package/resources/bacstack/test/unit/service-device-communication-control.spec.js +0 -29
  161. package/resources/bacstack/test/unit/service-error.spec.js +0 -17
  162. package/resources/bacstack/test/unit/service-event-information.spec.js +0 -48
  163. package/resources/bacstack/test/unit/service-event-notify-data.spec.js +0 -310
  164. package/resources/bacstack/test/unit/service-get-enrollment-summary.spec.js +0 -45
  165. package/resources/bacstack/test/unit/service-get-event-information.spec.js +0 -62
  166. package/resources/bacstack/test/unit/service-i-am.spec.js +0 -19
  167. package/resources/bacstack/test/unit/service-i-have-broadcast.spec.js +0 -18
  168. package/resources/bacstack/test/unit/service-life-safety-operation.spec.js +0 -19
  169. package/resources/bacstack/test/unit/service-private-transfer.spec.js +0 -18
  170. package/resources/bacstack/test/unit/service-read-property-multiple.spec.js +0 -131
  171. package/resources/bacstack/test/unit/service-read-property.spec.js +0 -541
  172. package/resources/bacstack/test/unit/service-read-range.spec.js +0 -97
  173. package/resources/bacstack/test/unit/service-reinitialize-device.spec.js +0 -27
  174. package/resources/bacstack/test/unit/service-subscribe-cov.spec.js +0 -32
  175. package/resources/bacstack/test/unit/service-subscribe-property.spec.js +0 -50
  176. package/resources/bacstack/test/unit/service-time-sync.spec.js +0 -18
  177. package/resources/bacstack/test/unit/service-who-has.spec.js +0 -33
  178. package/resources/bacstack/test/unit/service-who-is.spec.js +0 -17
  179. package/resources/bacstack/test/unit/service-write-property-multiple.spec.js +0 -143
  180. package/resources/bacstack/test/unit/service-write-property.spec.js +0 -198
  181. package/resources/bacstack/test/unit/utils.js +0 -6
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- const baAsn1 = require('../asn1');
4
- const baEnum = require('../enum');
3
+ const baAsn1 = require('../asn1');
4
+ const baEnum = require('../enum');
5
5
 
6
6
  module.exports.encode = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
7
7
  baAsn1.encodeContextObjectId(buffer, 0, objectType, objectInstance);
@@ -21,22 +21,26 @@ module.exports.encode = (buffer, objectType, objectInstance, propertyId, arrayIn
21
21
 
22
22
  module.exports.decode = (buffer, offset, apduLen) => {
23
23
  let len = 0;
24
- const value = {
24
+ let value = {
25
25
  property: {}
26
26
  };
27
27
  let decodedValue;
28
28
  let result;
29
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0)) return;
29
+ if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0)) {
30
+ return undefined;
31
+ }
30
32
  len++;
31
33
  decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
32
- const objectId = {
34
+ let objectId = {
33
35
  type: decodedValue.objectType,
34
36
  instance: decodedValue.instance
35
37
  };
36
38
  len += decodedValue.len;
37
39
  result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
38
40
  len += result.len;
39
- if (result.tagNumber !== 1) return;
41
+ if (result.tagNumber !== 1) {
42
+ return undefined;
43
+ }
40
44
  decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
41
45
  len += decodedValue.len;
42
46
  value.property.id = decodedValue.value;
@@ -49,18 +53,24 @@ module.exports.decode = (buffer, offset, apduLen) => {
49
53
  } else {
50
54
  value.property.index = baEnum.ASN1_ARRAY_ALL;
51
55
  }
52
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 3)) return;
56
+ if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 3)) {
57
+ return undefined;
58
+ }
53
59
  len++;
54
60
  const values = [];
55
61
  while ((apduLen - len) > 1 && !baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3)) {
56
62
  decodedValue = baAsn1.bacappDecodeApplicationData(buffer, offset + len, apduLen + offset, objectId.type, value.property.id);
57
- if (!decodedValue) return;
63
+ if (!decodedValue) {
64
+ return undefined;
65
+ }
58
66
  len += decodedValue.len;
59
67
  delete decodedValue.len;
60
68
  values.push(decodedValue);
61
69
  }
62
70
  value.value = values;
63
- if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3)) return;
71
+ if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3)) {
72
+ return undefined;
73
+ }
64
74
  len++;
65
75
  value.priority = baEnum.ASN1_MAX_PRIORITY;
66
76
  if (len < apduLen) {
@@ -72,13 +82,13 @@ module.exports.decode = (buffer, offset, apduLen) => {
72
82
  if ((decodedValue.value >= baEnum.ASN1_MIN_PRIORITY) && (decodedValue.value <= baEnum.ASN1_MAX_PRIORITY)) {
73
83
  value.priority = decodedValue.value;
74
84
  } else {
75
- return;
85
+ return undefined;
76
86
  }
77
87
  }
78
88
  }
79
89
  return {
80
- len: len,
81
- objectId: objectId,
82
- value: value
90
+ len,
91
+ objectId,
92
+ value
83
93
  };
84
94
  };
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ const createSocket = require('dgram').createSocket;
4
+ const EventEmitter = require('events').EventEmitter;
5
+ const debug = require('debug')('bacnet:transport:debug');
6
+ const trace = require('debug')('bacnet:transport:trace');
7
+
8
+ const DEFAULT_BACNET_PORT = 47808;
9
+
10
+ class Transport extends EventEmitter {
11
+ constructor(settings) {
12
+ super();
13
+ this._lastSendMessages = {};
14
+ this._settings = settings;
15
+ this._server = createSocket({type: 'udp4', reuseAddr: settings.reuseAddr});
16
+ this._server.on('message', (msg, rinfo) => {
17
+ // Check for pot. duplicate messages
18
+ if (this.ownAddress.port === rinfo.port) {
19
+ for (let [messageKey, earlierSentBuffer] of Object.entries(this._lastSendMessages)) {
20
+ if (msg.equals(earlierSentBuffer)) {
21
+ debug(`server IGNORE message from ${rinfo.address}:${rinfo.port} (${messageKey}): ${msg.toString('hex')}`);
22
+ return;
23
+ }
24
+ }
25
+ }
26
+ debug(`server got message from ${rinfo.address}:${rinfo.port}: ${msg.toString('hex')}`);
27
+ this.emit('message', msg, rinfo.address + (rinfo.port === DEFAULT_BACNET_PORT ? '' : ':' + rinfo.port));
28
+ });
29
+ this._server.on('listening', () => {
30
+ this.ownAddress = this._server.address();
31
+ debug(`server listening on ${this.ownAddress.address}:${this.ownAddress.port}`);
32
+ this.emit('listening', this.ownAddress);
33
+ });
34
+ this._server.on('error', (err) => {
35
+ debug('transport error', err.message);
36
+ this.emit('error', err);
37
+ });
38
+ this._server.on('close', () => {
39
+ debug('transport closed');
40
+ this.emit('close');
41
+ // close is to do by the client.close() which calls the transport.close which calls the _server.close
42
+ });
43
+ }
44
+
45
+ getBroadcastAddress() {
46
+ return this._settings.broadcastAddress;
47
+ }
48
+
49
+ getMaxPayload() {
50
+ return 1482;
51
+ }
52
+
53
+ send(buffer, offset, receiver) {
54
+ if (!receiver) {
55
+ receiver = this.getBroadcastAddress();
56
+ const dataToSend = Buffer.alloc(offset);
57
+ // Sort out broadcasted messages that we also receive
58
+ // TODO Find a better way?
59
+ const hrTime = process.hrtime();
60
+ const messageKey = hrTime[0] * 1000000000 + hrTime[1];
61
+ buffer.copy(dataToSend, 0, 0, offset);
62
+ this._lastSendMessages[messageKey] = dataToSend;
63
+ setTimeout(() => {
64
+ delete this._lastSendMessages[messageKey];
65
+ }, 10000); // delete after 10s, hopefully all cases are handled by that
66
+ }
67
+ const [address, port] = receiver.split(':');
68
+ debug('Send packet to ' + receiver + ': ' + buffer.toString('hex').substr(0, offset * 2));
69
+ this._server.send(buffer, 0, offset, port || DEFAULT_BACNET_PORT, address);
70
+ }
71
+
72
+ open() {
73
+ this._server.bind(this._settings.port, this._settings.interface, () => {
74
+ this._server.setBroadcast(true);
75
+ });
76
+ }
77
+
78
+ close() {
79
+ this._server.close();
80
+ }
81
+ }
82
+ module.exports = Transport;
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "node-bacnet",
3
+ "version": "0.2.4",
4
+ "description": "The BACnet protocol library written in pure JavaScript.",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "changelog": "conventional-changelog -p conventail -i CHANGELOG.md -s -r 0",
8
+ "lint": "jshint lib/ test/ index.js && eslint lib/** test/** examples/** index.js",
9
+ "lint:fix": "eslint --fix lib/** test/** examples/** index.js",
10
+ "lint:fix:dry": "eslint --fix-dry-run lib/** test/** examples/** index.js",
11
+ "test": "npm run lint && npm run test:unit && npm run test:integration",
12
+ "coverage": "nyc --reporter=lcov --reporter=text-summary --report-dir reports/coverage npm test",
13
+ "coverage:compliance": "nyc --reporter=lcov --reporter=text-summary --report-dir reports/coverage npm run test:compliance",
14
+ "coverage:all": "DEBUG=bacnet* nyc --reporter=lcov --reporter=text-summary --report-dir /reports/coverage npm run test:all",
15
+ "test:unit": "DEBUG=bacnet* mocha test/unit/*.spec.js",
16
+ "test:integration": "DEBUG=bacnet* mocha test/integration/*.spec.js --timeout 5000",
17
+ "test:compliance": "DEBUG=bacnet* mocha test/compliance/*.spec.js --timeout 5000",
18
+ "test:all": "DEBUG=bacnet* mocha test/unit/*.spec.js test/integration/*.spec.js test/compliance/*.spec.js --timeout 5000",
19
+ "docs": "cp -r images docs && jsdoc -r -d ./docs -t node_modules/@mocha/docdash ./lib ./index.js ./README.md",
20
+ "release": "standard-version -a",
21
+ "release:beta": "standard-version --prerelease beta",
22
+ "release:alpha": "standard-version --prerelease alpha",
23
+ "compose:build": "docker-compose build",
24
+ "compose:up": "docker-compose up --abort-on-container-exit --exit-code-from bacnet-client",
25
+ "docker": "npm run compose:build && npm run compose:up",
26
+ "prepublishOnly": "npm run lint && npm run coverage && npm run docker && npm run docs"
27
+ },
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/BiancoRoyal/node-bacstack.git"
31
+ },
32
+ "keywords": [
33
+ "bacnet",
34
+ "fieldbus",
35
+ "building",
36
+ "automation",
37
+ "iot"
38
+ ],
39
+ "author": {
40
+ "name": "Fabio Huser",
41
+ "email": "fabio@fh1.ch"
42
+ },
43
+ "contributors": [
44
+ {
45
+ "name": "Klaus Landsdorf",
46
+ "email": "klaus@iniationware.com"
47
+ },
48
+ {
49
+ "name": "Ingo Fischer",
50
+ "email": "iobroker@fischer-ka.de"
51
+ }
52
+ ],
53
+ "engines": {
54
+ "node": ">= 10"
55
+ },
56
+ "commitlint": {
57
+ "extends": [
58
+ "@commitlint/config-conventional"
59
+ ]
60
+ },
61
+ "license": "MIT",
62
+ "bugs": {
63
+ "url": "https://github.com/BiancoRoyal/node-bacstack/issues"
64
+ },
65
+ "homepage": "https://github.com/BiancoRoyal/node-bacstack#readme",
66
+ "dependencies": {
67
+ "debug": "^4.1.1",
68
+ "iconv-lite": "^0.5.1",
69
+ "underscore": "^1.10.2"
70
+ },
71
+ "devDependencies": {
72
+ "chai": "^4.2.0",
73
+ "conventional-changelog-cli": "^2.0.27",
74
+ "@mocha/docdash": "^2.1.3",
75
+ "eslint": "^7.1.0",
76
+ "jsdoc": "^3.6.4",
77
+ "jshint": "^2.11.1",
78
+ "mocha": "^7.1.2",
79
+ "nyc": "^15.0.1",
80
+ "standard-version": "^8.0.0"
81
+ },
82
+ "files": [
83
+ "docs",
84
+ "examples",
85
+ "lib",
86
+ "index.js"
87
+ ],
88
+ "directories": {
89
+ "example": "examples",
90
+ "test": "test"
91
+ }
92
+ }
@@ -2,7 +2,7 @@
2
2
  font-family: 'primeicons';
3
3
  font-display: block;
4
4
  src: url('./fonts/primeicons.eot');
5
- src: url('./fonts/primeicons.eot?#iefix') format('embedded-opentype'), url('./fonts/primeicons.ttf') format('truetype'), url('./fonts/primeicons.woff') format('woff'), url('./fonts/primeicons.svg?#primeicons') format('svg');
5
+ src: url('./fonts/primeicons.eot?#iefix') format('embedded-opentype'), url('./fonts/primeicons.woff2') format('woff2'), url('./fonts/primeicons.woff') format('woff'), url('./fonts/primeicons.ttf') format('truetype'), url('./fonts/primeicons.svg?#primeicons') format('svg');
6
6
  font-weight: normal;
7
7
  font-style: normal;
8
8
  }
@@ -57,6 +57,94 @@
57
57
  }
58
58
  }
59
59
 
60
+ .pi-eraser:before {
61
+ content: "\ea04";
62
+ }
63
+
64
+ .pi-stopwatch:before {
65
+ content: "\ea01";
66
+ }
67
+
68
+ .pi-verified:before {
69
+ content: "\ea02";
70
+ }
71
+
72
+ .pi-delete-left:before {
73
+ content: "\ea03";
74
+ }
75
+
76
+ .pi-hourglass:before {
77
+ content: "\e9fe";
78
+ }
79
+
80
+ .pi-truck:before {
81
+ content: "\ea00";
82
+ }
83
+
84
+ .pi-wrench:before {
85
+ content: "\e9ff";
86
+ }
87
+
88
+ .pi-microphone:before {
89
+ content: "\e9fa";
90
+ }
91
+
92
+ .pi-megaphone:before {
93
+ content: "\e9fb";
94
+ }
95
+
96
+ .pi-arrow-right-arrow-left:before {
97
+ content: "\e9fc";
98
+ }
99
+
100
+ .pi-bitcoin:before {
101
+ content: "\e9fd";
102
+ }
103
+
104
+ .pi-file-edit:before {
105
+ content: "\e9f6";
106
+ }
107
+
108
+ .pi-language:before {
109
+ content: "\e9f7";
110
+ }
111
+
112
+ .pi-file-export:before {
113
+ content: "\e9f8";
114
+ }
115
+
116
+ .pi-file-import:before {
117
+ content: "\e9f9";
118
+ }
119
+
120
+ .pi-file-word:before {
121
+ content: "\e9f1";
122
+ }
123
+
124
+ .pi-gift:before {
125
+ content: "\e9f2";
126
+ }
127
+
128
+ .pi-cart-plus:before {
129
+ content: "\e9f3";
130
+ }
131
+
132
+ .pi-thumbs-down-fill:before {
133
+ content: "\e9f4";
134
+ }
135
+
136
+ .pi-thumbs-up-fill:before {
137
+ content: "\e9f5";
138
+ }
139
+
140
+ .pi-arrows-alt:before {
141
+ content: "\e9f0";
142
+ }
143
+
144
+ .pi-calculator:before {
145
+ content: "\e9ef";
146
+ }
147
+
60
148
  .pi-sort-alt-slash:before {
61
149
  content: "\e9ee";
62
150
  }
@@ -1011,4 +1099,4 @@
1011
1099
 
1012
1100
  .pi-spinner:before {
1013
1101
  content: "\e926";
1014
- }
1102
+ }
@@ -1,15 +0,0 @@
1
- engines:
2
- eslint:
3
- enabled: true
4
- fixme:
5
- enabled: true
6
- markdownlint:
7
- enabled: true
8
- duplication:
9
- enabled: false
10
- exclude_paths:
11
- - "CHANGELOG.md"
12
- ratings:
13
- paths:
14
- - "lib/**/*"
15
- - "index.js"
@@ -1,5 +0,0 @@
1
- node_modules/
2
- npm-debug.log
3
- reports/
4
- docs/
5
- .git/
@@ -1,13 +0,0 @@
1
- # http://editorconfig.org
2
- root = true
3
-
4
- [*]
5
- indent_style = space
6
- indent_size = 2
7
- end_of_line = lf
8
- charset = utf-8
9
- trim_trailing_whitespace = true
10
- insert_final_newline = true
11
-
12
- [*.md]
13
- trim_trailing_whitespace = false
@@ -1,13 +0,0 @@
1
- extends:
2
- - eslint:recommended
3
- - google
4
- env:
5
- node: true
6
- jest: true
7
- parserOptions:
8
- ecmaVersion: 2020
9
- rules:
10
- comma-dangle: [error, never]
11
- max-len: [error, 320]
12
- require-jsdoc: 0
13
- new-cap: 0
@@ -1,26 +0,0 @@
1
- Node Version: `X.Y.Z`
2
-
3
- Node BACstack Version: `X.Y.Z`
4
-
5
- - [ ] Bug Report
6
- - [ ] Feature Request
7
- - [ ] Question
8
-
9
- **Note:** Make sure you have read the [FAQs](https://github.com/fh1ch/node-bacstack/blob/master/FAQ.md)
10
- before logging this issue.
11
-
12
- ### Feature Request / Question
13
-
14
- -
15
-
16
- ### Current Behaviour (Bug Report)
17
-
18
- -
19
-
20
- ### Expected Behaviour (Bug Report)
21
-
22
- -
23
-
24
- ### Steps to reproduce Issue (Bug Report)
25
-
26
- -
@@ -1,14 +0,0 @@
1
- ### Checklist
2
-
3
- - [ ] I've read and followed the [Contribution Guide](https://github.com/fh1ch/node-bacstack/blob/master/CONTRIBUTING.md).
4
- - [ ] My commit messages reference affected issues and mention breaking changes if applicable.
5
- - [ ] I've updated / wrote inline documentation for the source code affected by my changes.
6
- - [ ] All mandatory CI checks have passed (see when Pull Request has been submitted).
7
-
8
- ### Open Question
9
-
10
- -
11
-
12
- ### What does this Pull Request do
13
-
14
- -
@@ -1,39 +0,0 @@
1
- name: CI
2
-
3
- on: push
4
-
5
- jobs:
6
- test:
7
- runs-on: ubuntu-latest
8
- strategy:
9
- matrix:
10
- node: [12, 14, 16]
11
- steps:
12
- - uses: actions/checkout@v2
13
- with:
14
- fetch-depth: 0
15
- - uses: actions/setup-node@v2
16
- with:
17
- node-version: ${{ matrix.node }}
18
- - run: yarn --frozen-lockfile
19
- - run: yarn changelog
20
- - run: yarn lint
21
- - run: yarn test
22
- # TODO: deploy coverage results
23
- - run: yarn integration
24
- - run: yarn docs
25
-
26
- compliance:
27
- runs-on: ubuntu-latest
28
- steps:
29
- - uses: actions/checkout@v2
30
- - run: docker-compose up --abort-on-container-exit --exit-code-from bacnet-client
31
-
32
- pages:
33
- runs-on: ubuntu-latest
34
- steps:
35
- - uses: actions/checkout@v2
36
- - uses: actions/setup-node@v2
37
- - run: yarn --frozen-lockfile
38
- - run: yarn docs
39
- # TODO: deploy pages
@@ -1,8 +0,0 @@
1
- {
2
- "preset": "google",
3
- "maximumLineLength": 320,
4
- "requireSemicolons": true,
5
- "requireCurlyBraces": false,
6
- "requireCapitalizedConstructors": false,
7
- "jsDoc": false
8
- }
@@ -1,50 +0,0 @@
1
- {
2
- "bitwise": false,
3
- "curly": false,
4
- "eqeqeq": true,
5
- "es3": false,
6
- "forin": true,
7
- "freeze": true,
8
- "latedef": false,
9
- "noarg": true,
10
- "nonbsp": true,
11
- "nonew": true,
12
- "plusplus": false,
13
- "undef": true,
14
- "unused": false,
15
- "strict": false,
16
- "maxparams": 15,
17
- "maxdepth": 5,
18
- "maxstatements": 100,
19
- "maxcomplexity": 40,
20
-
21
- "asi": false,
22
- "boss": false,
23
- "debug": false,
24
- "eqnull": true,
25
- "esnext": false,
26
- "evil": false,
27
- "expr": false,
28
- "funcscope": false,
29
- "globalstrict": false,
30
- "iterator": false,
31
- "lastsemic": false,
32
- "loopfunc": true,
33
- "maxerr": false,
34
- "moz": false,
35
- "notypeof": false,
36
- "proto": false,
37
- "scripturl": false,
38
- "shadow": false,
39
- "supernew": false,
40
- "validthis": false,
41
- "noyield": false,
42
-
43
- "browser": true,
44
- "node": true,
45
-
46
- "globals": {
47
- "describe": false,
48
- "it": false
49
- }
50
- }
@@ -1,27 +0,0 @@
1
- language: "node_js"
2
- node_js:
3
- - "7"
4
- - "6"
5
- - "5"
6
- - "4"
7
-
8
- before_install:
9
- - "npm install coveralls"
10
-
11
- script:
12
- - "commitlint-travis"
13
- - "npm run lint"
14
- - "npm run test"
15
- - "cat ./reports/coverage/lcov.info | ./node_modules/.bin/coveralls"
16
- - "npm run integration"
17
- - "npm run docs"
18
-
19
- deploy:
20
- provider: pages
21
- local_dir: ./docs
22
- skip_cleanup: true
23
- github_token: $GITHUB_API_KEY
24
- on:
25
- branch: master
26
-
27
- sudo: false