node-opcua-client-dynamic-extension-object 2.101.0 → 2.102.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.
@@ -1,3 +1,4 @@
1
1
  import { IBasicSession } from "node-opcua-pseudo-session";
2
2
  import { ExtraDataTypeManager } from "./extra_data_type_manager";
3
+ export declare function invalidateExtraDataTypeManager(session: IBasicSession): Promise<void>;
3
4
  export declare function getExtraDataTypeManager(session: IBasicSession): Promise<ExtraDataTypeManager>;
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getExtraDataTypeManager = void 0;
12
+ exports.getExtraDataTypeManager = exports.invalidateExtraDataTypeManager = void 0;
13
13
  const node_opcua_debug_1 = require("node-opcua-debug");
14
14
  const node_opcua_factory_1 = require("node-opcua-factory");
15
15
  const node_opcua_pseudo_session_1 = require("node-opcua-pseudo-session");
@@ -19,33 +19,77 @@ const populate_data_type_manager_1 = require("./populate_data_type_manager");
19
19
  const doDebug = (0, node_opcua_debug_1.checkDebugFlag)(__filename);
20
20
  const debugLog = (0, node_opcua_debug_1.make_debugLog)(__filename);
21
21
  const errorLog = (0, node_opcua_debug_1.make_errorLog)(__filename);
22
- function getExtraDataTypeManager(session) {
22
+ const warningLog = errorLog;
23
+ function invalidateExtraDataTypeManager(session) {
23
24
  return __awaiter(this, void 0, void 0, function* () {
24
25
  const sessionPriv = session;
25
- if (!sessionPriv.$$extraDataTypeManager) {
26
- const dataTypeManager = new extra_data_type_manager_1.ExtraDataTypeManager();
27
- const namespaceArray = yield (0, node_opcua_pseudo_session_1.readNamespaceArray)(sessionPriv);
28
- // istanbul ignore next
29
- if (namespaceArray.length === 0) {
30
- errorLog("namespaceArray is not populated ! Your server must expose a list of namespace ");
31
- }
32
- // istanbul ignore next
33
- if (doDebug) {
34
- debugLog("Namespace Array = ", namespaceArray.join("\n "));
35
- }
36
- sessionPriv.$$extraDataTypeManager = dataTypeManager;
37
- dataTypeManager.setNamespaceArray(namespaceArray);
38
- for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
39
- const dataTypeFactory1 = new node_opcua_factory_1.DataTypeFactory([(0, node_opcua_factory_1.getStandardDataTypeFactory)()]);
40
- dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
41
- }
42
- yield (0, populate_data_type_manager_1.populateDataTypeManager)(session, dataTypeManager);
26
+ sessionPriv.$$extraDataTypeManager = undefined;
27
+ if (sessionPriv.$$extraDataTypeManagerToResolve) {
28
+ warningLog("Warning: invalidateExtraDataTypeManager is called while getExtraDataTypeManager is in progress");
29
+ }
30
+ });
31
+ }
32
+ exports.invalidateExtraDataTypeManager = invalidateExtraDataTypeManager;
33
+ function extractDataTypeManager(session) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const namespaceArray = yield (0, node_opcua_pseudo_session_1.readNamespaceArray)(session);
36
+ // istanbul ignore next
37
+ if (namespaceArray.length === 0) {
38
+ errorLog("namespaceArray is not populated ! Your server must expose a list of namespace ");
39
+ }
40
+ // istanbul ignore next
41
+ if (doDebug) {
42
+ debugLog("Namespace Array = ", namespaceArray.join("\n "));
43
43
  }
44
+ const dataTypeManager = new extra_data_type_manager_1.ExtraDataTypeManager();
45
+ dataTypeManager.setNamespaceArray(namespaceArray);
46
+ for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
47
+ const dataTypeFactory1 = new node_opcua_factory_1.DataTypeFactory([(0, node_opcua_factory_1.getStandardDataTypeFactory)()]);
48
+ dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
49
+ }
50
+ yield (0, populate_data_type_manager_1.populateDataTypeManager)(session, dataTypeManager);
44
51
  // istanbul ignore next
45
- if (sessionPriv.$$extraDataTypeManager.namespaceArray.length === 0) {
52
+ if (dataTypeManager.namespaceArray.length === 0) {
46
53
  throw new Error("namespaceArray is not populated ! Your server must expose a list of namespace ");
47
54
  }
48
- return sessionPriv.$$extraDataTypeManager;
55
+ return dataTypeManager;
56
+ });
57
+ }
58
+ function getExtraDataTypeManager(session) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const sessionPriv = session;
61
+ if (sessionPriv.$$extraDataTypeManager) {
62
+ return sessionPriv.$$extraDataTypeManager;
63
+ }
64
+ if (sessionPriv.$$extraDataTypeManagerToResolve) {
65
+ doDebug && debugLog("getExtraDataTypeManager is re-entering !");
66
+ return yield new Promise((resolve, reject) => {
67
+ var _a;
68
+ (_a = sessionPriv.$$extraDataTypeManagerToResolve) === null || _a === void 0 ? void 0 : _a.push([resolve, reject]);
69
+ });
70
+ }
71
+ sessionPriv.$$extraDataTypeManagerToResolve = [];
72
+ return yield new Promise((_resolve, _reject) => {
73
+ sessionPriv.$$extraDataTypeManagerToResolve.push([_resolve, _reject]);
74
+ (() => __awaiter(this, void 0, void 0, function* () {
75
+ try {
76
+ const dataTypeManager = yield extractDataTypeManager(session);
77
+ const tmp = sessionPriv.$$extraDataTypeManagerToResolve;
78
+ sessionPriv.$$extraDataTypeManagerToResolve = undefined;
79
+ for (const [resolve] of tmp) {
80
+ resolve(dataTypeManager);
81
+ }
82
+ sessionPriv.$$extraDataTypeManager = dataTypeManager;
83
+ }
84
+ catch (err) {
85
+ const tmp = sessionPriv.$$extraDataTypeManagerToResolve;
86
+ sessionPriv.$$extraDataTypeManagerToResolve = undefined;
87
+ for (const [_resolve, reject] of tmp) {
88
+ reject(err);
89
+ }
90
+ }
91
+ }))();
92
+ });
49
93
  });
50
94
  }
51
95
  exports.getExtraDataTypeManager = getExtraDataTypeManager;
@@ -1 +1 @@
1
- {"version":3,"file":"get_extra_data_type_manager.js","sourceRoot":"","sources":["../source/get_extra_data_type_manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAgF;AAChF,2DAAiF;AACjF,yEAA8E;AAC9E,EAAE;AACF,uEAAiE;AACjE,6EAAuE;AAEvE,MAAM,OAAO,GAAG,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,IAAA,gCAAa,EAAC,UAAU,CAAC,CAAC;AAM3C,SAAsB,uBAAuB,CAAC,OAAsB;;QAChE,MAAM,WAAW,GAAoB,OAA0B,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;YACrC,MAAM,eAAe,GAAG,IAAI,8CAAoB,EAAE,CAAC;YAEnD,MAAM,cAAc,GAAG,MAAM,IAAA,8CAAkB,EAAC,WAAW,CAAC,CAAC;YAC7D,uBAAuB;YACvB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,QAAQ,CAAC,gFAAgF,CAAC,CAAC;aAC9F;YACD,uBAAuB;YACvB,IAAI,OAAO,EAAE;gBACT,QAAQ,CAAC,oBAAoB,EAAE,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;aAChF;YACD,WAAW,CAAC,sBAAsB,GAAG,eAAe,CAAC;YACrD,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAClD,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE;gBACnF,MAAM,gBAAgB,GAAG,IAAI,oCAAe,CAAC,CAAC,IAAA,+CAA0B,GAAE,CAAC,CAAC,CAAC;gBAC7E,eAAe,CAAC,uBAAuB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;aAC7E;YACD,MAAM,IAAA,oDAAuB,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;SAC3D;QACD,uBAAuB;QACvB,IAAI,WAAW,CAAC,sBAAsB,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAChE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;SACrG;QACD,OAAO,WAAW,CAAC,sBAAsB,CAAC;IAC9C,CAAC;CAAA;AA3BD,0DA2BC"}
1
+ {"version":3,"file":"get_extra_data_type_manager.js","sourceRoot":"","sources":["../source/get_extra_data_type_manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve_dynamic_extension_object.js","sourceRoot":"","sources":["../source/resolve_dynamic_extension_object.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAAwD;AACxD,6EAA+E;AAC/E,2DAAyE;AACzE,uDAA4D;AAI5D,iEAAmF;AAGnF,6FAA8F;AAE9F,MAAM,UAAU,GAAG,IAAA,kCAAe,EAAC,UAAU,CAAC,CAAC;AAE/C,SAAe,uBAAuB,CAClC,OAAsB,EACtB,oBAA4B,EAC5B,eAAqC;;QAErC,MAAM,eAAe,GAAG,eAAe,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAGvG,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QACzE,IAAI,WAAW,EAAE;YACb,OAAO,WAAW,CAAC;SACtB;QACD,IAAI,oBAAoB,CAAC,SAAS,KAAK,CAAC,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACrC;QACD,qBAAqB;QACrB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE,oBAAoB;YAC5B,eAAe,EAAE,aAAa;YAC9B,eAAe,EAAE,uCAAe,CAAC,OAAO;YACxC,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,qCAAa,CAAC,QAAQ;YACrC,UAAU,EAAE,kCAAU,CAAC,UAAU;SACpC,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,YAAY,CAAC,UAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9E,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SACpC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;QAEhC,IAAI,eAAe,CAAC,2BAA2B,CAAC,cAAc,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,6EAA6E,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC9H;QACD,MAAM,IAAA,mEAAkC,EAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,IAAK,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QAE3G,MAAM,aAAa,GAAG,eAAe,CAAC,2BAA2B,CAAC,cAAc,CAAE,CAAC;QACnF,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SACpE;QACD,OAAO,aAAa,CAAC,WAAW,CAAC;IACrC,CAAC;CAAA;AAED,SAAsB,uCAAuC,CACzD,OAAsB,EACtB,eAAqC,EACrC,MAAuB;;QAEvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAK7B,SAAe,2BAA2B,CACtC,OAAgC,EAChC,KAA0B,EAC1B,IAAO,EACP,IAAU;;gBAEV,IAAI,OAAO,YAAY,4BAAO,EAAE;oBAC5B,MAAM,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;oBACvE,OAAO,OAAO,CAAC;iBAClB;gBACD,IAAI,CAAC,CAAC,OAAO,YAAY,6CAAe,CAAC,EAAE;oBACvC,OAAO,OAAO,CAAC;iBAClB;gBACD,MAAM,OAAO,GAAG,IAAI,4BAAO,CAAC,EAAE,QAAQ,EAAE,6BAAQ,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpF,MAAM,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;gBACvE,OAAO,OAAO,CAAC,KAAgB,CAAC;YACpC,CAAC;SAAA;QACD,SAAS,kBAAkB,CAAC,MAAW,EAAE,KAA0B,EAAE,IAAO,EAAE,IAAU;YACpF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBACrD,OAAO;aACV;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC7D,OAAO;aACV;YACD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,EAAE;gBACJ,OAAO;aACV;YACD,IAAI,KAAK,CAAC,OAAO,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACf,QAAQ,CAAC,IAAI,CACT,CAAC,GAAS,EAAE;wBACR,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnE,CAAC,CAAA,CAAC,EAAE,CACP,CAAC;iBACL;aACJ;iBAAM;gBACH,QAAQ,CAAC,IAAI,CACT,CAAC,GAAS,EAAE;oBACR,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjF,CAAC,CAAA,CAAC,EAAE,CACP,CAAC;aACL;QACL,CAAC;QACD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,CAAC,gBAAgB,CAAI,kBAAkB,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CAAA;AA3DD,0FA2DC;AAED,mIAAmI;AACnI,yDAAyD;AAEzD,2CAA2C;AAC3C,oEAAoE;AACpE,oCAAoC;AACpC,+CAA+C;AAC/C,sDAAsD;AACtD,yCAAyC;AACzC,uDAAuD;AACvD,gEAAgE;AAChE,8CAA8C;AAC9C,oEAAoE;AACpE,YAAY;AACZ,4EAA4E;AAC5E,iEAAiE;AACjE,2FAA2F;AAC3F,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,SAAe,8BAA8B,CACzC,OAAsB,EACtB,MAAuB,EACvB,eAAqC;;;QAErC,IAAI;YACA,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,uCAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI;gBACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,uCAAuC,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBAChF,OAAO,MAAM,CAAC;aACjB;YAAC,OAAO,GAAG,EAAE;gBACV,UAAU,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/C,UAAU,CAAC,oBAAoB,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7D,UAAU,CAAC,oBAAoB,EAAE,IAAA,0BAAO,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnE,UAAU,CAAC,IAAA,0BAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnC,UAAU,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;gBACzD,0BAA0B;gBAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,OAAO,MAAM,CAAC;aACjB;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvB,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,UAAU,CAAC,oBAAoB,EAAE,IAAI,GAAG,IAAA,0BAAO,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1E,UAAU,CAAC,IAAA,0BAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACnC,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvC,MAAM,GAAG,CAAC;SACb;;CACJ;AAED,SAAsB,6BAA6B,CAC/C,OAAsB,EACtB,OAAgB,EAChB,eAAqC;;QAErC,IAAI,OAAO,CAAC,QAAQ,KAAK,6BAAQ,CAAC,eAAe,EAAE;YAC/C,OAAO;SACV;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,qCAAgB,CAAC,MAAM,EAAE;YAC/C,IAAI,OAAO,CAAC,KAAK,YAAY,KAAK,EAAE;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,6CAAe,EAAE;wBAC7C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;qBACvG;iBACJ;aACJ;YACD,OAAO;SACV;QAED,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,6CAAe,CAAC,EAAE;YAC7C,OAAO;SACV;QACD,OAAO,CAAC,KAAK,GAAG,MAAM,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAClG,CAAC;CAAA;AAvBD,sEAuBC"}
1
+ {"version":3,"file":"resolve_dynamic_extension_object.js","sourceRoot":"","sources":["../source/resolve_dynamic_extension_object.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-client-dynamic-extension-object",
3
- "version": "2.101.0",
3
+ "version": "2.102.0",
4
4
  "description": "pure nodejs OPCUA SDK - module client-dynamic-extension-object",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,19 +14,19 @@
14
14
  "node-opcua-assert": "2.98.1",
15
15
  "node-opcua-binary-stream": "2.98.1",
16
16
  "node-opcua-constants": "2.98.1",
17
- "node-opcua-data-model": "2.99.0",
18
- "node-opcua-data-value": "2.99.0",
17
+ "node-opcua-data-model": "2.102.0",
18
+ "node-opcua-data-value": "2.102.0",
19
19
  "node-opcua-debug": "2.99.0",
20
20
  "node-opcua-extension-object": "2.99.0",
21
21
  "node-opcua-factory": "2.99.0",
22
22
  "node-opcua-nodeid": "2.99.0",
23
- "node-opcua-pseudo-session": "2.101.0",
24
- "node-opcua-schemas": "2.99.0",
25
- "node-opcua-service-browse": "2.99.0",
26
- "node-opcua-service-translate-browse-path": "2.99.0",
23
+ "node-opcua-pseudo-session": "2.102.0",
24
+ "node-opcua-schemas": "2.102.0",
25
+ "node-opcua-service-browse": "2.102.0",
26
+ "node-opcua-service-translate-browse-path": "2.102.0",
27
27
  "node-opcua-status-code": "2.98.1",
28
- "node-opcua-types": "2.99.0",
29
- "node-opcua-variant": "2.99.0"
28
+ "node-opcua-types": "2.102.0",
29
+ "node-opcua-variant": "2.102.0"
30
30
  },
31
31
  "author": "Etienne Rossignon",
32
32
  "license": "MIT",
@@ -43,7 +43,7 @@
43
43
  "internet of things"
44
44
  ],
45
45
  "homepage": "http://node-opcua.github.io/",
46
- "gitHead": "77abad969406b6d7d76e6bc07a8aa94ae07f3db2",
46
+ "gitHead": "07dcdd8e8c7f2b55544c6e23023093e35674829c",
47
47
  "files": [
48
48
  "dist",
49
49
  "source"
@@ -8,36 +8,76 @@ import { populateDataTypeManager } from "./populate_data_type_manager";
8
8
  const doDebug = checkDebugFlag(__filename);
9
9
  const debugLog = make_debugLog(__filename);
10
10
  const errorLog = make_errorLog(__filename);
11
+ const warningLog = errorLog;
11
12
 
12
13
  interface IBasicSessionEx extends IBasicSession {
13
14
  $$extraDataTypeManager?: ExtraDataTypeManager;
15
+ $$extraDataTypeManagerToResolve?: [(a: ExtraDataTypeManager) => void, (err: Error) => void][];
14
16
  }
15
-
16
- export async function getExtraDataTypeManager(session: IBasicSession): Promise<ExtraDataTypeManager> {
17
+ export async function invalidateExtraDataTypeManager(session: IBasicSession): Promise<void> {
17
18
  const sessionPriv: IBasicSessionEx = session as IBasicSessionEx;
18
- if (!sessionPriv.$$extraDataTypeManager) {
19
- const dataTypeManager = new ExtraDataTypeManager();
19
+ sessionPriv.$$extraDataTypeManager = undefined;
20
+ if (sessionPriv.$$extraDataTypeManagerToResolve) {
21
+ warningLog("Warning: invalidateExtraDataTypeManager is called while getExtraDataTypeManager is in progress");
22
+ }
23
+ }
20
24
 
21
- const namespaceArray = await readNamespaceArray(sessionPriv);
22
- // istanbul ignore next
23
- if (namespaceArray.length === 0) {
24
- errorLog("namespaceArray is not populated ! Your server must expose a list of namespace ");
25
- }
26
- // istanbul ignore next
27
- if (doDebug) {
28
- debugLog("Namespace Array = ", namespaceArray.join("\n "));
29
- }
30
- sessionPriv.$$extraDataTypeManager = dataTypeManager;
31
- dataTypeManager.setNamespaceArray(namespaceArray);
32
- for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
33
- const dataTypeFactory1 = new DataTypeFactory([getStandardDataTypeFactory()]);
34
- dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
35
- }
36
- await populateDataTypeManager(session, dataTypeManager);
25
+ async function extractDataTypeManager(session: IBasicSession): Promise<ExtraDataTypeManager> {
26
+ const namespaceArray = await readNamespaceArray(session);
27
+ // istanbul ignore next
28
+ if (namespaceArray.length === 0) {
29
+ errorLog("namespaceArray is not populated ! Your server must expose a list of namespace ");
30
+ }
31
+ // istanbul ignore next
32
+ if (doDebug) {
33
+ debugLog("Namespace Array = ", namespaceArray.join("\n "));
34
+ }
35
+ const dataTypeManager = new ExtraDataTypeManager();
36
+ dataTypeManager.setNamespaceArray(namespaceArray);
37
+ for (let namespaceIndex = 1; namespaceIndex < namespaceArray.length; namespaceIndex++) {
38
+ const dataTypeFactory1 = new DataTypeFactory([getStandardDataTypeFactory()]);
39
+ dataTypeManager.registerDataTypeFactory(namespaceIndex, dataTypeFactory1);
37
40
  }
41
+ await populateDataTypeManager(session, dataTypeManager);
38
42
  // istanbul ignore next
39
- if (sessionPriv.$$extraDataTypeManager.namespaceArray.length === 0) {
43
+ if (dataTypeManager.namespaceArray.length === 0) {
40
44
  throw new Error("namespaceArray is not populated ! Your server must expose a list of namespace ");
41
45
  }
42
- return sessionPriv.$$extraDataTypeManager;
46
+ return dataTypeManager;
47
+ }
48
+
49
+ export async function getExtraDataTypeManager(session: IBasicSession): Promise<ExtraDataTypeManager> {
50
+ const sessionPriv: IBasicSessionEx = session as IBasicSessionEx;
51
+ if (sessionPriv.$$extraDataTypeManager) {
52
+ return sessionPriv.$$extraDataTypeManager;
53
+ }
54
+
55
+ if (sessionPriv.$$extraDataTypeManagerToResolve) {
56
+ doDebug && debugLog("getExtraDataTypeManager is re-entering !");
57
+ return await new Promise<ExtraDataTypeManager>((resolve, reject) => {
58
+ sessionPriv.$$extraDataTypeManagerToResolve?.push([resolve, reject]);
59
+ });
60
+ }
61
+ sessionPriv.$$extraDataTypeManagerToResolve = [];
62
+
63
+ return await new Promise<ExtraDataTypeManager>((_resolve, _reject) => {
64
+ sessionPriv.$$extraDataTypeManagerToResolve!.push([_resolve, _reject]);
65
+ (async () => {
66
+ try {
67
+ const dataTypeManager = await extractDataTypeManager(session);
68
+ const tmp = sessionPriv.$$extraDataTypeManagerToResolve!;
69
+ sessionPriv.$$extraDataTypeManagerToResolve = undefined;
70
+ for (const [resolve] of tmp) {
71
+ resolve(dataTypeManager);
72
+ }
73
+ sessionPriv.$$extraDataTypeManager = dataTypeManager;
74
+ } catch (err) {
75
+ const tmp = sessionPriv.$$extraDataTypeManagerToResolve!;
76
+ sessionPriv.$$extraDataTypeManagerToResolve = undefined;
77
+ for (const [_resolve, reject] of tmp) {
78
+ reject(err as Error);
79
+ }
80
+ }
81
+ })();
82
+ });
43
83
  }
@@ -17,6 +17,7 @@ async function getOrExtractConstructor(
17
17
  binaryEncodingNodeId: NodeId,
18
18
  dataTypeManager: ExtraDataTypeManager
19
19
  ): Promise<ConstructorFunc> {
20
+
20
21
  const dataTypeFactory = dataTypeManager.getDataTypeFactoryForNamespace(binaryEncodingNodeId.namespace);
21
22
 
22
23