@bitpoolos/edge-bacnet 1.1.7 → 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 (123) hide show
  1. package/README.md +2 -2
  2. package/bacnet_client.js +331 -168
  3. package/bacnet_device.js +50 -16
  4. package/bacnet_gateway.html +119 -15
  5. package/bacnet_gateway.js +388 -395
  6. package/bacnet_read.html +32 -11
  7. package/bacnet_read.js +1 -1
  8. package/bacnet_server.js +86 -24
  9. package/common.js +26 -19
  10. package/examples/1-Discover-Read.json +1 -1
  11. package/examples/2-Discover-Write.json +1 -1
  12. package/examples/3-Discover-Read-Write.json +1 -1
  13. package/package.json +3 -3
  14. package/resources/{node-bacnet/LICENSE.md → node-bacstack-ts/LICENSE} +3 -4
  15. package/resources/node-bacstack-ts/README.md +75 -0
  16. package/resources/{node-bacnet → node-bacstack-ts/dist}/index.js +0 -2
  17. package/resources/node-bacstack-ts/dist/lib/apdu.js +193 -0
  18. package/resources/node-bacstack-ts/dist/lib/asn1.js +1660 -0
  19. package/resources/node-bacstack-ts/dist/lib/bvlc.js +47 -0
  20. package/resources/node-bacstack-ts/dist/lib/client.js +1454 -0
  21. package/resources/node-bacstack-ts/dist/lib/enum.js +2114 -0
  22. package/resources/node-bacstack-ts/dist/lib/npdu.js +112 -0
  23. package/resources/node-bacstack-ts/dist/lib/services/add-list-element.js +58 -0
  24. package/resources/node-bacstack-ts/dist/lib/services/alarm-acknowledge.js +93 -0
  25. package/resources/node-bacstack-ts/dist/lib/services/alarm-summary.js +42 -0
  26. package/resources/node-bacstack-ts/dist/lib/services/atomic-read-file.js +157 -0
  27. package/resources/node-bacstack-ts/dist/lib/services/atomic-write-file.js +136 -0
  28. package/resources/node-bacstack-ts/dist/lib/services/cov-notify.js +119 -0
  29. package/resources/node-bacstack-ts/dist/lib/services/create-object.js +104 -0
  30. package/resources/node-bacstack-ts/dist/lib/services/delete-object.js +21 -0
  31. package/resources/node-bacstack-ts/dist/lib/services/device-communication-control.js +46 -0
  32. package/resources/node-bacstack-ts/dist/lib/services/error.js +27 -0
  33. package/resources/node-bacstack-ts/dist/lib/services/event-information.js +100 -0
  34. package/resources/node-bacstack-ts/dist/lib/services/event-notify-data.js +219 -0
  35. package/resources/node-bacstack-ts/dist/lib/services/get-enrollment-summary.js +172 -0
  36. package/resources/node-bacstack-ts/dist/lib/services/get-event-information.js +135 -0
  37. package/resources/node-bacstack-ts/dist/lib/services/i-am-broadcast.js +59 -0
  38. package/resources/node-bacstack-ts/dist/lib/services/i-have-broadcast.js +34 -0
  39. package/resources/node-bacstack-ts/dist/lib/services/index.js +32 -0
  40. package/resources/node-bacstack-ts/dist/lib/services/life-safety-operation.js +40 -0
  41. package/resources/node-bacstack-ts/dist/lib/services/private-transfer.js +43 -0
  42. package/resources/node-bacstack-ts/dist/lib/services/read-property-multiple.js +44 -0
  43. package/resources/node-bacstack-ts/dist/lib/services/read-property.js +122 -0
  44. package/resources/node-bacstack-ts/dist/lib/services/read-range.js +201 -0
  45. package/resources/node-bacstack-ts/dist/lib/services/reinitialize-device.js +35 -0
  46. package/resources/node-bacstack-ts/dist/lib/services/subscribe-cov.js +55 -0
  47. package/resources/node-bacstack-ts/dist/lib/services/subscribe-property.js +93 -0
  48. package/resources/node-bacstack-ts/dist/lib/services/time-sync.js +31 -0
  49. package/resources/node-bacstack-ts/dist/lib/services/who-has.js +56 -0
  50. package/resources/node-bacstack-ts/dist/lib/services/who-is.js +45 -0
  51. package/resources/node-bacstack-ts/dist/lib/services/write-property-multiple.js +105 -0
  52. package/resources/node-bacstack-ts/dist/lib/services/write-property.js +90 -0
  53. package/resources/node-bacstack-ts/dist/lib/transport.js +49 -0
  54. package/resources/node-bacstack-ts/dist/lib/types.js +2 -0
  55. package/resources/node-bacstack-ts/package.json +94 -0
  56. package/resources/node-bacnet/CHANGELOG.md +0 -481
  57. package/resources/node-bacnet/README.md +0 -91
  58. package/resources/node-bacnet/docs/Client.html +0 -4422
  59. package/resources/node-bacnet/docs/bacnet-icon-quad.png +0 -0
  60. package/resources/node-bacnet/docs/bacnet-icon-quad128.png +0 -0
  61. package/resources/node-bacnet/docs/bacnet-icon-quad64.png +0 -0
  62. package/resources/node-bacnet/docs/bacnet-icon-small.xcf +0 -0
  63. package/resources/node-bacnet/docs/bacnet-icon.xcf +0 -0
  64. package/resources/node-bacnet/docs/bacnet.html +0 -7032
  65. package/resources/node-bacnet/docs/client.js.html +0 -1759
  66. package/resources/node-bacnet/docs/enum.js.html +0 -2530
  67. package/resources/node-bacnet/docs/global.html +0 -2068
  68. package/resources/node-bacnet/docs/images/mocha-logo.svg +0 -65
  69. package/resources/node-bacnet/docs/index.html +0 -283
  70. package/resources/node-bacnet/docs/scripts/collapse.js +0 -11
  71. package/resources/node-bacnet/docs/scripts/jquery-3.1.1.min.js +0 -4
  72. package/resources/node-bacnet/docs/scripts/linenumber.js +0 -26
  73. package/resources/node-bacnet/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  74. package/resources/node-bacnet/docs/scripts/prettify/lang-css.js +0 -2
  75. package/resources/node-bacnet/docs/scripts/prettify/prettify.js +0 -28
  76. package/resources/node-bacnet/docs/scripts/search.js +0 -47
  77. package/resources/node-bacnet/docs/services_i-am.js.html +0 -157
  78. package/resources/node-bacnet/docs/services_time-sync.js.html +0 -118
  79. package/resources/node-bacnet/docs/services_who-is.js.html +0 -138
  80. package/resources/node-bacnet/docs/styles/jsdoc.css +0 -683
  81. package/resources/node-bacnet/docs/styles/prettify.css +0 -82
  82. package/resources/node-bacnet/examples/discover-devices.js +0 -66
  83. package/resources/node-bacnet/examples/read-device.js +0 -510
  84. package/resources/node-bacnet/examples/subscribe-cov.js +0 -75
  85. package/resources/node-bacnet/lib/apdu.js +0 -209
  86. package/resources/node-bacnet/lib/asn1.js +0 -1733
  87. package/resources/node-bacnet/lib/bvlc.js +0 -90
  88. package/resources/node-bacnet/lib/client.js +0 -1695
  89. package/resources/node-bacnet/lib/enum.js +0 -2463
  90. package/resources/node-bacnet/lib/npdu.js +0 -123
  91. package/resources/node-bacnet/lib/services/add-list-element.js +0 -64
  92. package/resources/node-bacnet/lib/services/alarm-acknowledge.js +0 -90
  93. package/resources/node-bacnet/lib/services/alarm-summary.js +0 -42
  94. package/resources/node-bacnet/lib/services/atomic-read-file.js +0 -162
  95. package/resources/node-bacnet/lib/services/atomic-write-file.js +0 -138
  96. package/resources/node-bacnet/lib/services/cov-notify.js +0 -126
  97. package/resources/node-bacnet/lib/services/create-object.js +0 -106
  98. package/resources/node-bacnet/lib/services/delete-object.js +0 -23
  99. package/resources/node-bacnet/lib/services/device-communication-control.js +0 -48
  100. package/resources/node-bacnet/lib/services/error.js +0 -33
  101. package/resources/node-bacnet/lib/services/event-information.js +0 -99
  102. package/resources/node-bacnet/lib/services/event-notify-data.js +0 -229
  103. package/resources/node-bacnet/lib/services/get-enrollment-summary.js +0 -178
  104. package/resources/node-bacnet/lib/services/get-event-information.js +0 -144
  105. package/resources/node-bacnet/lib/services/i-am.js +0 -90
  106. package/resources/node-bacnet/lib/services/i-have.js +0 -34
  107. package/resources/node-bacnet/lib/services/index.js +0 -34
  108. package/resources/node-bacnet/lib/services/life-safety-operation.js +0 -40
  109. package/resources/node-bacnet/lib/services/private-transfer.js +0 -43
  110. package/resources/node-bacnet/lib/services/read-property-multiple.js +0 -50
  111. package/resources/node-bacnet/lib/services/read-property.js +0 -130
  112. package/resources/node-bacnet/lib/services/read-range.js +0 -201
  113. package/resources/node-bacnet/lib/services/register-foreign-device.js +0 -18
  114. package/resources/node-bacnet/lib/services/reinitialize-device.js +0 -37
  115. package/resources/node-bacnet/lib/services/subscribe-cov.js +0 -57
  116. package/resources/node-bacnet/lib/services/subscribe-property.js +0 -97
  117. package/resources/node-bacnet/lib/services/time-sync.js +0 -51
  118. package/resources/node-bacnet/lib/services/who-has.js +0 -54
  119. package/resources/node-bacnet/lib/services/who-is.js +0 -71
  120. package/resources/node-bacnet/lib/services/write-property-multiple.js +0 -117
  121. package/resources/node-bacnet/lib/services/write-property.js +0 -94
  122. package/resources/node-bacnet/lib/transport.js +0 -82
  123. 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
- }