node-opcua-address-space 2.120.0 → 2.121.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 (54) hide show
  1. package/dist/source/continuation_points/continuation_point_manager.d.ts +9 -2
  2. package/dist/source/continuation_points/continuation_point_manager.js +42 -14
  3. package/dist/source/continuation_points/continuation_point_manager.js.map +1 -1
  4. package/dist/source/helpers/argument_list.js +8 -3
  5. package/dist/source/helpers/argument_list.js.map +1 -1
  6. package/dist/source/helpers/call_helpers.js +2 -2
  7. package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +2 -0
  8. package/dist/source/loader/load_nodeset2.js +4 -3
  9. package/dist/source/loader/load_nodeset2.js.map +1 -1
  10. package/dist/source/pseudo_session.js +1 -6
  11. package/dist/source/pseudo_session.js.map +1 -1
  12. package/dist/src/_mandatory_child_or_requested_optional_filter.js +2 -1
  13. package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +1 -1
  14. package/dist/src/address_space.d.ts +3 -1
  15. package/dist/src/address_space.js +5 -2
  16. package/dist/src/address_space.js.map +1 -1
  17. package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +2 -0
  18. package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
  19. package/dist/src/base_node_impl.d.ts +2 -0
  20. package/dist/src/base_node_impl.js +7 -3
  21. package/dist/src/base_node_impl.js.map +1 -1
  22. package/dist/src/base_node_private.js +4 -1
  23. package/dist/src/base_node_private.js.map +1 -1
  24. package/dist/src/historical_access/address_space_historical_data_node.js +2 -2
  25. package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
  26. package/dist/src/namespace_impl.js +1 -1
  27. package/dist/src/namespace_impl.js.map +1 -1
  28. package/dist/src/ua_method_impl.js +1 -1
  29. package/dist/src/ua_method_impl.js.map +1 -1
  30. package/dist/src/ua_object_impl.js +9 -0
  31. package/dist/src/ua_object_impl.js.map +1 -1
  32. package/dist/src/ua_reference_type_impl.d.ts +1 -1
  33. package/dist/src/ua_variable_impl.js +52 -27
  34. package/dist/src/ua_variable_impl.js.map +1 -1
  35. package/dist/tsconfig_common.tsbuildinfo +1 -1
  36. package/distHelpers/boiler_system.js +18 -8
  37. package/distHelpers/boiler_system.js.map +1 -1
  38. package/package.json +36 -36
  39. package/source/continuation_points/continuation_point_manager.ts +49 -21
  40. package/source/helpers/argument_list.ts +26 -21
  41. package/source/helpers/call_helpers.ts +2 -2
  42. package/source/interfaces/alarms_and_conditions/ua_condition_ex.ts +4 -4
  43. package/source/loader/load_nodeset2.ts +5 -3
  44. package/source/pseudo_session.ts +2 -6
  45. package/src/_mandatory_child_or_requested_optional_filter.ts +2 -2
  46. package/src/address_space.ts +7 -4
  47. package/src/alarms_and_conditions/ua_condition_impl.ts +2 -3
  48. package/src/base_node_impl.ts +8 -5
  49. package/src/base_node_private.ts +5 -2
  50. package/src/historical_access/address_space_historical_data_node.ts +2 -2
  51. package/src/namespace_impl.ts +1 -1
  52. package/src/ua_method_impl.ts +1 -1
  53. package/src/ua_object_impl.ts +12 -0
  54. package/src/ua_variable_impl.ts +66 -31
@@ -9,8 +9,9 @@ const node_opcua_assert_1 = require("node-opcua-assert");
9
9
  const node_opcua_data_model_1 = require("node-opcua-data-model");
10
10
  const node_opcua_status_code_1 = require("node-opcua-status-code");
11
11
  const node_opcua_utils_1 = require("node-opcua-utils");
12
+ const node_opcua_address_space_base_1 = require("node-opcua-address-space-base");
12
13
  const __1 = require("..");
13
- function MygetExecutableFlag(method, toState, methodName) {
14
+ function myGetExecutableFlag(method, toState, methodName) {
14
15
  const stateMachineW = (0, __1.promoteToStateMachine)(method.parent);
15
16
  return stateMachineW.isValidTransition(toState);
16
17
  }
@@ -33,7 +34,7 @@ function implementProgramStateMachine(programStateMachine) {
33
34
  (0, node_opcua_assert_1.assert)(method.nodeClass === node_opcua_data_model_1.NodeClass.Method);
34
35
  method._getExecutableFlag = function ( /* sessionContext: SessionContext */) {
35
36
  // must use a function here to capture 'this'
36
- return MygetExecutableFlag(this, toState, methodName);
37
+ return myGetExecutableFlag(this, toState, methodName);
37
38
  };
38
39
  method.bindMethod(function (inputArguments, context, callback) {
39
40
  const stateMachineW = this.parent;
@@ -241,8 +242,10 @@ function createBoilerType(namespace) {
241
242
  browseName: "FlowTransmitter",
242
243
  componentOf: boilerInputPipeType,
243
244
  modellingRule: "Mandatory",
244
- notifierOf: boilerInputPipeType
245
+ notifierOf: boilerInputPipeType,
246
+ eventNotifier: node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents
245
247
  });
248
+ (0, node_opcua_assert_1.assert)(ftx1.eventNotifier === node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents);
246
249
  (0, node_opcua_assert_1.assert)(ftx1.output.browseName.toString() === `${namespace.index}:Output`);
247
250
  const valve1 = valveType.instantiate({
248
251
  browseName: "Valve",
@@ -260,7 +263,8 @@ function createBoilerType(namespace) {
260
263
  browseName: "FlowTransmitter",
261
264
  componentOf: boilerOutputPipeType,
262
265
  modellingRule: "Mandatory",
263
- notifierOf: boilerOutputPipeType
266
+ notifierOf: boilerOutputPipeType,
267
+ eventNotifier: node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents
264
268
  });
265
269
  ftx2.getComponentByName("Output").browseName.toString();
266
270
  // --------------------------------)------------------------------------------------
@@ -274,8 +278,10 @@ function createBoilerType(namespace) {
274
278
  browseName: "LevelIndicator",
275
279
  componentOf: boilerDrumType,
276
280
  modellingRule: "Mandatory",
277
- notifierOf: boilerDrumType
281
+ notifierOf: boilerDrumType,
282
+ eventNotifier: node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents
278
283
  });
284
+ (0, node_opcua_assert_1.assert)(levelIndicator.eventNotifier === node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents);
279
285
  const programFiniteStateMachineType = addressSpace.findObjectType("ProgramStateMachineType");
280
286
  // --------------------------------------------------------
281
287
  // define boiler State Machine
@@ -332,21 +338,25 @@ function createBoilerType(namespace) {
332
338
  browseName: "InputPipe",
333
339
  componentOf: boilerType,
334
340
  modellingRule: "Mandatory",
335
- notifierOf: boilerType
341
+ notifierOf: boilerType,
342
+ eventNotifier: node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents
336
343
  });
344
+ (0, node_opcua_assert_1.assert)(inputPipe.eventNotifier === node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents);
337
345
  // BoilerType.BoilerDrum (BoilerDrumType)
338
346
  const boilerDrum = boilerDrumType.instantiate({
339
347
  browseName: "BoilerDrum",
340
348
  componentOf: boilerType,
341
349
  modellingRule: "Mandatory",
342
- notifierOf: boilerType
350
+ notifierOf: boilerType,
351
+ eventNotifier: node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents
343
352
  });
344
353
  // BoilerType.OutputPipe (BoilerOutputPipeType)
345
354
  const outputPipe = boilerOutputPipeType.instantiate({
346
355
  browseName: "OutputPipe",
347
356
  componentOf: boilerType,
348
357
  modellingRule: "Mandatory",
349
- notifierOf: boilerType
358
+ notifierOf: boilerType,
359
+ eventNotifier: node_opcua_address_space_base_1.EventNotifierFlags.SubscribeToEvents
350
360
  });
351
361
  // BoilerType.Simulation (BoilerStateMachineType)
352
362
  const simulation = boilerStateMachineType.instantiate({
@@ -1 +1 @@
1
- {"version":3,"file":"boiler_system.js","sourceRoot":"","sources":["../test_helpers/boiler_system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"boiler_system.js","sourceRoot":"","sources":["../test_helpers/boiler_system.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC;;GAEG;AACH,yDAA2C;AAC3C,iEAAkD;AAClD,mEAAqD;AAErD,uDAAoD;AAGpD,iFAAmE;AACnE,0BAcY;AA4HZ,SAAS,mBAAmB,CAAC,MAAgB,EAAE,OAAe,EAAE,UAAkB;IAC9E,MAAM,aAAa,GAAG,IAAA,yBAAqB,EAAC,MAAM,CAAC,MAAO,CAAC,CAAC;IAC5D,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,4BAA4B,CAAC,mBAA6B;IAC/D,SAAS,aAAa,CAAC,UAAkB,EAAE,OAAe;QACtD,IAAI,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,gGAAgG;YAChG,IAAI,aAAa,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACtF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,aAAa,GAAG,mBAAmB,CAAC,iBAAkB,CAAC,YAAa,CAAC,eAAe,CAAC,UAAU,CAAE,CAAC;YACtG,CAAC;YACD,aAAa,CAAC,KAAK,CAAC;gBAChB,SAAS,EAAE,mBAAmB,CAAC,SAAS;gBACxC,WAAW,EAAE,mBAAmB;aACnC,CAAC,CAAC;YACH,MAAM,GAAG,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAE,CAAC;YAC1D,IAAA,0BAAM,EAAC,MAAM,KAAK,IAAI,EAAE,wDAAwD,CAAC,CAAC;QACtF,CAAC;QACD,IAAA,0BAAM,EAAC,MAAM,CAAC,SAAS,KAAK,iCAAS,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,CAAC,kBAAkB,GAAG,WAAU,oCAAoC;YACtE,8CAA8C;YAC9C,OAAO,mBAAmB,CAAC,IAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,UAEd,cAA6B,EAC7B,OAAwB,EACxB,QAAgF;YAEhF,MAAM,aAAa,GAAG,IAAI,CAAC,MAA6B,CAAC;YACzD,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,EAAE;gBACX,eAAe,EAAE,EAAE;gBACnB,UAAU,EAAE,oCAAW,CAAC,IAAI;aAC/B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAA,0BAAM,EACF,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,IAAI,EACxD,SAAS,GAAG,UAAU,GAAG,kEAAkE,CAC9F,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,OAAiB,EAAE,aAAuC,EAAE,UAAoB;IACjG,IAAA,0BAAM,EAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;IAC9C,IAAA,0BAAM,EAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;IACpD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAClE,IAAA,0BAAM,EAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAC3B,aAAa,GAAG,KAAK,CAAC,CAAC,CAAoB,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACjD,uBAAuB;IACvB,IAAI,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC,cAAc,CAAC,YAAY,CAAe,CAAC;IAChE,CAAC;IACD,2DAA2D;IAC3D,iBAAiB;IACjB,2DAA2D;IAC3D,wDAAwD;IAExD,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACtC,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,2BAA2B;KACzC,CAAoB,CAAC;IAEtB,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACzC,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,wEAAwE;QACrF,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,MAAM;KACpB,CAAuB,CAAC;IAEzB,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACxC,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,YAAY;QACzB,SAAS,EAAE,2BAA2B;KACzC,CAAsB,CAAC;IAExB,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,CAAE,CAAC,CAAC;IAClE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,2BAA2B,CAAE,CAAC,CAAC;IACjF,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,CAAE,CAAC,CAAC;IACrE,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,2BAA2B,CAAE,CAAC,CAAC;IACpF,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAE,CAAC,CAAC;IAElF,MAAM,yBAAyB,GAAG,YAAY,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;IAE9F,2DAA2D;IAC3D,aAAa;IACb,2DAA2D;IAC3D,MAAM,qBAAqB,GAAG,SAAS,CAAC,YAAY,CAAC;QACjD,UAAU,EAAE,uBAAuB;QACnC,SAAS,EAAE,qBAAqB;KACnC,CAA0B,CAAC;IAE5B,2DAA2D;IAC3D,uBAAuB;IACvB,2DAA2D;IAC3D,MAAM,oBAAoB,GAAG,SAAS,CAAC,aAAa,CAAC;QACjD,UAAU,EAAE,sBAAsB;QAClC,WAAW,EAAE,uCAAuC;KACvD,CAAyB,CAAC;IAE3B,MAAM,MAAM,GAAe,SAAS,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,uEAAuE;QACpF,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAe,SAAS,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAe,SAAS,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAe,SAAS,CAAC,WAAW,CAAC;QACjD,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAe,SAAS,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,eAAe;QACzB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,oBAAoB;IACpB,2DAA2D;IAC3D,MAAM,iBAAiB,GAAG,SAAS,CAAC,aAAa,CAAC;QAC9C,UAAU,EAAE,mBAAmB;KAClC,CAAC,CAAC;IACH,SAAS,CAAC,iBAAiB,CAAC;QACxB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,QAAQ;QAClB,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;QAC/C,aAAa,EAAE,WAAW;KAC7B,CAAC,CAAC;IAEH,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;IAE7C,iBAAiB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAA,0BAAM,EAAC,iBAAiB,CAAC,kBAAkB,CAAC,QAAQ,CAAE,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC;IAEtF,2DAA2D;IAC3D,iDAAiD;IACjD,2DAA2D;IAC3D,MAAM,qBAAqB,GAAG,SAAS,CAAC,aAAa,CAAC;QAClD,UAAU,EAAE,uBAAuB;KACtC,CAAC,CAAC;IACH,SAAS,CAAC,WAAW,CAAC;QAClB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,SAAS,CAAC,WAAW,CAAC;QAClB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,SAAS,CAAC,WAAW,CAAC;QAClB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IAEH,mFAAmF;IACnF,yEAAyE;IACzE,mFAAmF;IAEnF,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,qBAAqB;KACnC,CAAC,CAAC;IAEH,mFAAmF;IACnF,0EAA0E;IAC1E,mFAAmF;IACnF,MAAM,mBAAmB,GAAG,SAAS,CAAC,aAAa,CAAC;QAChD,UAAU,EAAE,qBAAqB;QACjC,SAAS,EAAE,qBAAqB;KACnC,CAAC,CAAC;IAEH,mFAAmF;IACnF,+CAA+C;IAC/C,mFAAmF;IACnF,MAAM,mBAAmB,GAAG,SAAS,CAAC,aAAa,CAAC;QAChD,UAAU,EAAE,qBAAqB;QACjC,SAAS,EAAE,iBAAiB;KAC/B,CAAC,CAAC;IAEH,mFAAmF;IACnF,8CAA8C;IAC9C,mFAAmF;IACnF,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC;QAC/C,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,iBAAiB;KAC/B,CAAC,CAAC;IAEH,mFAAmF;IACnF,sBAAsB;IACtB,mFAAmF;IACnF,MAAM,mBAAmB,GAAG,SAAS,CAAC,aAAa,CAAC;QAChD,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,SAAS,CAAC,iBAAiB,CAAC;QACxB,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,QAAQ;QAClB,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;QAC/C,aAAa,EAAE,WAAW;KAC7B,CAAC,CAAC;IAEH,mFAAmF;IACnF,uCAAuC;IACvC,mFAAmF;IACnF,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC;QACtC,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,mBAAmB;KACjC,CAAC,CAAC;IAEH,mFAAmF;IACnF,wCAAwC;IACxC,mFAAmF;IACnF,MAAM,mBAAmB,GAAG,SAAS,CAAC,aAAa,CAAC;QAChD,UAAU,EAAE,qBAAqB;QACjC,SAAS,EAAE,YAAY;KAC1B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,mBAAmB;QAC/B,aAAa,EAAE,kDAAkB,CAAC,iBAAiB;KACtD,CAAoB,CAAC;IACtB,IAAA,0BAAM,EAAC,IAAI,CAAC,aAAa,KAAK,kDAAkB,CAAC,iBAAiB,CAAC,CAAC;IAEpE,IAAA,0BAAM,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;QACjC,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,WAAW;KAC7B,CAAU,CAAC;IAEZ,mFAAmF;IACnF,yCAAyC;IACzC,mFAAmF;IAEnF,MAAM,oBAAoB,GAAG,SAAS,CAAC,aAAa,CAAC;QACjD,UAAU,EAAE,sBAAsB;QAClC,SAAS,EAAE,YAAY;KAC1B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,CAAC;QACzC,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,oBAAoB;QACjC,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,kDAAkB,CAAC,iBAAiB;KACtD,CAAoB,CAAC;IAEtB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAEzD,oFAAoF;IACpF,mCAAmC;IACnC,mFAAmF;IACnF,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC;QAC3C,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,YAAY;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,cAAc;QAC3B,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,cAAc;QAC1B,aAAa,EAAE,kDAAkB,CAAC,iBAAiB;KACtD,CAAmB,CAAC;IACrB,IAAA,0BAAM,EAAC,cAAc,CAAC,aAAa,KAAK,kDAAkB,CAAC,iBAAiB,CAAC,CAAC;IAE9E,MAAM,6BAA6B,GAAG,YAAY,CAAC,cAAc,CAAC,yBAAyB,CAAE,CAAC;IAE9F,2DAA2D;IAC3D,8BAA8B;IAC9B,2DAA2D;IAC3D,MAAM,sBAAsB,GAAG,SAAS,CAAC,aAAa,CAAC;QACnD,UAAU,EAAE,wBAAwB;QACpC,mBAAmB,EAAE,4BAA4B;QACjD,SAAS,EAAE,6BAA8B;KAC5C,CAA2B,CAAC;IAE7B,0GAA0G;IAE1G,SAAS,SAAS,CAAC,QAAsB,EAAE,UAAwB,EAAE,UAAkB;QACnF,IAAA,0BAAM,EAAC,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAE,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YACnB,SAAS;YACT,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,WAAW;SAC7B,CAAC,CAAC;QACH,IAAA,0BAAM,EAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,IAAA,0BAAM,EAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAE,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC;IAClF,CAAC;IAED,SAAS,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACzE,SAAS,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC1E,SAAS,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC1E,SAAS,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IAC5E,SAAS,CAAC,6BAA6B,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAE3E,mFAAmF;IACnF,aAAa;IACb,mFAAmF;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QACvC,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,GAAG;KACrB,CAAe,CAAC;IAEjB,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,WAAW,CAAC;QACtD,UAAU,EAAE,kBAAkB;QAC9B,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,WAAW;KAC7B,CAAqB,CAAC;IAEvB,6CAA6C;IAC7C,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,gBAAgB;QAC5B,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,WAAW;KAC7B,CAAmB,CAAC;IAErB,mDAAmD;IACnD,MAAM,eAAe,GAAG,mBAAmB,CAAC,WAAW,CAAC;QACpD,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,WAAW;KAC7B,CAAoB,CAAC;IAEtB,kDAAkD;IAClD,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC;QAC9C,UAAU,EAAE,WAAW;QACvB,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,kDAAkB,CAAC,iBAAiB;KACtD,CAAoB,CAAC;IACtB,IAAA,0BAAM,EAAC,SAAS,CAAC,aAAa,KAAK,kDAAkB,CAAC,iBAAiB,CAAC,CAAC;IAEzE,yCAAyC;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC;QAC1C,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,kDAAkB,CAAC,iBAAiB;KACtD,CAAe,CAAC;IAEjB,+CAA+C;IAC/C,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC;QAChD,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,kDAAkB,CAAC,iBAAiB;KACtD,CAAqB,CAAC;IAEvB,iDAAiD;IACjD,MAAM,UAAU,GAAG,sBAAsB,CAAC,WAAW,CAAC;QAClD,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,UAAU;QACzB,aAAa,EAAE,WAAW;KAC7B,CAAuB,CAAC;IAEzB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAE/C,IAAA,0BAAM,EAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAA,0BAAM,EAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACpD,IAAA,0BAAM,EAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAE9C,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1G,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvG,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE9F,4FAA4F;IAC5F,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAE3G,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAExG,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEjG,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAElG,OAAO,UAAU,CAAC;AACtB,CAAC;AAjXD,4CAiXC;AAED,SAAgB,UAAU,CACtB,YAA0B,EAC1B,OAGC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;IAEjD,IAAA,0BAAM,EAAC,OAAO,CAAC,CAAC;IAChB,IAAI,UAA+B,CAAC;IACpC,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAEpD,uBAAuB;IACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAE,CAAC;IACzD,CAAC;IACD,yBAAyB;IACzB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;QACnC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO;KAC/C,CAAW,CAAC;IAEb,IAAA,yBAAqB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC9C,MAAM,UAAU,GAAG,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC;IAC/D,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC;AACnB,CAAC;AA/BD,gCA+BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-address-space",
3
- "version": "2.120.0",
3
+ "version": "2.121.0",
4
4
  "description": "pure nodejs OPCUA SDK - module address-space",
5
5
  "main": "./dist/src/index_current.js",
6
6
  "types": "./dist/source/index.d.ts",
@@ -17,54 +17,54 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@types/lodash": "4.14.202",
20
- "@types/semver": "^7.5.6",
20
+ "@types/semver": "^7.5.8",
21
21
  "async": "^3.2.5",
22
22
  "chalk": "4.1.2",
23
23
  "dequeue": "^1.0.5",
24
24
  "lodash": "4.17.21",
25
- "node-opcua-address-space-base": "2.120.0",
25
+ "node-opcua-address-space-base": "2.121.0",
26
26
  "node-opcua-assert": "2.120.0",
27
- "node-opcua-basic-types": "2.120.0",
27
+ "node-opcua-basic-types": "2.121.0",
28
28
  "node-opcua-binary-stream": "2.120.0",
29
- "node-opcua-client-dynamic-extension-object": "2.120.0",
30
- "node-opcua-constants": "2.120.0",
31
- "node-opcua-crypto": "4.7.0",
32
- "node-opcua-data-access": "2.120.0",
33
- "node-opcua-data-model": "2.120.0",
34
- "node-opcua-data-value": "2.120.0",
35
- "node-opcua-date-time": "2.120.0",
36
- "node-opcua-debug": "2.120.0",
29
+ "node-opcua-client-dynamic-extension-object": "2.121.0",
30
+ "node-opcua-constants": "2.121.0",
31
+ "node-opcua-crypto": "4.8.0",
32
+ "node-opcua-data-access": "2.121.0",
33
+ "node-opcua-data-model": "2.121.0",
34
+ "node-opcua-data-value": "2.121.0",
35
+ "node-opcua-date-time": "2.121.0",
36
+ "node-opcua-debug": "2.121.0",
37
37
  "node-opcua-enum": "2.120.0",
38
- "node-opcua-extension-object": "2.120.0",
39
- "node-opcua-factory": "2.120.0",
40
- "node-opcua-nodeid": "2.120.0",
41
- "node-opcua-nodeset-ua": "2.120.0",
42
- "node-opcua-numeric-range": "2.120.0",
43
- "node-opcua-object-registry": "2.120.0",
44
- "node-opcua-pseudo-session": "2.120.0",
45
- "node-opcua-service-browse": "2.120.0",
46
- "node-opcua-service-call": "2.120.0",
47
- "node-opcua-service-history": "2.120.0",
48
- "node-opcua-service-translate-browse-path": "2.120.0",
49
- "node-opcua-service-write": "2.120.0",
50
- "node-opcua-status-code": "2.120.0",
51
- "node-opcua-types": "2.120.0",
38
+ "node-opcua-extension-object": "2.121.0",
39
+ "node-opcua-factory": "2.121.0",
40
+ "node-opcua-nodeid": "2.121.0",
41
+ "node-opcua-nodeset-ua": "2.121.0",
42
+ "node-opcua-numeric-range": "2.121.0",
43
+ "node-opcua-object-registry": "2.121.0",
44
+ "node-opcua-pseudo-session": "2.121.0",
45
+ "node-opcua-service-browse": "2.121.0",
46
+ "node-opcua-service-call": "2.121.0",
47
+ "node-opcua-service-history": "2.121.0",
48
+ "node-opcua-service-translate-browse-path": "2.121.0",
49
+ "node-opcua-service-write": "2.121.0",
50
+ "node-opcua-status-code": "2.121.0",
51
+ "node-opcua-types": "2.121.0",
52
52
  "node-opcua-utils": "2.120.0",
53
- "node-opcua-variant": "2.120.0",
54
- "node-opcua-xml2json": "2.120.0",
55
- "semver": "^7.5.4",
53
+ "node-opcua-variant": "2.121.0",
54
+ "node-opcua-xml2json": "2.121.0",
55
+ "semver": "^7.6.0",
56
56
  "set-prototype-of": "^1.0.0",
57
57
  "thenify": "^3.3.1",
58
58
  "xml-writer": "^1.7.0"
59
59
  },
60
60
  "devDependencies": {
61
- "mocha": "^10.2.0",
61
+ "mocha": "^10.3.0",
62
62
  "node-opcua-benchmarker": "2.120.0",
63
- "node-opcua-leak-detector": "2.120.0",
64
- "node-opcua-nodesets": "2.120.0",
65
- "node-opcua-packet-analyzer": "2.120.0",
66
- "node-opcua-service-filter": "2.120.0",
67
- "node-opcua-test-fixtures": "2.120.0",
63
+ "node-opcua-leak-detector": "2.121.0",
64
+ "node-opcua-nodesets": "2.121.0",
65
+ "node-opcua-packet-analyzer": "2.121.0",
66
+ "node-opcua-service-filter": "2.121.0",
67
+ "node-opcua-test-fixtures": "2.121.0",
68
68
  "should": "^13.2.3",
69
69
  "sinon": "^17.0.1",
70
70
  "source-map-support": "^0.5.21"
@@ -84,7 +84,7 @@
84
84
  "internet of things"
85
85
  ],
86
86
  "homepage": "http://node-opcua.github.io/",
87
- "gitHead": "f4ae243bb61ba7af4c019a3cfe76dfc0f6427983",
87
+ "gitHead": "ba93a78eda343ecc0cc20476837347f6dfa259e0",
88
88
  "files": [
89
89
  "dist",
90
90
  "distHelpers",
@@ -35,9 +35,9 @@ interface Data {
35
35
  * - The Client specifies the maximum number of results per operation in the request message.
36
36
  * - A Server shall not return more than this number of results but it may return fewer results.
37
37
  * - The Server allocates a ContinuationPoint if there are more results to return.
38
- * - Servers shall support at least one ContinuationPoint per Session.
38
+ * - Servers shall support at least one ContinuationPoint per Session.
39
39
  * - Servers specify a maximum number of ContinuationPoints per Session in the ServerCapabilities Object defined in OPC 10000-5.
40
- * - ContinuationPoints remain active until
40
+ * - ContinuationPoints remain active until
41
41
  * a/ the Client retrieves the remaining results,
42
42
  * b/ or, the Client releases the ContinuationPoint
43
43
  * c/ or the Session is closed.
@@ -45,9 +45,9 @@ interface Data {
45
45
  * from this Session.
46
46
  * - The Server returns a Bad_ContinuationPointInvalid error if a Client tries to use a ContinuationPoint that has been released.
47
47
  * - A Client can avoid this situation by completing paused operations before starting new operations.
48
- * For Session-less Service invocations, the ContinuationPoints are shared across all Session-less Service invocations from all Clients.
48
+ * For Session-less Service invocations, the ContinuationPoints are shared across all Session-less Service invocations from all Clients.
49
49
  * The Server shall support at least the maximum number of ContinuationPoints it would allow for one Session.
50
- *
50
+ *
51
51
  * - Requests will often specify multiple operations that may or may not require a ContinuationPoint.
52
52
  * - A Server shall process the operations until it uses the maximum number of continuation points in this response.
53
53
  * Once that happens the Server shall return a Bad_NoContinuationPoints error for any remaining operations. A Client can avoid
@@ -57,7 +57,7 @@ interface Data {
57
57
  * provided so Servers shall never return Bad_NoContinuationPoints error when continuing a previously halted operation.
58
58
  * A ContinuationPoint is a subtype of the ByteString data type.
59
59
  *
60
- *
60
+ *
61
61
  * for historical access: https://reference.opcfoundation.org/v104/Core/docs/Part11/6.3/
62
62
  *
63
63
  * The continuationPoint parameter in the HistoryRead Service is used to mark a point from which to continue
@@ -105,11 +105,6 @@ export class ContinuationPointManager implements IContinuationPointManager {
105
105
  return nbContinuationPoints >= maxContinuationPoint;
106
106
  }
107
107
 
108
- public clearContinuationPoints() {
109
- // call when a new request to the server is received
110
- this._map.clear();
111
- }
112
-
113
108
  public registerHistoryReadRaw(
114
109
  numValuesPerNode: number,
115
110
  dataValues: DataValue[],
@@ -144,26 +139,49 @@ export class ContinuationPointManager implements IContinuationPointManager {
144
139
  return this._getNext(numValues, continuationData);
145
140
  }
146
141
 
142
+ public clearContinuationPoint(continuationPoint: ContinuationPoint) {
143
+ const keyHash = continuationPoint.toString("utf-8");
144
+ if (this._map.has(keyHash)) {
145
+ this._map.delete(keyHash);
146
+ }
147
+ }
148
+ public clearContinuationPoints(continuationPoints: ContinuationPoint[]) {
149
+ for (const continuationPoint of continuationPoints) {
150
+ this.clearContinuationPoint(continuationPoint);
151
+ }
152
+ return {
153
+ continuationPoint: undefined,
154
+ values: [],
155
+ statusCode: StatusCodes.Good
156
+ };
157
+ }
158
+ public clear() {
159
+ this._map.clear();
160
+ }
161
+
162
+ public dispose() {
163
+ this.clear();
164
+ }
147
165
  private _register<T extends DataValue | ReferenceDescription>(
148
166
  maxValues: number,
149
167
  values: T[],
150
168
  continuationData: ContinuationData
151
169
  ): IContinuationPointInfo<T> {
152
- if (continuationData.releaseContinuationPoints) {
153
- this.clearContinuationPoints();
170
+ // A Server shall automatically free ContinuationPoints from prior requests from a Session
171
+ // if they are needed to process a new request from this Session.
172
+ // if (!continuationData.continuationPoint && !continuationData.index) {
173
+ // if (this._map.size > 0) {
174
+ // warningLog("flushing pending continuationPoints", this._map.size);
175
+ // this.clearContinuationPoints();
176
+ // }
177
+ // }
178
+ if (continuationData.releaseContinuationPoints && !continuationData.continuationPoint) {
154
179
  return {
155
180
  continuationPoint: undefined,
156
181
  values: [],
157
- statusCode: StatusCodes.Good
182
+ statusCode: StatusCodes.BadContinuationPointInvalid
158
183
  };
159
184
  }
160
- if (!continuationData.continuationPoint && !continuationData.index) {
161
- if (this._map.size > 0 ) {
162
- warningLog("flushing pending continuationPoints" , this._map.size );
163
- this.clearContinuationPoints();
164
- }
165
- }
166
-
167
185
  if (maxValues >= 1) {
168
186
  // now make sure that only the requested number of value is returned
169
187
  if (values.length === 0) {
@@ -224,11 +242,21 @@ export class ContinuationPointManager implements IContinuationPointManager {
224
242
  statusCode: StatusCodes.BadContinuationPointInvalid
225
243
  };
226
244
  }
245
+ if (continuationData.releaseContinuationPoints) {
246
+ // releaseContinuationPoints expect immediate release of all continuation points
247
+ this._map.delete(keyHash);
248
+ return {
249
+ continuationPoint: undefined,
250
+ values: [],
251
+ statusCode: StatusCodes.Good
252
+ };
253
+ }
227
254
 
228
255
  const values = data.values.splice(0, numValues || data.maxElements) as T[];
229
256
 
230
257
  let continuationPoint: ContinuationPoint | undefined = continuationData.continuationPoint;
231
- if (data.values.length === 0 || continuationData.releaseContinuationPoints) {
258
+
259
+ if (data.values.length === 0) {
232
260
  // no more data available for next call
233
261
  this._map.delete(keyHash);
234
262
  continuationPoint = undefined;
@@ -3,7 +3,7 @@
3
3
  * @module node-opcua-address-space
4
4
  */
5
5
  import { assert } from "node-opcua-assert";
6
- import { decodeArray, encodeArray } from "node-opcua-basic-types";
6
+ import { decodeArray, encodeArray } from "node-opcua-basic-types";
7
7
  import { BinaryStream, BinaryStreamSizeCalculator, OutputBinaryStream } from "node-opcua-binary-stream";
8
8
  import { checkDebugFlag, make_debugLog, make_warningLog } from "node-opcua-debug";
9
9
  import { findBuiltInType } from "node-opcua-factory";
@@ -57,12 +57,11 @@ export function encode_ArgumentList(definition: ArgumentDef[], args: any[], stre
57
57
  }
58
58
 
59
59
  export function decode_ArgumentList(definition: ArgumentDef[], stream: BinaryStream): any[] {
60
-
61
60
  // istanbul ignore next
62
61
  if (!Array.isArray(definition)) {
63
62
  throw new Error(
64
63
  "This BaseDataType cannot be decoded because it has no definition.\n" +
65
- "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});"
64
+ "Please construct a BaseDataType({definition : [{dataType: DataType.UInt32 }]});"
66
65
  );
67
66
  }
68
67
 
@@ -193,7 +192,6 @@ export function isArgumentValid(addressSpace: IAddressSpace, argDefinition: Argu
193
192
 
194
193
  // istanbul ignore next
195
194
  if (!argDataType) {
196
-
197
195
  doDebug && debugLog(" cannot find dataType ", arg.dataType, resolveNodeId(arg.dataType));
198
196
  doDebug && debugLog(" arg = ", arg.toString());
199
197
  doDebug && debugLog(" def =", argDefinition.toString());
@@ -261,12 +259,12 @@ export function verifyArguments_ArgumentList(
261
259
  doDebug &&
262
260
  debugLog(
263
261
  "verifyArguments_ArgumentList " +
264
- "\n The client did specify too many input arguments for the method. " +
265
- "\n expected : " +
266
- methodInputArguments.length +
267
- "" +
268
- "\n actual : " +
269
- inputArguments.length
262
+ "\n The client did specify too many input arguments for the method. " +
263
+ "\n expected : " +
264
+ methodInputArguments.length +
265
+ "" +
266
+ "\n actual : " +
267
+ inputArguments.length
270
268
  );
271
269
 
272
270
  return { inputArgumentResults, statusCode: StatusCodes.BadArgumentsMissing };
@@ -277,22 +275,29 @@ export function verifyArguments_ArgumentList(
277
275
  doDebug &&
278
276
  debugLog(
279
277
  " verifyArguments_ArgumentList " +
280
- "\n The client did not specify all of the input arguments for the method. " +
281
- "\n expected : " +
282
- methodInputArguments.length +
283
- "" +
284
- "\n actual : " +
285
- inputArguments.length
278
+ "\n The client did not specify all of the input arguments for the method. " +
279
+ "\n expected : " +
280
+ methodInputArguments.length +
281
+ "" +
282
+ "\n actual : " +
283
+ inputArguments.length
286
284
  );
287
285
 
288
286
  return { inputArgumentResults, statusCode: StatusCodes.BadTooManyArguments };
289
287
  }
290
288
 
289
+ const hasBadTypeMismatch = inputArgumentResults.includes(StatusCodes.BadTypeMismatch);
290
+ const hasBadOutOfRange = inputArgumentResults.includes(StatusCodes.BadOutOfRange);
291
+
292
+ const statusCode =
293
+ hasBadTypeMismatch || hasBadOutOfRange
294
+ ? hasBadTypeMismatch && !hasBadOutOfRange
295
+ ? StatusCodes.BadTypeMismatch
296
+ : StatusCodes.BadInvalidArgument
297
+ : StatusCodes.Good;
298
+
291
299
  return {
292
300
  inputArgumentResults,
293
- statusCode:
294
- inputArgumentResults.includes(StatusCodes.BadTypeMismatch) || inputArgumentResults.includes(StatusCodes.BadOutOfRange)
295
- ? StatusCodes.BadInvalidArgument
296
- : StatusCodes.Good
301
+ statusCode
297
302
  };
298
- }
303
+ }
@@ -53,10 +53,10 @@ export function callMethodHelper(
53
53
 
54
54
  const methodObj = addressSpace.findNode(methodId) as UAMethod;
55
55
  if (!methodObj) {
56
- return callback(null, { statusCode: StatusCodes.BadNodeIdUnknown });
56
+ return callback(null, { statusCode: StatusCodes.BadMethodInvalid });
57
57
  }
58
58
  if (methodObj.nodeClass !== NodeClass.Method) {
59
- return callback(null, { statusCode: StatusCodes.BadNodeIdInvalid });
59
+ return callback(null, { statusCode: StatusCodes.BadMethodInvalid });
60
60
  }
61
61
 
62
62
  const response1 = getMethodDeclaration_ArgumentList(addressSpace, objectId, methodId);
@@ -51,10 +51,10 @@ export interface UAConditionEx extends UAObject, UACondition_Base, UAConditionHe
51
51
  enabledState: UATwoStateVariableEx;
52
52
  on(eventName: string, eventHandler: any): this;
53
53
  //
54
- conditionClassId: UAProperty<NodeId, /*c*/DataType.NodeId>;
55
- conditionClassName: UAProperty<LocalizedText, /*c*/DataType.LocalizedText>;
56
- // conditionSubClassId?: UAProperty<NodeId, /*c*/DataType.NodeId>;
57
- // conditionSubClassName?: UAProperty<LocalizedText, /*c*/DataType.LocalizedText>;
54
+ conditionClassId: UAProperty<NodeId, /*c*/ DataType.NodeId>;
55
+ conditionClassName: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
56
+ conditionSubClassId: UAProperty<NodeId[], /*c*/ DataType.NodeId>;
57
+ conditionSubClassName: UAProperty<LocalizedText[], /*c*/ DataType.LocalizedText>;
58
58
  // conditionName: UAProperty<UAString, /*c*/DataType.String>;
59
59
  // branchId: UAProperty<NodeId, /*c*/DataType.NodeId>;
60
60
  // retain: UAProperty<boolean, /*c*/DataType.Boolean>;
@@ -91,7 +91,7 @@ function convertAccessLevel(accessLevel?: string | null): AccessLevelFlag {
91
91
 
92
92
  type Task = (addressSpace: IAddressSpace) => Promise<void>;
93
93
 
94
- function makeDefaultVariant(addressSpace: IAddressSpace, dataTypeNode: NodeId, valueRank: number): VariantOptions | undefined {
94
+ function makeDefaultVariant(addressSpace: IAddressSpace, dataTypeNode: NodeId, valueRank: number, arrayDimensions?: number[] |null): VariantOptions | undefined {
95
95
  let variant: VariantOptions = { dataType: DataType.Null };
96
96
 
97
97
  const nodeDataType = addressSpace.findNode(dataTypeNode) as UADataType;
@@ -136,7 +136,7 @@ function makeDefaultVariant(addressSpace: IAddressSpace, dataTypeNode: NodeId, v
136
136
  break;
137
137
  default:
138
138
  arrayType = VariantArrayType.Matrix;
139
- variant = { dataType: basicDataType, value: [], arrayType, dimensions: [] };
139
+ variant = { dataType: basicDataType, value: [], arrayType, dimensions: arrayDimensions };
140
140
  break;
141
141
  }
142
142
  }
@@ -1408,7 +1408,9 @@ function makeNodeSetParserEngine(addressSpace: IAddressSpace, options: NodeSetLo
1408
1408
  const task = async (addressSpace2: IAddressSpace) => {
1409
1409
  const dataTypeNode = capturedVariable.dataType;
1410
1410
  const valueRank = capturedVariable.valueRank;
1411
- const value = makeDefaultVariant(addressSpace, dataTypeNode, valueRank);
1411
+ const arrayDimensions = capturedVariable.arrayDimensions;
1412
+
1413
+ const value = makeDefaultVariant(addressSpace, dataTypeNode, valueRank, arrayDimensions);
1412
1414
  if (value) {
1413
1415
  if (false && doDebug) {
1414
1416
  debugLog("2 setting value to ", capturedVariable.nodeId.toString(), value);
@@ -68,10 +68,7 @@ export function innerBrowse(
68
68
  if (!engine.continuationPointManager) {
69
69
  return new BrowseResult({ statusCode: StatusCodes.BadNoContinuationPoints });
70
70
  }
71
- if (index === 0) {
72
- // clear previous continuation points
73
- engine.continuationPointManager.clearContinuationPoints();
74
- }
71
+
75
72
  if (engine.continuationPointManager.hasReachedMaximum(engine.maxBrowseContinuationPoints)) {
76
73
  return new BrowseResult({ statusCode: StatusCodes.BadNoContinuationPoints });
77
74
  }
@@ -79,7 +76,7 @@ export function innerBrowse(
79
76
  const truncatedResult = engine.continuationPointManager.registerReferences(
80
77
  engine.requestedMaxReferencesPerNode,
81
78
  result.references || [],
82
- { continuationPoint: null, index }
79
+ { continuationPoint: null }
83
80
  );
84
81
  let { statusCode } = truncatedResult;
85
82
  const { continuationPoint, values } = truncatedResult;
@@ -108,7 +105,6 @@ export function innerBrowseNext(
108
105
  .map((continuationPoint: ContinuationPoint, index: number) => {
109
106
  return engine.continuationPointManager.getNextReferences(0, {
110
107
  continuationPoint,
111
- index,
112
108
  releaseContinuationPoints
113
109
  });
114
110
  })
@@ -1,7 +1,7 @@
1
1
  import { assert } from "node-opcua-assert";
2
2
  import { BaseNode, UAMethod, UAObject, UAReference, UAVariable, CloneFilter, fullPath2 } from "node-opcua-address-space-base";
3
-
4
3
  import { checkDebugFlag, make_debugLog, make_warningLog, make_errorLog } from "node-opcua-debug";
4
+ import { BrowseDirection } from "node-opcua-data-model";
5
5
 
6
6
  import { _clone_hierarchical_references } from "./base_node_private";
7
7
 
@@ -23,7 +23,7 @@ export class MandatoryChildOrRequestedOptionalFilter implements CloneFilter {
23
23
  assert(null !== instance);
24
24
  this.optionalsMap = optionalsMap;
25
25
  this.instance = instance;
26
- this.references = instance.allReferences();
26
+ this.references = instance.findReferencesEx("Aggregates", BrowseDirection.Forward);
27
27
  }
28
28
 
29
29
  public shouldKeep(node: BaseNode): boolean {
@@ -56,7 +56,7 @@ import {
56
56
  ShutdownTask,
57
57
  RaiseEventData
58
58
  } from "node-opcua-address-space-base";
59
- import { make_debugLog, make_errorLog } from "node-opcua-debug";
59
+ import { make_debugLog, make_warningLog, make_errorLog } from "node-opcua-debug";
60
60
 
61
61
  import { adjustBrowseDirection } from "../source/helpers/adjust_browse_direction";
62
62
  import { UARootFolder } from "../source/ua_root_folder";
@@ -80,6 +80,7 @@ import { BaseNodeImpl } from "./base_node_impl";
80
80
  const doDebug = false;
81
81
  const errorLog = make_errorLog(__filename);
82
82
  const debugLog = make_debugLog(__filename);
83
+ const warningLog = make_warningLog(__filename);
83
84
 
84
85
  // tslint:disable-next-line:no-var-requires
85
86
  const Dequeue = require("dequeue");
@@ -253,7 +254,9 @@ export class AddressSpace implements AddressSpacePrivate {
253
254
  /**
254
255
  * @method registerNamespace
255
256
  *
256
- * register a new namespace
257
+ * register a new namespace,
258
+ * it is OK to call registerNamespace even if namespace has already been registered;
259
+ * in this case the registerNamespace has no effect and returns the existing namespace.
257
260
  *
258
261
  * @param namespaceUri {string}
259
262
  * @returns {Namespace}
@@ -806,8 +809,8 @@ export class AddressSpace implements AddressSpacePrivate {
806
809
  }
807
810
  /* istanbul ignore next */
808
811
  if (!alreadyVisited(k)) {
809
- throw new Error(
810
- " cannot find property '" +
812
+ warningLog(
813
+ "constructEventData: cannot find property '" +
811
814
  k +
812
815
  "' in [ " +
813
816
  Object.keys(visitedProperties).join(", ") +
@@ -17,7 +17,6 @@ import {
17
17
  NodeClass,
18
18
  QualifiedName
19
19
  } from "node-opcua-data-model";
20
- import { DataValue } from "node-opcua-data-value";
21
20
  import { checkDebugFlag, make_debugLog, make_errorLog, make_warningLog } from "node-opcua-debug";
22
21
  import { minDate } from "node-opcua-basic-types";
23
22
  import { coerceNodeId, makeNodeId, NodeId, resolveNodeId, sameNodeId } from "node-opcua-nodeid";
@@ -60,6 +59,8 @@ export declare interface UAConditionImpl extends UAConditionEx, UABaseEventImpl
60
59
  on(eventName: string, eventHandler: any): this;
61
60
  conditionClassId: UAProperty<NodeId, /*c*/ DataType.NodeId>;
62
61
  conditionClassName: UAProperty<LocalizedText, /*c*/ DataType.LocalizedText>;
62
+ conditionSubClassId: UAProperty<NodeId[], DataType.NodeId>;
63
+ conditionSubClassName: UAProperty<LocalizedText[], DataType.LocalizedText>;
63
64
  }
64
65
  /**
65
66
  *
@@ -1208,7 +1209,6 @@ function _create_new_branch_id() {
1208
1209
  return makeNodeId(randomGuid(), 1);
1209
1210
  }
1210
1211
 
1211
-
1212
1212
  // tslint:disable:no-console
1213
1213
  function _install_condition_variable_type<T, DT extends DataType>(node: UAConditionVariable<T, DT>) {
1214
1214
  // from spec 1.03 : 5.3 condition variables
@@ -1220,7 +1220,6 @@ function _install_condition_variable_type<T, DT extends DataType>(node: UACondit
1220
1220
  console.warn("cannot find node.sourceTimestamp", node.browseName.toString());
1221
1221
  }
1222
1222
  node.accessLevel = makeAccessLevelFlag("CurrentRead");
1223
-
1224
1223
  }
1225
1224
 
1226
1225
  /**