node-opcua-server 2.98.0 → 2.98.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 (92) hide show
  1. package/dist/base_server.d.ts +110 -0
  2. package/dist/base_server.js +491 -0
  3. package/dist/base_server.js.map +1 -0
  4. package/dist/factory.d.ts +12 -0
  5. package/dist/factory.js +24 -0
  6. package/dist/factory.js.map +1 -0
  7. package/dist/filter/check_where_clause_on_address_space.d.ts +3 -0
  8. package/dist/filter/check_where_clause_on_address_space.js +23 -0
  9. package/dist/filter/check_where_clause_on_address_space.js.map +1 -0
  10. package/dist/filter/extract_event_fields.d.ts +10 -0
  11. package/dist/filter/extract_event_fields.js +18 -0
  12. package/dist/filter/extract_event_fields.js.map +1 -0
  13. package/dist/helper.d.ts +10 -0
  14. package/dist/helper.js +76 -0
  15. package/dist/helper.js.map +1 -0
  16. package/dist/history_server_capabilities.d.ts +35 -0
  17. package/dist/history_server_capabilities.js +44 -0
  18. package/dist/history_server_capabilities.js.map +1 -0
  19. package/dist/i_channel_data.d.ts +13 -0
  20. package/dist/i_channel_data.js +3 -0
  21. package/dist/i_channel_data.js.map +1 -0
  22. package/dist/i_register_server_manager.d.ts +16 -0
  23. package/dist/i_register_server_manager.js +3 -0
  24. package/dist/i_register_server_manager.js.map +1 -0
  25. package/dist/i_server_side_publish_engine.d.ts +36 -0
  26. package/dist/i_server_side_publish_engine.js +50 -0
  27. package/dist/i_server_side_publish_engine.js.map +1 -0
  28. package/dist/i_socket_data.d.ts +11 -0
  29. package/dist/i_socket_data.js +3 -0
  30. package/dist/i_socket_data.js.map +1 -0
  31. package/dist/index.d.ts +16 -0
  32. package/dist/index.js +33 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/monitored_item.d.ts +188 -0
  35. package/dist/monitored_item.js +1113 -0
  36. package/dist/monitored_item.js.map +1 -0
  37. package/dist/node_sampler.d.ts +3 -0
  38. package/dist/node_sampler.js +80 -0
  39. package/dist/node_sampler.js.map +1 -0
  40. package/dist/opcua_server.d.ts +747 -0
  41. package/dist/opcua_server.js +2429 -0
  42. package/dist/opcua_server.js.map +1 -0
  43. package/dist/queue.d.ts +11 -0
  44. package/dist/queue.js +72 -0
  45. package/dist/queue.js.map +1 -0
  46. package/dist/register_server_manager.d.ts +96 -0
  47. package/dist/register_server_manager.js +585 -0
  48. package/dist/register_server_manager.js.map +1 -0
  49. package/dist/register_server_manager_hidden.d.ts +17 -0
  50. package/dist/register_server_manager_hidden.js +28 -0
  51. package/dist/register_server_manager_hidden.js.map +1 -0
  52. package/dist/register_server_manager_mdns_only.d.ts +22 -0
  53. package/dist/register_server_manager_mdns_only.js +56 -0
  54. package/dist/register_server_manager_mdns_only.js.map +1 -0
  55. package/dist/sampling_func.d.ts +3 -0
  56. package/dist/sampling_func.js +3 -0
  57. package/dist/sampling_func.js.map +1 -0
  58. package/dist/server_capabilities.d.ts +148 -0
  59. package/dist/server_capabilities.js +102 -0
  60. package/dist/server_capabilities.js.map +1 -0
  61. package/dist/server_end_point.d.ts +185 -0
  62. package/dist/server_end_point.js +841 -0
  63. package/dist/server_end_point.js.map +1 -0
  64. package/dist/server_engine.d.ts +318 -0
  65. package/dist/server_engine.js +1775 -0
  66. package/dist/server_engine.js.map +1 -0
  67. package/dist/server_publish_engine.d.ts +113 -0
  68. package/dist/server_publish_engine.js +542 -0
  69. package/dist/server_publish_engine.js.map +1 -0
  70. package/dist/server_publish_engine_for_orphan_subscriptions.d.ts +16 -0
  71. package/dist/server_publish_engine_for_orphan_subscriptions.js +52 -0
  72. package/dist/server_publish_engine_for_orphan_subscriptions.js.map +1 -0
  73. package/dist/server_session.d.ts +185 -0
  74. package/dist/server_session.js +758 -0
  75. package/dist/server_session.js.map +1 -0
  76. package/dist/server_subscription.d.ts +421 -0
  77. package/dist/server_subscription.js +1348 -0
  78. package/dist/server_subscription.js.map +1 -0
  79. package/dist/sessions_compatible_for_transfer.d.ts +2 -0
  80. package/dist/sessions_compatible_for_transfer.js +40 -0
  81. package/dist/sessions_compatible_for_transfer.js.map +1 -0
  82. package/dist/user_manager.d.ts +32 -0
  83. package/dist/user_manager.js +99 -0
  84. package/dist/user_manager.js.map +1 -0
  85. package/dist/user_manager_ua.d.ts +3 -0
  86. package/dist/user_manager_ua.js +40 -0
  87. package/dist/user_manager_ua.js.map +1 -0
  88. package/dist/validate_filter.d.ts +5 -0
  89. package/dist/validate_filter.js +82 -0
  90. package/dist/validate_filter.js.map +1 -0
  91. package/package.json +51 -47
  92. package/test_helpers/create_certificates.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../source/factory.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yDAA2C;AAC3C,6EAA8D;AAC9D,2DAAgE;AAMhE,MAAa,OAAO;IAGhB,YAAY,MAAwB;QAChC,IAAA,0BAAM,EAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,eAAe,CAAC,EAAkB;QACrC,MAAM,GAAG,GAAG,IAAA,+CAA0B,GAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,GAAG,YAAY,6CAAe,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACrD;QACD,OAAO,GAAsB,CAAC;IAClC,CAAC;CACJ;AAfD,0BAeC"}
@@ -0,0 +1,3 @@
1
+ import { IAddressSpace, ISessionContext, IEventData } from "node-opcua-address-space-base";
2
+ import { ContentFilter } from "node-opcua-types";
3
+ export declare function checkWhereClauseOnAdressSpace(addressSpace: IAddressSpace, sessionContext: ISessionContext, whereClause: ContentFilter, eventData: IEventData): boolean;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkWhereClauseOnAdressSpace = void 0;
4
+ const node_opcua_service_filter_1 = require("node-opcua-service-filter");
5
+ const node_opcua_service_filter_2 = require("node-opcua-service-filter");
6
+ function checkWhereClauseOnAdressSpace(addressSpace, sessionContext, whereClause, eventData) {
7
+ // const filterContext: FilterContext = {
8
+ // addressSpace,
9
+ // sessionContext,
10
+ // rootNode: eventData.$eventDataSource!,
11
+ // extractValue(operand: FilterOperand) {
12
+ // if (operand instanceof SimpleAttributeOperand) {
13
+ // return extractEventFields(filterContext.sessionContext, [operand], eventData)[0];
14
+ // } else {
15
+ // return new Variant({ dataType: DataType.Null });
16
+ // }
17
+ // }
18
+ // };
19
+ const filterContext = new node_opcua_service_filter_2.FilterContextOnAddressSpace(sessionContext, eventData);
20
+ return (0, node_opcua_service_filter_1.checkFilter)(filterContext, whereClause);
21
+ }
22
+ exports.checkWhereClauseOnAdressSpace = checkWhereClauseOnAdressSpace;
23
+ //# sourceMappingURL=check_where_clause_on_address_space.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check_where_clause_on_address_space.js","sourceRoot":"","sources":["../../source/filter/check_where_clause_on_address_space.ts"],"names":[],"mappings":";;;AACA,yEAAwD;AACxD,yEAAwE;AAGxE,SAAgB,6BAA6B,CACzC,YAA2B,EAC3B,cAA+B,EAC/B,WAA0B,EAC1B,SAAqB;IAIrB,yCAAyC;IACzC,oBAAoB;IACpB,sBAAsB;IACtB,6CAA6C;IAC7C,6CAA6C;IAC7C,2DAA2D;IAC3D,gGAAgG;IAChG,mBAAmB;IACnB,+DAA+D;IAC/D,YAAY;IACZ,QAAQ;IACR,KAAK;IACL,MAAM,aAAa,GAAG,IAAI,uDAA2B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAEjF,OAAO,IAAA,uCAAW,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC;AAvBD,sEAuBC"}
@@ -0,0 +1,10 @@
1
+ import { IEventData, ISessionContext } from "node-opcua-address-space-base";
2
+ import { SimpleAttributeOperand } from "node-opcua-types";
3
+ import { Variant } from "node-opcua-variant";
4
+ /**
5
+ * @method extractEventFields
6
+ * extract a array of eventFields from a event node, matching the selectClauses
7
+ * @param selectClauses
8
+ * @param eventData : a pseudo Node that provides a browse Method and a readValue(nodeId)
9
+ */
10
+ export declare function extractEventFields(sessionContext: ISessionContext, selectClauses: SimpleAttributeOperand[], eventData: IEventData): Variant[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractEventFields = void 0;
4
+ const node_opcua_service_filter_1 = require("node-opcua-service-filter");
5
+ const node_opcua_service_filter_2 = require("node-opcua-service-filter");
6
+ //
7
+ /**
8
+ * @method extractEventFields
9
+ * extract a array of eventFields from a event node, matching the selectClauses
10
+ * @param selectClauses
11
+ * @param eventData : a pseudo Node that provides a browse Method and a readValue(nodeId)
12
+ */
13
+ function extractEventFields(sessionContext, selectClauses, eventData) {
14
+ const context = new node_opcua_service_filter_2.FilterContextOnAddressSpace(sessionContext, eventData);
15
+ return (0, node_opcua_service_filter_1.extractEventFieldsBase)(context, selectClauses);
16
+ }
17
+ exports.extractEventFields = extractEventFields;
18
+ //# sourceMappingURL=extract_event_fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract_event_fields.js","sourceRoot":"","sources":["../../source/filter/extract_event_fields.ts"],"names":[],"mappings":";;;AACA,yEAAmE;AACnE,yEAAwE;AAGxE,EAAE;AAEF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAC9B,cAA+B,EAC/B,aAAuC,EACvC,SAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,uDAA2B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC3E,OAAO,IAAA,kDAAsB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAPD,gDAOC"}
@@ -0,0 +1,10 @@
1
+ import { OPCUAServer } from "./opcua_server";
2
+ import { ServerEngine } from "./server_engine";
3
+ import { Subscription } from "./server_subscription";
4
+ /**
5
+ *
6
+ * @private
7
+ */
8
+ export declare function installSessionLogging(server: OPCUAServer): void;
9
+ export declare function installSubscriptionMonitoring(subscription: Subscription): void;
10
+ export declare function installSessionLoggingOnEngine(serverEngine: ServerEngine): void;
package/dist/helper.js ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installSessionLoggingOnEngine = exports.installSubscriptionMonitoring = exports.installSessionLogging = void 0;
4
+ const util = require("util");
5
+ const server_subscription_1 = require("./server_subscription");
6
+ const consolelog = (...args) => {
7
+ const d = new Date();
8
+ const t = d.toTimeString().split(" ")[0] + "." + d.getMilliseconds().toString().padStart(3, "0");
9
+ console.log.apply(console, [t, ...args]);
10
+ };
11
+ const doDebug = false;
12
+ /**
13
+ *
14
+ * @private
15
+ */
16
+ function installSessionLogging(server) {
17
+ installSessionLoggingOnEngine(server.engine);
18
+ }
19
+ exports.installSessionLogging = installSessionLogging;
20
+ const info = (subscription) => {
21
+ var _a;
22
+ return util.format(subscription.subscriptionId, server_subscription_1.SubscriptionState[subscription.state].padEnd(9), subscription.state, "kac=", subscription.currentKeepAliveCount.toString().padStart(3) +
23
+ "/" +
24
+ subscription.maxKeepAliveCount.toString().padStart(3), "ltc=", subscription.currentLifetimeCount.toString().padStart(3) +
25
+ "/" +
26
+ subscription.lifeTimeCount.toString().padStart(3), "prc=", (_a = subscription.publishEngine) === null || _a === void 0 ? void 0 : _a.pendingPublishRequestCount.toString().padStart(3), "pi=", subscription.publishingInterval);
27
+ };
28
+ function installSubscriptionMonitoring(subscription) {
29
+ consolelog("new_subscription", subscription.subscriptionId, info(subscription));
30
+ subscription.on("lifeTimeExpired", () => {
31
+ consolelog("lifeTimeExpired".padEnd(45), info(subscription));
32
+ });
33
+ if (true || doDebug) {
34
+ subscription.on("lifeTimeCounterChanged", (ltc) => {
35
+ consolelog("subscription lifeTimeCounterChanged".padEnd(45), info(subscription));
36
+ });
37
+ }
38
+ subscription.on("expired", () => {
39
+ consolelog("subscription expired".padEnd(45), info(subscription));
40
+ });
41
+ subscription.on("stateChanged", (state) => {
42
+ consolelog("subscription stateChanged".padEnd(45), info(subscription));
43
+ });
44
+ subscription.on("terminate", () => {
45
+ consolelog("subscription terminated".padEnd(45), info(subscription));
46
+ });
47
+ subscription.on("keepalive", () => {
48
+ consolelog("subscription keepalive".padEnd(45), info(subscription));
49
+ });
50
+ }
51
+ exports.installSubscriptionMonitoring = installSubscriptionMonitoring;
52
+ function installSessionLoggingOnEngine(serverEngine) {
53
+ function on_create_session(session) {
54
+ try {
55
+ session.on("activate_session", function () {
56
+ consolelog("activate_session");
57
+ });
58
+ session.on("statusChanged", (status) => {
59
+ consolelog("session status changed: ", status);
60
+ });
61
+ session.on("new_subscription", function (subscription) {
62
+ installSubscriptionMonitoring(subscription);
63
+ });
64
+ }
65
+ catch (err) {
66
+ consolelog(err.message);
67
+ }
68
+ }
69
+ serverEngine.on("create_session", on_create_session);
70
+ serverEngine.once("session_closed", function (session) {
71
+ consolelog("session is closed");
72
+ serverEngine.removeListener("create_session", on_create_session);
73
+ });
74
+ }
75
+ exports.installSessionLoggingOnEngine = installSessionLoggingOnEngine;
76
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../source/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface HistoryServerCapabilitiesOptions {
2
+ accessHistoryDataCapability?: boolean;
3
+ accessHistoryEventsCapability?: boolean;
4
+ maxReturnDataValues?: number;
5
+ maxReturnEventValues?: number;
6
+ insertDataCapability?: boolean;
7
+ replaceDataCapability?: boolean;
8
+ updateDataCapability?: boolean;
9
+ deleteRawCapability?: boolean;
10
+ deleteAtTimeCapability?: boolean;
11
+ insertEventCapability?: boolean;
12
+ replaceEventCapability?: boolean;
13
+ updateEventCapability?: boolean;
14
+ deleteEventCapability?: boolean;
15
+ insertAnnotationCapability?: boolean;
16
+ }
17
+ /**
18
+ */
19
+ export declare class HistoryServerCapabilities {
20
+ accessHistoryDataCapability: boolean;
21
+ accessHistoryEventsCapability: boolean;
22
+ maxReturnDataValues: number;
23
+ maxReturnEventValues: number;
24
+ insertDataCapability: boolean;
25
+ replaceDataCapability: boolean;
26
+ updateDataCapability: boolean;
27
+ deleteRawCapability: boolean;
28
+ deleteAtTimeCapability: boolean;
29
+ insertEventCapability: boolean;
30
+ replaceEventCapability: boolean;
31
+ updateEventCapability: boolean;
32
+ deleteEventCapability: boolean;
33
+ insertAnnotationCapability: boolean;
34
+ constructor(options?: HistoryServerCapabilitiesOptions);
35
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HistoryServerCapabilities = void 0;
4
+ /**
5
+ * @module node-opcua-server
6
+ */
7
+ const node_opcua_assert_1 = require("node-opcua-assert");
8
+ /**
9
+ */
10
+ class HistoryServerCapabilities {
11
+ constructor(options) {
12
+ options = options || {};
13
+ function coerceBool(value, defaultValue) {
14
+ if (undefined === value) {
15
+ return defaultValue;
16
+ }
17
+ (0, node_opcua_assert_1.assert)(typeof value === "boolean");
18
+ return value;
19
+ }
20
+ function coerceUInt32(value, defaultValue) {
21
+ if (undefined === value) {
22
+ return defaultValue;
23
+ }
24
+ (0, node_opcua_assert_1.assert)(typeof value === "number");
25
+ return value;
26
+ }
27
+ this.accessHistoryDataCapability = coerceBool(options.accessHistoryDataCapability, false);
28
+ this.accessHistoryEventsCapability = coerceBool(options.accessHistoryEventsCapability, false);
29
+ this.maxReturnDataValues = coerceUInt32(options.maxReturnDataValues, 0);
30
+ this.maxReturnEventValues = coerceUInt32(options.maxReturnEventValues, 0);
31
+ this.insertDataCapability = coerceBool(options.insertDataCapability, false);
32
+ this.replaceDataCapability = coerceBool(options.replaceDataCapability, false);
33
+ this.updateDataCapability = coerceBool(options.updateDataCapability, false);
34
+ this.deleteRawCapability = coerceBool(options.deleteRawCapability, false);
35
+ this.deleteAtTimeCapability = coerceBool(options.deleteAtTimeCapability, false);
36
+ this.insertEventCapability = coerceBool(options.insertEventCapability, false);
37
+ this.replaceEventCapability = coerceBool(options.replaceEventCapability, false);
38
+ this.updateEventCapability = coerceBool(options.updateEventCapability, false);
39
+ this.deleteEventCapability = coerceBool(options.deleteEventCapability, false);
40
+ this.insertAnnotationCapability = coerceBool(options.insertAnnotationCapability, false);
41
+ }
42
+ }
43
+ exports.HistoryServerCapabilities = HistoryServerCapabilities;
44
+ //# sourceMappingURL=history_server_capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history_server_capabilities.js","sourceRoot":"","sources":["../source/history_server_capabilities.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,yDAA2C;AAkB3C;GACG;AACH,MAAa,yBAAyB;IAgBlC,YAAY,OAA0C;QAClD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAExB,SAAS,UAAU,CAAC,KAA0B,EAAE,YAAqB;YACjE,IAAI,SAAS,KAAK,KAAK,EAAE;gBACrB,OAAO,YAAY,CAAC;aACvB;YACD,IAAA,0BAAM,EAAC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC;YACnC,OAAO,KAAgB,CAAC;QAC5B,CAAC;QAED,SAAS,YAAY,CAAC,KAAyB,EAAE,YAAoB;YACjE,IAAI,SAAS,KAAK,KAAK,EAAE;gBACrB,OAAO,YAAY,CAAC;aACvB;YACD,IAAA,0BAAM,EAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAC1F,IAAI,CAAC,6BAA6B,GAAG,UAAU,CAAC,OAAO,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QAC9F,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;CACJ;AAlDD,8DAkDC"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ import { AsymmetricAlgorithmSecurityHeader, MessageSecurityMode, SecurityPolicy } from "node-opcua-secure-channel";
3
+ export interface IChannelData {
4
+ channelId: number | null;
5
+ clientCertificate: Buffer | null;
6
+ clientNonce: Buffer | null;
7
+ clientSecurityHeader: any;
8
+ securityHeader: AsymmetricAlgorithmSecurityHeader | null;
9
+ securityMode: MessageSecurityMode;
10
+ securityPolicy: SecurityPolicy;
11
+ timeout: number;
12
+ transactionsCount: number;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i_channel_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i_channel_data.js","sourceRoot":"","sources":["../source/i_channel_data.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * @module node-opcua-server
4
+ */
5
+ import { EventEmitter } from "events";
6
+ import { ErrorCallback } from "node-opcua-status-code";
7
+ export interface IRegisterServerManager extends EventEmitter {
8
+ discoveryServerEndpointUrl: string;
9
+ start(callback: ErrorCallback): void;
10
+ stop(callback: ErrorCallback): void;
11
+ dispose(): void;
12
+ on(eventName: "serverRegistrationPending", eventHandler: () => void): this;
13
+ on(eventName: "serverRegistered", eventHandler: () => void): this;
14
+ on(eventName: "serverRegistrationRenewed", eventHandler: () => void): this;
15
+ on(eventName: "serverUnregistered", eventHandler: () => void): this;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i_register_server_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i_register_server_manager.js","sourceRoot":"","sources":["../source/i_register_server_manager.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { PublishResponseOptions, StatusChangeNotification } from "node-opcua-types";
2
+ import { Subscription } from "./server_subscription";
3
+ export interface INotifMsg {
4
+ subscriptionId: number;
5
+ sequenceNumber: number;
6
+ notificationData: any;
7
+ moreNotifications: boolean;
8
+ }
9
+ export interface IServerSidePublishEngine {
10
+ on_close_subscription(subscription: IClosedOrTransferredSubscription): void;
11
+ readonly pendingPublishRequestCount: number;
12
+ _on_tick(): void;
13
+ send_keep_alive_response(subscriptionId: number, future_sequence_number: number): boolean;
14
+ _send_response(subscription: Subscription, options: PublishResponseOptions): void;
15
+ }
16
+ export interface IClosedOrTransferredSubscription {
17
+ readonly hasPendingNotifications: boolean;
18
+ dispose(): void;
19
+ readonly id: number;
20
+ _publish_pending_notifications(): void;
21
+ }
22
+ export declare class TransferredSubscription implements IClosedOrTransferredSubscription {
23
+ id: number;
24
+ publishEngine: any;
25
+ _pending_notification?: StatusChangeNotification;
26
+ private _sequence_number_generator;
27
+ constructor(options: {
28
+ id: number;
29
+ generator: any;
30
+ publishEngine: any;
31
+ });
32
+ get hasPendingNotifications(): boolean;
33
+ dispose(): void;
34
+ _publish_pending_notifications(): void;
35
+ private _get_next_sequence_number;
36
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferredSubscription = void 0;
4
+ const node_opcua_types_1 = require("node-opcua-types");
5
+ const node_opcua_assert_1 = require("node-opcua-assert");
6
+ class TransferredSubscription {
7
+ constructor(options) {
8
+ this.id = options.id;
9
+ this._sequence_number_generator = options.generator;
10
+ this.publishEngine = options.publishEngine;
11
+ }
12
+ get hasPendingNotifications() {
13
+ return !!this._pending_notification;
14
+ }
15
+ dispose() {
16
+ this._pending_notification = undefined;
17
+ this.publishEngine = null;
18
+ }
19
+ _publish_pending_notifications() {
20
+ (0, node_opcua_assert_1.default)(this._pending_notification);
21
+ const notificationMessage = this._pending_notification;
22
+ this._pending_notification = undefined;
23
+ const moreNotifications = false;
24
+ const subscriptionId = this.id;
25
+ const response = new node_opcua_types_1.PublishResponse({
26
+ moreNotifications,
27
+ notificationMessage: {
28
+ notificationData: [notificationMessage],
29
+ publishTime: new Date(),
30
+ sequenceNumber: 0xffffffff
31
+ },
32
+ subscriptionId
33
+ });
34
+ // apply sequence number and store in sent_notifications queue
35
+ (0, node_opcua_assert_1.default)(response.notificationMessage.sequenceNumber === 0xffffffff);
36
+ response.notificationMessage.sequenceNumber = this._get_next_sequence_number();
37
+ // xxx this._sent_notifications.push(response.notificationMessage);
38
+ // get available sequence number;
39
+ const availableSequenceNumbers = [response.notificationMessage.sequenceNumber];
40
+ (0, node_opcua_assert_1.default)(!response.notificationMessage ||
41
+ availableSequenceNumbers[availableSequenceNumbers.length - 1] === response.notificationMessage.sequenceNumber);
42
+ response.availableSequenceNumbers = availableSequenceNumbers;
43
+ this.publishEngine._send_response(this, response);
44
+ }
45
+ _get_next_sequence_number() {
46
+ return this._sequence_number_generator ? this._sequence_number_generator.next() : 0;
47
+ }
48
+ }
49
+ exports.TransferredSubscription = TransferredSubscription;
50
+ //# sourceMappingURL=i_server_side_publish_engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i_server_side_publish_engine.js","sourceRoot":"","sources":["../source/i_server_side_publish_engine.ts"],"names":[],"mappings":";;;AAAA,uDAAqG;AACrG,yDAAuC;AAwBvC,MAAa,uBAAuB;IAKhC,YAAY,OAA2D;QACnE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC/C,CAAC;IACD,IAAW,uBAAuB;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACxC,CAAC;IACD,OAAO;QACH,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IACD,8BAA8B;QAC1B,IAAA,2BAAM,EAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAsB,CAAC;QACxD,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC;QAChC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,IAAI,kCAAe,CAAC;YACjC,iBAAiB;YACjB,mBAAmB,EAAE;gBACjB,gBAAgB,EAAE,CAAC,mBAAmB,CAAC;gBACvC,WAAW,EAAE,IAAI,IAAI,EAAE;gBACvB,cAAc,EAAE,UAAU;aAC7B;YACD,cAAc;SACjB,CAAC,CAAC;QAEH,8DAA8D;QAC9D,IAAA,2BAAM,EAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,KAAK,UAAU,CAAC,CAAC;QACnE,QAAQ,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/E,sEAAsE;QACtE,iCAAiC;QACjC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC/E,IAAA,2BAAM,EACF,CAAC,QAAQ,CAAC,mBAAmB;YACzB,wBAAwB,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,mBAAmB,CAAC,cAAc,CACpH,CAAC;QACF,QAAQ,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IACO,yBAAyB;QAC7B,OAAO,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;CACJ;AAlDD,0DAkDC"}
@@ -0,0 +1,11 @@
1
+ export interface ISocketData {
2
+ bytesRead: number;
3
+ bytesWritten: number;
4
+ localAddress?: string;
5
+ localPort?: number;
6
+ remoteAddress?: string;
7
+ remoteFamily?: string;
8
+ remotePort?: number;
9
+ timestamp: Date;
10
+ reason: string;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i_socket_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i_socket_data.js","sourceRoot":"","sources":["../source/i_socket_data.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module node-opcua-server
3
+ */
4
+ export * from "./base_server";
5
+ export * from "./server_end_point";
6
+ export * from "./register_server_manager";
7
+ export * from "./register_server_manager_mdns_only";
8
+ export * from "./server_publish_engine";
9
+ export * from "./server_subscription";
10
+ export * from "./server_session";
11
+ export * from "./server_capabilities";
12
+ export * from "./server_engine";
13
+ export * from "./opcua_server";
14
+ export * from "./monitored_item";
15
+ export * from "./user_manager";
16
+ export * from "./helper";
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * @module node-opcua-server
19
+ */
20
+ __exportStar(require("./base_server"), exports);
21
+ __exportStar(require("./server_end_point"), exports);
22
+ __exportStar(require("./register_server_manager"), exports);
23
+ __exportStar(require("./register_server_manager_mdns_only"), exports);
24
+ __exportStar(require("./server_publish_engine"), exports);
25
+ __exportStar(require("./server_subscription"), exports);
26
+ __exportStar(require("./server_session"), exports);
27
+ __exportStar(require("./server_capabilities"), exports);
28
+ __exportStar(require("./server_engine"), exports);
29
+ __exportStar(require("./opcua_server"), exports);
30
+ __exportStar(require("./monitored_item"), exports);
31
+ __exportStar(require("./user_manager"), exports);
32
+ __exportStar(require("./helper"), exports);
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,gDAA8B;AAC9B,qDAAmC;AACnC,4DAA0C;AAC1C,sEAAoD;AACpD,0DAAwC;AACxC,wDAAsC;AACtC,mDAAiC;AACjC,wDAAsC;AACtC,kDAAgC;AAChC,iDAA+B;AAC/B,mDAAiC;AACjC,iDAA+B;AAC/B,2CAAyB"}