node-opcua-address-space 2.186.17 → 2.187.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/api/address_space_public.ts +16 -0
- package/api/helpers/resolve_opaque_on_address_space.ts +13 -1
- package/api/index.ts +14 -3
- package/api/loader/store_record_applier.ts +267 -0
- package/api/session_context.ts +116 -27
- package/dist/api/address_space_public.d.ts +14 -0
- package/dist/api/address_space_public.d.ts.map +1 -1
- package/dist/api/address_space_public.js +3 -0
- package/dist/api/address_space_public.js.map +1 -1
- package/dist/api/helpers/resolve_opaque_on_address_space.d.ts +6 -0
- package/dist/api/helpers/resolve_opaque_on_address_space.d.ts.map +1 -1
- package/dist/api/helpers/resolve_opaque_on_address_space.js +12 -1
- package/dist/api/helpers/resolve_opaque_on_address_space.js.map +1 -1
- package/dist/api/index.d.ts +4 -3
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -3
- package/dist/api/index.js.map +1 -1
- package/dist/api/loader/store_record_applier.d.ts +49 -0
- package/dist/api/loader/store_record_applier.d.ts.map +1 -0
- package/dist/api/loader/store_record_applier.js +235 -0
- package/dist/api/loader/store_record_applier.js.map +1 -0
- package/dist/api/session_context.d.ts +10 -0
- package/dist/api/session_context.d.ts.map +1 -1
- package/dist/api/session_context.js +100 -27
- package/dist/api/session_context.js.map +1 -1
- package/dist/impl/address_space.d.ts +2 -0
- package/dist/impl/address_space.d.ts.map +1 -1
- package/dist/impl/address_space.js +12 -2
- package/dist/impl/address_space.js.map +1 -1
- package/dist/impl/base_node_impl.d.ts +12 -0
- package/dist/impl/base_node_impl.d.ts.map +1 -1
- package/dist/impl/base_node_impl.js +35 -29
- package/dist/impl/base_node_impl.js.map +1 -1
- package/dist/impl/base_node_private.d.ts +5 -5
- package/dist/impl/base_node_private.d.ts.map +1 -1
- package/dist/impl/base_node_private.js +11 -5
- package/dist/impl/base_node_private.js.map +1 -1
- package/dist/impl/extension_object_array_node.d.ts +4 -2
- package/dist/impl/extension_object_array_node.d.ts.map +1 -1
- package/dist/impl/extension_object_array_node.js +5 -2
- package/dist/impl/extension_object_array_node.js.map +1 -1
- package/dist/impl/historical_access/address_space_historical_data_node.d.ts +26 -2
- package/dist/impl/historical_access/address_space_historical_data_node.d.ts.map +1 -1
- package/dist/impl/historical_access/address_space_historical_data_node.js +39 -0
- package/dist/impl/historical_access/address_space_historical_data_node.js.map +1 -1
- package/dist/impl/namespace_impl.d.ts.map +1 -1
- package/dist/impl/namespace_impl.js +3 -1
- package/dist/impl/namespace_impl.js.map +1 -1
- package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts.map +1 -1
- package/dist/impl/nodeset_tools/construct_namespace_dependency.js +28 -0
- package/dist/impl/nodeset_tools/construct_namespace_dependency.js.map +1 -1
- package/dist/impl/reference_impl.d.ts +2 -1
- package/dist/impl/reference_impl.d.ts.map +1 -1
- package/dist/impl/reference_impl.js +6 -5
- package/dist/impl/reference_impl.js.map +1 -1
- package/dist/impl/reference_index.d.ts +22 -0
- package/dist/impl/reference_index.d.ts.map +1 -0
- package/dist/impl/reference_index.js +104 -0
- package/dist/impl/reference_index.js.map +1 -0
- package/dist/impl/ua_variable_impl.d.ts +8 -0
- package/dist/impl/ua_variable_impl.d.ts.map +1 -1
- package/dist/impl/ua_variable_impl.js +121 -84
- package/dist/impl/ua_variable_impl.js.map +1 -1
- package/dist/tsconfig_base.tsbuildinfo +1 -1
- package/distNodeJS/generate_address_space.d.ts +6 -1
- package/distNodeJS/generate_address_space.d.ts.map +1 -1
- package/distNodeJS/generate_address_space.js +33 -1
- package/distNodeJS/generate_address_space.js.map +1 -1
- package/impl/address_space.ts +16 -2
- package/impl/base_node_impl.ts +52 -30
- package/impl/base_node_private.ts +16 -10
- package/impl/extension_object_array_node.ts +12 -3
- package/impl/historical_access/address_space_historical_data_node.ts +64 -1
- package/impl/namespace_impl.ts +3 -1
- package/impl/nodeset_tools/construct_namespace_dependency.ts +23 -1
- package/impl/reference_impl.ts +6 -5
- package/impl/reference_index.ts +116 -0
- package/impl/ua_variable_impl.ts +161 -94
- package/package.json +34 -33
- package/source_nodejs/generate_address_space.ts +46 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-opcua-address-space",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.187.0",
|
|
5
5
|
"description": "pure nodejs OPCUA SDK - module address-space",
|
|
6
6
|
"main": "./dist/api/index.js",
|
|
7
7
|
"types": "./dist/api/index.d.ts",
|
|
@@ -23,48 +23,49 @@
|
|
|
23
23
|
"@types/semver": "7.8.0",
|
|
24
24
|
"chalk": "6.0.1",
|
|
25
25
|
"dequeue": "^1.0.5",
|
|
26
|
-
"node-opcua-address-space-base": "2.
|
|
26
|
+
"node-opcua-address-space-base": "2.187.0",
|
|
27
|
+
"node-opcua-address-space-store": "2.187.0",
|
|
27
28
|
"node-opcua-assert": "2.186.7",
|
|
28
|
-
"node-opcua-basic-types": "2.
|
|
29
|
-
"node-opcua-binary-stream": "2.
|
|
30
|
-
"node-opcua-client-dynamic-extension-object": "2.
|
|
29
|
+
"node-opcua-basic-types": "2.187.0",
|
|
30
|
+
"node-opcua-binary-stream": "2.187.0",
|
|
31
|
+
"node-opcua-client-dynamic-extension-object": "2.187.0",
|
|
31
32
|
"node-opcua-constants": "2.185.0",
|
|
32
|
-
"node-opcua-crypto": "6.
|
|
33
|
-
"node-opcua-data-access": "2.
|
|
34
|
-
"node-opcua-data-model": "2.
|
|
35
|
-
"node-opcua-data-value": "2.
|
|
36
|
-
"node-opcua-date-time": "2.
|
|
33
|
+
"node-opcua-crypto": "6.2.0",
|
|
34
|
+
"node-opcua-data-access": "2.187.0",
|
|
35
|
+
"node-opcua-data-model": "2.187.0",
|
|
36
|
+
"node-opcua-data-value": "2.187.0",
|
|
37
|
+
"node-opcua-date-time": "2.187.0",
|
|
37
38
|
"node-opcua-debug": "2.186.7",
|
|
38
|
-
"node-opcua-enum": "2.
|
|
39
|
-
"node-opcua-extension-object": "2.
|
|
40
|
-
"node-opcua-factory": "2.
|
|
41
|
-
"node-opcua-nodeid": "2.
|
|
42
|
-
"node-opcua-nodeset-ua": "2.
|
|
43
|
-
"node-opcua-numeric-range": "2.
|
|
39
|
+
"node-opcua-enum": "2.187.0",
|
|
40
|
+
"node-opcua-extension-object": "2.187.0",
|
|
41
|
+
"node-opcua-factory": "2.187.0",
|
|
42
|
+
"node-opcua-nodeid": "2.187.0",
|
|
43
|
+
"node-opcua-nodeset-ua": "2.187.0",
|
|
44
|
+
"node-opcua-numeric-range": "2.187.0",
|
|
44
45
|
"node-opcua-object-registry": "2.186.7",
|
|
45
|
-
"node-opcua-pseudo-session": "2.
|
|
46
|
-
"node-opcua-service-browse": "2.
|
|
47
|
-
"node-opcua-service-call": "2.
|
|
48
|
-
"node-opcua-service-history": "2.
|
|
49
|
-
"node-opcua-service-translate-browse-path": "2.
|
|
50
|
-
"node-opcua-service-write": "2.
|
|
51
|
-
"node-opcua-status-code": "2.
|
|
52
|
-
"node-opcua-types": "2.
|
|
53
|
-
"node-opcua-utils": "2.
|
|
54
|
-
"node-opcua-variant": "2.
|
|
55
|
-
"node-opcua-xml2json": "2.
|
|
46
|
+
"node-opcua-pseudo-session": "2.187.0",
|
|
47
|
+
"node-opcua-service-browse": "2.187.0",
|
|
48
|
+
"node-opcua-service-call": "2.187.0",
|
|
49
|
+
"node-opcua-service-history": "2.187.0",
|
|
50
|
+
"node-opcua-service-translate-browse-path": "2.187.0",
|
|
51
|
+
"node-opcua-service-write": "2.187.0",
|
|
52
|
+
"node-opcua-status-code": "2.187.0",
|
|
53
|
+
"node-opcua-types": "2.187.0",
|
|
54
|
+
"node-opcua-utils": "2.187.0",
|
|
55
|
+
"node-opcua-variant": "2.187.0",
|
|
56
|
+
"node-opcua-xml2json": "2.187.0",
|
|
56
57
|
"semver": "^7.8.5",
|
|
57
58
|
"thenify-ex": "4.4.0",
|
|
58
59
|
"xml-writer": "^1.7.0"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|
|
61
62
|
"humanize": "0.0.9",
|
|
62
|
-
"node-opcua-benchmarker": "2.
|
|
63
|
+
"node-opcua-benchmarker": "2.187.0",
|
|
63
64
|
"node-opcua-leak-detector": "2.186.7",
|
|
64
|
-
"node-opcua-nodesets": "2.
|
|
65
|
-
"node-opcua-packet-analyzer": "2.
|
|
66
|
-
"node-opcua-schemas": "2.
|
|
67
|
-
"node-opcua-service-filter": "2.
|
|
65
|
+
"node-opcua-nodesets": "2.187.0",
|
|
66
|
+
"node-opcua-packet-analyzer": "2.187.0",
|
|
67
|
+
"node-opcua-schemas": "2.187.0",
|
|
68
|
+
"node-opcua-service-filter": "2.187.0",
|
|
68
69
|
"node-opcua-test-fixtures": "2.184.0",
|
|
69
70
|
"node-opcua-test-helpers": "2.184.0"
|
|
70
71
|
},
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
"internet of things"
|
|
84
85
|
],
|
|
85
86
|
"homepage": "http://node-opcua.github.io/",
|
|
86
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "3397e8ca2017b8592a50912b34c747f3da617763",
|
|
87
88
|
"files": [
|
|
88
89
|
"dist",
|
|
89
90
|
"distHelpers",
|
|
@@ -5,17 +5,23 @@ import zlib, { gunzip, gzip as gzipCb } from "node:zlib";
|
|
|
5
5
|
import type { IAddressSpace } from "node-opcua-address-space-base";
|
|
6
6
|
import { checkDebugFlag, make_debugLog, make_errorLog } from "node-opcua-debug";
|
|
7
7
|
import {
|
|
8
|
+
type CompactAddressSpace,
|
|
9
|
+
compactRecordConsumer,
|
|
8
10
|
generateAddressSpaceRaw,
|
|
9
11
|
type NamedNodesetSource,
|
|
12
|
+
NODESET2_XML_FORMAT,
|
|
10
13
|
type NodeSetLoaderOptions,
|
|
11
14
|
type NodesetSource,
|
|
12
15
|
type NodesetToImageOptions,
|
|
13
16
|
nodesetImageProblem,
|
|
14
17
|
nodesetToImage as nodesetToImageRaw,
|
|
18
|
+
openNodesetSource,
|
|
15
19
|
readNodesetImageInfo,
|
|
20
|
+
type StoreRecordApplierOptions,
|
|
16
21
|
setImageDeflater,
|
|
17
22
|
setImageInflater,
|
|
18
|
-
sha256Hex
|
|
23
|
+
sha256Hex,
|
|
24
|
+
xmlNodesetRecords
|
|
19
25
|
} from "../dist/api/index.js";
|
|
20
26
|
import { FileNodesetImageStore } from "./nodeset_image_file_store.js";
|
|
21
27
|
|
|
@@ -227,3 +233,42 @@ export async function nodesetFileToImage(source: NodesetSource | string, options
|
|
|
227
233
|
typeof source === "string" && !source.trimStart().startsWith("<") ? nodesetSourceFromFileWhole(source) : source;
|
|
228
234
|
return nodesetToImageRaw(resolved, { addressSpaceVersion: addressSpacePackageVersion(), ...options });
|
|
229
235
|
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* the NodeSet2 XML files loaded into a compact address space, in the order given, each
|
|
239
|
+
* streamed in chunks: no node object is created, the records go straight into the columns
|
|
240
|
+
*/
|
|
241
|
+
export async function generateCompactAddressSpace(
|
|
242
|
+
addressSpace: CompactAddressSpace,
|
|
243
|
+
documents: string | NodesetSource | Array<string | NodesetSource>,
|
|
244
|
+
options: StoreRecordApplierOptions = {}
|
|
245
|
+
): Promise<void> {
|
|
246
|
+
const list = Array.isArray(documents) ? documents : [documents];
|
|
247
|
+
const consumer = compactRecordConsumer(addressSpace, options);
|
|
248
|
+
for (const [index, document] of list.entries()) {
|
|
249
|
+
const source = typeof document === "string" ? nodesetSourceFromFile(document) : document;
|
|
250
|
+
const reader = openNodesetSource(source, index);
|
|
251
|
+
if ((await reader.probe()) !== NODESET2_XML_FORMAT) {
|
|
252
|
+
throw new Error(
|
|
253
|
+
`generateCompactAddressSpace: ${reader.name} is not a NodeSet2 XML document (images are not loaded into a compact space yet)`
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
for await (const record of xmlNodesetRecords(textChunks(reader.chunks()))) {
|
|
257
|
+
consumer.apply(record);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const { unresolved } = consumer.finish();
|
|
261
|
+
if (unresolved > 0) {
|
|
262
|
+
debugLog(`generateCompactAddressSpace: ${unresolved} references point at nodes no document declares`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/** the chunks of a source as text, whatever the stream yields */
|
|
267
|
+
async function* textChunks(chunks: AsyncIterable<string | Uint8Array>): AsyncGenerator<string> {
|
|
268
|
+
const decoder = new TextDecoder();
|
|
269
|
+
for await (const chunk of chunks) {
|
|
270
|
+
yield typeof chunk === "string" ? chunk : decoder.decode(chunk, { stream: true });
|
|
271
|
+
}
|
|
272
|
+
const tail = decoder.decode();
|
|
273
|
+
if (tail) yield tail;
|
|
274
|
+
}
|