@bitpoolos/edge-bacnet 1.1.8 → 1.2.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 (122) hide show
  1. package/bacnet_client.js +331 -168
  2. package/bacnet_device.js +50 -16
  3. package/bacnet_gateway.html +119 -15
  4. package/bacnet_gateway.js +388 -395
  5. package/bacnet_read.html +32 -11
  6. package/bacnet_read.js +1 -1
  7. package/bacnet_server.js +16 -12
  8. package/common.js +26 -19
  9. package/examples/1-Discover-Read.json +1 -1
  10. package/examples/2-Discover-Write.json +1 -1
  11. package/examples/3-Discover-Read-Write.json +1 -1
  12. package/package.json +3 -3
  13. package/resources/{node-bacnet/LICENSE.md → node-bacstack-ts/LICENSE} +3 -4
  14. package/resources/node-bacstack-ts/README.md +75 -0
  15. package/resources/{node-bacnet → node-bacstack-ts/dist}/index.js +0 -2
  16. package/resources/node-bacstack-ts/dist/lib/apdu.js +193 -0
  17. package/resources/node-bacstack-ts/dist/lib/asn1.js +1660 -0
  18. package/resources/node-bacstack-ts/dist/lib/bvlc.js +47 -0
  19. package/resources/node-bacstack-ts/dist/lib/client.js +1454 -0
  20. package/resources/node-bacstack-ts/dist/lib/enum.js +2114 -0
  21. package/resources/node-bacstack-ts/dist/lib/npdu.js +112 -0
  22. package/resources/node-bacstack-ts/dist/lib/services/add-list-element.js +58 -0
  23. package/resources/node-bacstack-ts/dist/lib/services/alarm-acknowledge.js +93 -0
  24. package/resources/node-bacstack-ts/dist/lib/services/alarm-summary.js +42 -0
  25. package/resources/node-bacstack-ts/dist/lib/services/atomic-read-file.js +157 -0
  26. package/resources/node-bacstack-ts/dist/lib/services/atomic-write-file.js +136 -0
  27. package/resources/node-bacstack-ts/dist/lib/services/cov-notify.js +119 -0
  28. package/resources/node-bacstack-ts/dist/lib/services/create-object.js +104 -0
  29. package/resources/node-bacstack-ts/dist/lib/services/delete-object.js +21 -0
  30. package/resources/node-bacstack-ts/dist/lib/services/device-communication-control.js +46 -0
  31. package/resources/node-bacstack-ts/dist/lib/services/error.js +27 -0
  32. package/resources/node-bacstack-ts/dist/lib/services/event-information.js +100 -0
  33. package/resources/node-bacstack-ts/dist/lib/services/event-notify-data.js +219 -0
  34. package/resources/node-bacstack-ts/dist/lib/services/get-enrollment-summary.js +172 -0
  35. package/resources/node-bacstack-ts/dist/lib/services/get-event-information.js +135 -0
  36. package/resources/node-bacstack-ts/dist/lib/services/i-am-broadcast.js +59 -0
  37. package/resources/node-bacstack-ts/dist/lib/services/i-have-broadcast.js +34 -0
  38. package/resources/node-bacstack-ts/dist/lib/services/index.js +32 -0
  39. package/resources/node-bacstack-ts/dist/lib/services/life-safety-operation.js +40 -0
  40. package/resources/node-bacstack-ts/dist/lib/services/private-transfer.js +43 -0
  41. package/resources/node-bacstack-ts/dist/lib/services/read-property-multiple.js +44 -0
  42. package/resources/node-bacstack-ts/dist/lib/services/read-property.js +122 -0
  43. package/resources/node-bacstack-ts/dist/lib/services/read-range.js +201 -0
  44. package/resources/node-bacstack-ts/dist/lib/services/reinitialize-device.js +35 -0
  45. package/resources/node-bacstack-ts/dist/lib/services/subscribe-cov.js +55 -0
  46. package/resources/node-bacstack-ts/dist/lib/services/subscribe-property.js +93 -0
  47. package/resources/node-bacstack-ts/dist/lib/services/time-sync.js +31 -0
  48. package/resources/node-bacstack-ts/dist/lib/services/who-has.js +56 -0
  49. package/resources/node-bacstack-ts/dist/lib/services/who-is.js +45 -0
  50. package/resources/node-bacstack-ts/dist/lib/services/write-property-multiple.js +105 -0
  51. package/resources/node-bacstack-ts/dist/lib/services/write-property.js +90 -0
  52. package/resources/node-bacstack-ts/dist/lib/transport.js +49 -0
  53. package/resources/node-bacstack-ts/dist/lib/types.js +2 -0
  54. package/resources/node-bacstack-ts/package.json +94 -0
  55. package/resources/node-bacnet/CHANGELOG.md +0 -481
  56. package/resources/node-bacnet/README.md +0 -91
  57. package/resources/node-bacnet/docs/Client.html +0 -4422
  58. package/resources/node-bacnet/docs/bacnet-icon-quad.png +0 -0
  59. package/resources/node-bacnet/docs/bacnet-icon-quad128.png +0 -0
  60. package/resources/node-bacnet/docs/bacnet-icon-quad64.png +0 -0
  61. package/resources/node-bacnet/docs/bacnet-icon-small.xcf +0 -0
  62. package/resources/node-bacnet/docs/bacnet-icon.xcf +0 -0
  63. package/resources/node-bacnet/docs/bacnet.html +0 -7032
  64. package/resources/node-bacnet/docs/client.js.html +0 -1759
  65. package/resources/node-bacnet/docs/enum.js.html +0 -2530
  66. package/resources/node-bacnet/docs/global.html +0 -2068
  67. package/resources/node-bacnet/docs/images/mocha-logo.svg +0 -65
  68. package/resources/node-bacnet/docs/index.html +0 -283
  69. package/resources/node-bacnet/docs/scripts/collapse.js +0 -11
  70. package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +0 -4
  71. package/resources/node-bacnet/docs/scripts/linenumber.js +0 -26
  72. package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  73. package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +0 -2
  74. package/resources/node-bacnet/docs/scripts/prettify/prettify.js +0 -28
  75. package/resources/node-bacnet/docs/scripts/search.js +0 -47
  76. package/resources/node-bacnet/docs/services_i-am.js.html +0 -157
  77. package/resources/node-bacnet/docs/services_time-sync.js.html +0 -118
  78. package/resources/node-bacnet/docs/services_who-is.js.html +0 -138
  79. package/resources/node-bacnet/docs/styles/jsdoc.css +0 -683
  80. package/resources/node-bacnet/docs/styles/prettify.css +0 -82
  81. package/resources/node-bacnet/examples/discover-devices.js +0 -66
  82. package/resources/node-bacnet/examples/read-device.js +0 -510
  83. package/resources/node-bacnet/examples/subscribe-cov.js +0 -75
  84. package/resources/node-bacnet/lib/apdu.js +0 -209
  85. package/resources/node-bacnet/lib/asn1.js +0 -1733
  86. package/resources/node-bacnet/lib/bvlc.js +0 -90
  87. package/resources/node-bacnet/lib/client.js +0 -1695
  88. package/resources/node-bacnet/lib/enum.js +0 -2463
  89. package/resources/node-bacnet/lib/npdu.js +0 -123
  90. package/resources/node-bacnet/lib/services/add-list-element.js +0 -64
  91. package/resources/node-bacnet/lib/services/alarm-acknowledge.js +0 -90
  92. package/resources/node-bacnet/lib/services/alarm-summary.js +0 -42
  93. package/resources/node-bacnet/lib/services/atomic-read-file.js +0 -162
  94. package/resources/node-bacnet/lib/services/atomic-write-file.js +0 -138
  95. package/resources/node-bacnet/lib/services/cov-notify.js +0 -126
  96. package/resources/node-bacnet/lib/services/create-object.js +0 -106
  97. package/resources/node-bacnet/lib/services/delete-object.js +0 -23
  98. package/resources/node-bacnet/lib/services/device-communication-control.js +0 -48
  99. package/resources/node-bacnet/lib/services/error.js +0 -33
  100. package/resources/node-bacnet/lib/services/event-information.js +0 -99
  101. package/resources/node-bacnet/lib/services/event-notify-data.js +0 -229
  102. package/resources/node-bacnet/lib/services/get-enrollment-summary.js +0 -178
  103. package/resources/node-bacnet/lib/services/get-event-information.js +0 -144
  104. package/resources/node-bacnet/lib/services/i-am.js +0 -90
  105. package/resources/node-bacnet/lib/services/i-have.js +0 -34
  106. package/resources/node-bacnet/lib/services/index.js +0 -34
  107. package/resources/node-bacnet/lib/services/life-safety-operation.js +0 -40
  108. package/resources/node-bacnet/lib/services/private-transfer.js +0 -43
  109. package/resources/node-bacnet/lib/services/read-property-multiple.js +0 -50
  110. package/resources/node-bacnet/lib/services/read-property.js +0 -130
  111. package/resources/node-bacnet/lib/services/read-range.js +0 -201
  112. package/resources/node-bacnet/lib/services/register-foreign-device.js +0 -18
  113. package/resources/node-bacnet/lib/services/reinitialize-device.js +0 -37
  114. package/resources/node-bacnet/lib/services/subscribe-cov.js +0 -57
  115. package/resources/node-bacnet/lib/services/subscribe-property.js +0 -97
  116. package/resources/node-bacnet/lib/services/time-sync.js +0 -51
  117. package/resources/node-bacnet/lib/services/who-has.js +0 -54
  118. package/resources/node-bacnet/lib/services/who-is.js +0 -71
  119. package/resources/node-bacnet/lib/services/write-property-multiple.js +0 -117
  120. package/resources/node-bacnet/lib/services/write-property.js +0 -94
  121. package/resources/node-bacnet/lib/transport.js +0 -82
  122. package/resources/node-bacnet/package.json +0 -92
@@ -1,71 +0,0 @@
1
- /**
2
- * The whoIs event represents the request for an IAm reponse to detect all
3
- * devices in a BACNET network.
4
- *
5
- * @event bacnet.whoIs
6
- * @param {number=} lowLimit - The lowest BACnet ID being queried.
7
- * @param {number=} highLimit - The highest BACnet ID being queried.
8
- *
9
- * @example
10
- * const bacnet = require('node-bacnet');
11
- * const client = new bacnet();
12
- *
13
- * client.on('whoIs', (msg) => {
14
- * console.log(
15
- * 'address: ', msg.header.address,
16
- * ' - lowLimit: ', msg.payload.lowLimit,
17
- * ' - highLimit: ', msg.payload.highLimit
18
- * );
19
- * });
20
- */
21
-
22
- 'use strict';
23
-
24
- const baAsn1 = require('../asn1');
25
- const baEnum = require('../enum');
26
-
27
- module.exports.encode = (buffer, lowLimit, highLimit) => {
28
- if ((lowLimit >= 0) && (lowLimit <= baEnum.ASN1_MAX_INSTANCE) && (highLimit >= 0) && (highLimit <= baEnum.ASN1_MAX_INSTANCE)) {
29
- baAsn1.encodeContextUnsigned(buffer, 0, lowLimit);
30
- baAsn1.encodeContextUnsigned(buffer, 1, highLimit);
31
- }
32
- };
33
-
34
- module.exports.decode = (buffer, offset, apduLen) => {
35
- let len = 0;
36
- let value = {};
37
- if (apduLen <= 0) {
38
- return {}; // TODO: why??
39
- }
40
- let result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
41
- len += result.len;
42
- if (result.tagNumber !== 0) {
43
- return undefined;
44
- }
45
- if (apduLen <= len) {
46
- return undefined;
47
- }
48
- let decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
49
- len += decodedValue.len;
50
- if (decodedValue.value <= baEnum.ASN1_MAX_INSTANCE) {
51
- value.lowLimit = decodedValue.value;
52
- }
53
- if (apduLen <= len) {
54
- return undefined;
55
- }
56
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
57
- len += result.len;
58
- if (result.tagNumber !== 1) {
59
- return undefined;
60
- }
61
- if (apduLen <= len) {
62
- return undefined;
63
- }
64
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
65
- len += decodedValue.len;
66
- if (decodedValue.value <= baEnum.ASN1_MAX_INSTANCE) {
67
- value.highLimit = decodedValue.value;
68
- }
69
- value.len = len;
70
- return value;
71
- };
@@ -1,117 +0,0 @@
1
- 'use strict';
2
-
3
- const baAsn1 = require('../asn1');
4
- const baEnum = require('../enum');
5
-
6
- const encode = module.exports.encode = (buffer, objectId, values) => {
7
- baAsn1.encodeContextObjectId(buffer, 0, objectId.type, objectId.instance);
8
- baAsn1.encodeOpeningTag(buffer, 1);
9
- values.forEach((pValue) => {
10
- baAsn1.encodeContextEnumerated(buffer, 0, pValue.property.id);
11
- if (pValue.property.index !== baEnum.ASN1_ARRAY_ALL) {
12
- baAsn1.encodeContextUnsigned(buffer, 1, pValue.property.index);
13
- }
14
- baAsn1.encodeOpeningTag(buffer, 2);
15
- pValue.value.forEach((value) => {
16
- baAsn1.bacappEncodeApplicationData(buffer, value);
17
- });
18
- baAsn1.encodeClosingTag(buffer, 2);
19
- if (pValue.priority !== baEnum.ASN1_NO_PRIORITY) {
20
- baAsn1.encodeContextUnsigned(buffer, 3, pValue.priority);
21
- }
22
- });
23
- baAsn1.encodeClosingTag(buffer, 1);
24
- };
25
-
26
- module.exports.decode = (buffer, offset, apduLen) => {
27
- let len = 0;
28
- let result;
29
- let decodedValue;
30
- let objectId;
31
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
32
- len += result.len;
33
- if ((result.tagNumber !== 0) || (apduLen <= len)) {
34
- return undefined;
35
- }
36
- apduLen -= len;
37
- if (apduLen < 4) {
38
- return undefined;
39
- }
40
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
41
- len += decodedValue.len;
42
- objectId = {
43
- type: decodedValue.objectType,
44
- instance: decodedValue.instance
45
- };
46
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 1)) {
47
- return undefined;
48
- }
49
- len++;
50
- const _values = [];
51
- while ((apduLen - len) > 1) {
52
- let newEntry = {};
53
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
54
- len += result.len;
55
- if (result.tagNumber !== 0) {
56
- return undefined;
57
- }
58
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
59
- len += decodedValue.len;
60
- let propertyId = decodedValue.value;
61
- let arrayIndex = baEnum.ASN1_ARRAY_ALL;
62
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
63
- len += result.len;
64
- if (result.tagNumber === 1) {
65
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
66
- len += decodedValue.len;
67
- arrayIndex = decodedValue.value;
68
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
69
- len += result.len;
70
- }
71
- newEntry.property = {id: propertyId, index: arrayIndex};
72
- if ((result.tagNumber !== 2) || (!baAsn1.decodeIsOpeningTag(buffer, offset + len - 1))) {
73
- return undefined;
74
- }
75
- const values = [];
76
- while ((len + offset) <= buffer.length && !baAsn1.decodeIsClosingTag(buffer, offset + len)) {
77
- let value = baAsn1.bacappDecodeApplicationData(buffer, offset + len, apduLen + offset, objectId.type, propertyId);
78
- if (!value) {
79
- return undefined;
80
- }
81
- len += value.len;
82
- delete value.len;
83
- values.push(value);
84
- }
85
- len++;
86
- newEntry.value = values;
87
- let priority = baEnum.ASN1_NO_PRIORITY;
88
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
89
- len += result.len;
90
- if (result.tagNumber === 3) {
91
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
92
- len += decodedValue.len;
93
- priority = decodedValue.value;
94
- } else {
95
- len--;
96
- }
97
- newEntry.priority = priority;
98
- _values.push(newEntry);
99
- if (baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 1)) {
100
- len++;
101
- }
102
- }
103
- if (baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 1)) {
104
- len++;
105
- }
106
- return {
107
- len,
108
- objectId,
109
- values: _values
110
- };
111
- };
112
-
113
- module.exports.encodeObject = (buffer, values) => {
114
- values.forEach((object) => {
115
- encode(buffer, object.objectId, object.values);
116
- });
117
- };
@@ -1,94 +0,0 @@
1
- 'use strict';
2
-
3
- const baAsn1 = require('../asn1');
4
- const baEnum = require('../enum');
5
-
6
- module.exports.encode = (buffer, objectType, objectInstance, propertyId, arrayIndex, priority, values) => {
7
- baAsn1.encodeContextObjectId(buffer, 0, objectType, objectInstance);
8
- baAsn1.encodeContextEnumerated(buffer, 1, propertyId);
9
- if (arrayIndex !== baEnum.ASN1_ARRAY_ALL) {
10
- baAsn1.encodeContextUnsigned(buffer, 2, arrayIndex);
11
- }
12
- baAsn1.encodeOpeningTag(buffer, 3);
13
- values.forEach((value) => {
14
- baAsn1.bacappEncodeApplicationData(buffer, value);
15
- });
16
- baAsn1.encodeClosingTag(buffer, 3);
17
- if (priority !== baEnum.ASN1_NO_PRIORITY) {
18
- baAsn1.encodeContextUnsigned(buffer, 4, priority);
19
- }
20
- };
21
-
22
- module.exports.decode = (buffer, offset, apduLen) => {
23
- let len = 0;
24
- let value = {
25
- property: {}
26
- };
27
- let decodedValue;
28
- let result;
29
- if (!baAsn1.decodeIsContextTag(buffer, offset + len, 0)) {
30
- return undefined;
31
- }
32
- len++;
33
- decodedValue = baAsn1.decodeObjectId(buffer, offset + len);
34
- let objectId = {
35
- type: decodedValue.objectType,
36
- instance: decodedValue.instance
37
- };
38
- len += decodedValue.len;
39
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
40
- len += result.len;
41
- if (result.tagNumber !== 1) {
42
- return undefined;
43
- }
44
- decodedValue = baAsn1.decodeEnumerated(buffer, offset + len, result.value);
45
- len += decodedValue.len;
46
- value.property.id = decodedValue.value;
47
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
48
- if (result.tagNumber === 2) {
49
- len += result.len;
50
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
51
- len += decodedValue.len;
52
- value.property.index = decodedValue.value;
53
- } else {
54
- value.property.index = baEnum.ASN1_ARRAY_ALL;
55
- }
56
- if (!baAsn1.decodeIsOpeningTagNumber(buffer, offset + len, 3)) {
57
- return undefined;
58
- }
59
- len++;
60
- const values = [];
61
- while ((apduLen - len) > 1 && !baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3)) {
62
- decodedValue = baAsn1.bacappDecodeApplicationData(buffer, offset + len, apduLen + offset, objectId.type, value.property.id);
63
- if (!decodedValue) {
64
- return undefined;
65
- }
66
- len += decodedValue.len;
67
- delete decodedValue.len;
68
- values.push(decodedValue);
69
- }
70
- value.value = values;
71
- if (!baAsn1.decodeIsClosingTagNumber(buffer, offset + len, 3)) {
72
- return undefined;
73
- }
74
- len++;
75
- value.priority = baEnum.ASN1_MAX_PRIORITY;
76
- if (len < apduLen) {
77
- result = baAsn1.decodeTagNumberAndValue(buffer, offset + len);
78
- if (result.tagNumber === 4) {
79
- len += result.len;
80
- decodedValue = baAsn1.decodeUnsigned(buffer, offset + len, result.value);
81
- len += decodedValue;
82
- if ((decodedValue.value >= baEnum.ASN1_MIN_PRIORITY) && (decodedValue.value <= baEnum.ASN1_MAX_PRIORITY)) {
83
- value.priority = decodedValue.value;
84
- } else {
85
- return undefined;
86
- }
87
- }
88
- }
89
- return {
90
- len,
91
- objectId,
92
- value
93
- };
94
- };
@@ -1,82 +0,0 @@
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;
@@ -1,92 +0,0 @@
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
- }