node-opcua-client-dynamic-extension-object 2.101.0 → 2.103.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.
- package/dist/get_extra_data_type_manager.d.ts +1 -0
- package/dist/get_extra_data_type_manager.js +66 -22
- package/dist/get_extra_data_type_manager.js.map +1 -1
- package/dist/resolve_dynamic_extension_object.js.map +1 -1
- package/package.json +10 -10
- package/source/get_extra_data_type_manager.ts +62 -22
- package/source/resolve_dynamic_extension_object.ts +1 -0
|
@@ -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
|
-
|
|
22
|
+
const warningLog = errorLog;
|
|
23
|
+
function invalidateExtraDataTypeManager(session) {
|
|
23
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
25
|
const sessionPriv = session;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 (
|
|
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
|
|
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;
|
|
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;;
|
|
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.
|
|
3
|
+
"version": "2.103.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.
|
|
18
|
-
"node-opcua-data-value": "2.
|
|
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.
|
|
24
|
-
"node-opcua-schemas": "2.
|
|
25
|
-
"node-opcua-service-browse": "2.
|
|
26
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
23
|
+
"node-opcua-pseudo-session": "2.103.0",
|
|
24
|
+
"node-opcua-schemas": "2.103.0",
|
|
25
|
+
"node-opcua-service-browse": "2.103.0",
|
|
26
|
+
"node-opcua-service-translate-browse-path": "2.103.0",
|
|
27
27
|
"node-opcua-status-code": "2.98.1",
|
|
28
|
-
"node-opcua-types": "2.
|
|
29
|
-
"node-opcua-variant": "2.
|
|
28
|
+
"node-opcua-types": "2.103.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": "
|
|
46
|
+
"gitHead": "e206cac2daf39bd07e5ac6cbd744f966bb54759e",
|
|
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
|
-
|
|
19
|
-
|
|
19
|
+
sessionPriv.$$extraDataTypeManager = undefined;
|
|
20
|
+
if (sessionPriv.$$extraDataTypeManagerToResolve) {
|
|
21
|
+
warningLog("Warning: invalidateExtraDataTypeManager is called while getExtraDataTypeManager is in progress");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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 (
|
|
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
|
|
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
|
|