node-opcua-address-space 2.186.15 → 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
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { IAddressSpace } from "node-opcua-address-space-base";
|
|
2
2
|
import { Variant } from "node-opcua-variant";
|
|
3
|
+
/**
|
|
4
|
+
* true when the variant may hold an opaque structure to resolve: only an ExtensionObject, or a
|
|
5
|
+
* Variant nested in one, can. Any other value is left as it is by resolveDynamicExtensionObject,
|
|
6
|
+
* so a Write of a number or a string needs neither a PseudoSession nor the DataType extraction.
|
|
7
|
+
*/
|
|
8
|
+
export declare function mayHoldOpaqueStructure(variant: Variant | null | undefined): boolean;
|
|
3
9
|
export declare function resolveOpaqueOnAddressSpace(addressSpace: IAddressSpace, variants: (Variant | null) | (Variant | null)[]): Promise<void>;
|
|
4
10
|
//# sourceMappingURL=resolve_opaque_on_address_space.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve_opaque_on_address_space.d.ts","sourceRoot":"","sources":["../../../api/helpers/resolve_opaque_on_address_space.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,
|
|
1
|
+
{"version":3,"file":"resolve_opaque_on_address_space.d.ts","sourceRoot":"","sources":["../../../api/helpers/resolve_opaque_on_address_space.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAY,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEnF;AAED,wBAAsB,2BAA2B,CAC7C,YAAY,EAAE,aAAa,EAC3B,QAAQ,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { resolveDynamicExtensionObject } from "node-opcua-client-dynamic-extension-object";
|
|
2
|
-
import { Variant } from "node-opcua-variant";
|
|
2
|
+
import { DataType, Variant } from "node-opcua-variant";
|
|
3
3
|
import { ensureDatatypeExtracted } from "../loader/ensure_datatype_extracted.js";
|
|
4
4
|
import { PseudoSession } from "../pseudo_session.js";
|
|
5
|
+
/**
|
|
6
|
+
* true when the variant may hold an opaque structure to resolve: only an ExtensionObject, or a
|
|
7
|
+
* Variant nested in one, can. Any other value is left as it is by resolveDynamicExtensionObject,
|
|
8
|
+
* so a Write of a number or a string needs neither a PseudoSession nor the DataType extraction.
|
|
9
|
+
*/
|
|
10
|
+
export function mayHoldOpaqueStructure(variant) {
|
|
11
|
+
return !!variant && (variant.dataType === DataType.ExtensionObject || variant.dataType === DataType.Variant);
|
|
12
|
+
}
|
|
5
13
|
export async function resolveOpaqueOnAddressSpace(addressSpace, variants) {
|
|
6
14
|
if (!variants) {
|
|
7
15
|
return;
|
|
8
16
|
}
|
|
17
|
+
if (variants instanceof Variant ? !mayHoldOpaqueStructure(variants) : !variants.some(mayHoldOpaqueStructure)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
9
20
|
const session = new PseudoSession(addressSpace);
|
|
10
21
|
const extraDataTypeManager = await ensureDatatypeExtracted(addressSpace);
|
|
11
22
|
if (variants instanceof Variant) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve_opaque_on_address_space.js","sourceRoot":"","sources":["../../../api/helpers/resolve_opaque_on_address_space.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve_opaque_on_address_space.js","sourceRoot":"","sources":["../../../api/helpers/resolve_opaque_on_address_space.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAmC;IACtE,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,YAA2B,EAC3B,QAA+C;IAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;IACD,IAAI,QAAQ,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC3G,OAAO;IACX,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACzE,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;QAC9B,MAAM,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC7E,OAAO;IACX,CAAC;IACD,oDAAoD;IACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;AACL,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export * from "../impl/event_data.js";
|
|
|
33
33
|
/** Building and maintaining a variable whose value is an array of extension objects. */
|
|
34
34
|
export { addElement, bindExtObjArrayNode, createExtObjArrayNode, removeElement } from "../impl/extension_object_array_node.js";
|
|
35
35
|
/** The default historian, installed through {@link AddressSpace.historizerFactory}. */
|
|
36
|
-
export { VariableHistorian } from "../impl/historical_access/address_space_historical_data_node.js";
|
|
36
|
+
export { createDetachedHistorian, historyReadThrough, type IHistoryReadTarget, VariableHistorian } from "../impl/historical_access/address_space_historical_data_node.js";
|
|
37
37
|
export { installReadProcessedDetails, type ReadProcessedDetailsFunc } from "../impl/historical_access/read_processed_details_hook.js";
|
|
38
38
|
/** @internal */
|
|
39
39
|
export { isNonEmptyQualifiedName, NamespaceImpl } from "../impl/namespace_impl.js";
|
|
@@ -68,7 +68,7 @@ export * from "./helpers/call_helpers.js";
|
|
|
68
68
|
export * from "./helpers/dump_tools.js";
|
|
69
69
|
export * from "./helpers/ensure_secure_access.js";
|
|
70
70
|
export * from "./helpers/make_optionals_map.js";
|
|
71
|
-
export { resolveOpaqueOnAddressSpace } from "./helpers/resolve_opaque_on_address_space.js";
|
|
71
|
+
export { mayHoldOpaqueStructure, resolveOpaqueOnAddressSpace } from "./helpers/resolve_opaque_on_address_space.js";
|
|
72
72
|
export * from "./interfaces/alarms_and_conditions/condition_info_i.js";
|
|
73
73
|
export * from "./interfaces/alarms_and_conditions/condition_snapshot.js";
|
|
74
74
|
export * from "./interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js";
|
|
@@ -112,12 +112,13 @@ export { MemoryNodesetImageStore, type NodesetImageStore, nodesetImageKey, share
|
|
|
112
112
|
export { NODESET_RECORD_SCHEMA, type NodesetDataTypeDefinitionRecord, type NodesetDefinitionField, type NodesetHeaderRecord, type NodesetModelRecord, type NodesetNodeRecord, type NodesetRecord, type NodesetRecordConsumer, type NodesetRecordProducer, type NodesetReferenceRecord, type NodesetRolePermissionRecord, recordBytes, XmlExtensionObjectFragment } from "./loader/nodeset_record.js";
|
|
113
113
|
export { type RecordsToNodeset2XMLOptions, recordsToNodeset2XML } from "./loader/nodeset_records_to_xml.js";
|
|
114
114
|
export type { NamedNodesetSource, NodesetChunk, NodesetChunkStream, NodesetContainer, NodesetSource, NodesetSourceKind } from "./loader/nodeset_source.js";
|
|
115
|
-
export { sha256Hex } from "./loader/nodeset_source.js";
|
|
115
|
+
export { openNodesetSource, sha256Hex } from "./loader/nodeset_source.js";
|
|
116
116
|
export * from "./loader/nodeset_source_helpers.js";
|
|
117
117
|
export { type NodesetToImageOptions, nodesetToImage } from "./loader/nodeset_to_image.js";
|
|
118
118
|
export { headerComplete, parseDependencies, sliceHeader } from "./loader/nodeset_xml_header.js";
|
|
119
119
|
export { makeXmlNodesetRecordReader, type XmlNodesetRecordReader, xmlNodesetRecords } from "./loader/nodeset_xml_producer.js";
|
|
120
120
|
export * from "./loader/register_node_promoter.js";
|
|
121
|
+
export { type CompactRecordConsumer, compactRecordConsumer, StoreRecordApplier, type StoreRecordApplierOptions } from "./loader/store_record_applier.js";
|
|
121
122
|
export * from "./namespace.js";
|
|
122
123
|
export type { INamespaceAlarmAndCondition } from "./namespace_alarm_and_condition.js";
|
|
123
124
|
export * from "./namespace_data_access.js";
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AActC,gBAAgB;AAChB,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,mCAAmC,EACnC,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAChC,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,wCAAwC,CAAC;AAChD;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,qCAAqC,EAAE,MAAM,uEAAuE,CAAC;AAC9H,sEAAsE;AACtE,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,gBAAgB;AAChB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC/B,MAAM,oDAAoD,CAAC;AAC5D,iCAAiC;AAEjC,gBAAgB;AAChB,OAAO,EACH,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,0DAA0D,CAAC;AAClE,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,mDAAmD,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC/H,uFAAuF;AACvF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AActC,gBAAgB;AAChB,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,mCAAmC,EACnC,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAChC,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,wCAAwC,CAAC;AAChD;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,qCAAqC,EAAE,MAAM,uEAAuE,CAAC;AAC9H,sEAAsE;AACtE,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,gBAAgB;AAChB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC/B,MAAM,oDAAoD,CAAC;AAC5D,iCAAiC;AAEjC,gBAAgB;AAChB,OAAO,EACH,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,0DAA0D,CAAC;AAClE,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,mDAAmD,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC/H,uFAAuF;AACvF,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,iBAAiB,EACpB,MAAM,iEAAiE,CAAC;AACzE,OAAO,EACH,2BAA2B,EAC3B,KAAK,wBAAwB,EAChC,MAAM,0DAA0D,CAAC;AAClE,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,oDAAoD;AACpD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC5E,qFAAqF;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,cAAc,yDAAyD,CAAC;AACxE,uEAAuE;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EACH,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,uBAAuB,EAC/B,MAAM,6CAA6C,CAAC;AACrD,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,cAAc,8BAA8B,CAAC;AAC7C,8EAA8E;AAC9E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACvF;;;;;GAKG;AACH,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AACnH,cAAc,wDAAwD,CAAC;AACvE,cAAc,0DAA0D,CAAC;AACzE,cAAc,2EAA2E,CAAC;AAC1F,cAAc,qEAAqE,CAAC;AACpF,cAAc,iFAAiF,CAAC;AAChG,cAAc,uEAAuE,CAAC;AACtF,cAAc,4EAA4E,CAAC;AAC3F,cAAc,gEAAgE,CAAC;AAC/E,cAAc,uEAAuE,CAAC;AACtF,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,0EAA0E,CAAC;AACzF,cAAc,uDAAuD,CAAC;AACtE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,uEAAuE,CAAC;AACtF,cAAc,mEAAmE,CAAC;AAClF,cAAc,yDAAyD,CAAC;AACxE,cAAc,2EAA2E,CAAC;AAC1F,cAAc,uEAAuE,CAAC;AACtF,cAAc,uDAAuD,CAAC;AACtE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,sDAAsD,CAAC;AACrE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wEAAwE,CAAC;AACvF,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qDAAqD,CAAC;AACpE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yDAAyD,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AACrH,cAAc,qCAAqC,CAAC;AACpD,OAAO,EAAE,KAAK,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACvG,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAChC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,KAAK,aAAa,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACpI,OAAO,EACH,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,eAAe,EACf,6BAA6B,EAChC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,qBAAqB,EACrB,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,WAAW,EACX,0BAA0B,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC5G,YAAY,EACR,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC1E,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC9H,cAAc,oCAAoC,CAAC;AACnD,OAAO,EACH,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,yBAAyB,EACjC,MAAM,kCAAkC,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
package/dist/api/index.js
CHANGED
|
@@ -47,7 +47,7 @@ export * from "../impl/event_data.js";
|
|
|
47
47
|
/** Building and maintaining a variable whose value is an array of extension objects. */
|
|
48
48
|
export { addElement, bindExtObjArrayNode, createExtObjArrayNode, removeElement } from "../impl/extension_object_array_node.js";
|
|
49
49
|
/** The default historian, installed through {@link AddressSpace.historizerFactory}. */
|
|
50
|
-
export { VariableHistorian } from "../impl/historical_access/address_space_historical_data_node.js";
|
|
50
|
+
export { createDetachedHistorian, historyReadThrough, VariableHistorian } from "../impl/historical_access/address_space_historical_data_node.js";
|
|
51
51
|
export { installReadProcessedDetails } from "../impl/historical_access/read_processed_details_hook.js";
|
|
52
52
|
/** @internal */
|
|
53
53
|
export { isNonEmptyQualifiedName, NamespaceImpl } from "../impl/namespace_impl.js";
|
|
@@ -81,7 +81,7 @@ export * from "./helpers/call_helpers.js";
|
|
|
81
81
|
export * from "./helpers/dump_tools.js";
|
|
82
82
|
export * from "./helpers/ensure_secure_access.js";
|
|
83
83
|
export * from "./helpers/make_optionals_map.js";
|
|
84
|
-
export { resolveOpaqueOnAddressSpace } from "./helpers/resolve_opaque_on_address_space.js";
|
|
84
|
+
export { mayHoldOpaqueStructure, resolveOpaqueOnAddressSpace } from "./helpers/resolve_opaque_on_address_space.js";
|
|
85
85
|
export * from "./interfaces/alarms_and_conditions/condition_info_i.js";
|
|
86
86
|
export * from "./interfaces/alarms_and_conditions/condition_snapshot.js";
|
|
87
87
|
export * from "./interfaces/alarms_and_conditions/instantiate_alarm_condition_options.js";
|
|
@@ -124,12 +124,13 @@ export { decodeValue, encodeValue } from "./loader/nodeset_image_codec.js";
|
|
|
124
124
|
export { MemoryNodesetImageStore, nodesetImageKey, sharedMemoryNodesetImageStore } from "./loader/nodeset_image_store.js";
|
|
125
125
|
export { NODESET_RECORD_SCHEMA, recordBytes, XmlExtensionObjectFragment } from "./loader/nodeset_record.js";
|
|
126
126
|
export { recordsToNodeset2XML } from "./loader/nodeset_records_to_xml.js";
|
|
127
|
-
export { sha256Hex } from "./loader/nodeset_source.js";
|
|
127
|
+
export { openNodesetSource, sha256Hex } from "./loader/nodeset_source.js";
|
|
128
128
|
export * from "./loader/nodeset_source_helpers.js";
|
|
129
129
|
export { nodesetToImage } from "./loader/nodeset_to_image.js";
|
|
130
130
|
export { headerComplete, parseDependencies, sliceHeader } from "./loader/nodeset_xml_header.js";
|
|
131
131
|
export { makeXmlNodesetRecordReader, xmlNodesetRecords } from "./loader/nodeset_xml_producer.js";
|
|
132
132
|
export * from "./loader/register_node_promoter.js";
|
|
133
|
+
export { compactRecordConsumer, StoreRecordApplier } from "./loader/store_record_applier.js";
|
|
133
134
|
export * from "./namespace.js";
|
|
134
135
|
export * from "./namespace_data_access.js";
|
|
135
136
|
export * from "./namespace_of.js";
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,0FAA0F;AAC1F,iEAAiE;AACjE,EAAE;AACF,0FAA0F;AAC1F,yFAAyF;AACzF,EAAE;AACF,0FAA0F;AAC1F,4FAA4F;AAC5F,uFAAuF;AACvF,0DAA0D;AAC1D,EAAE;AACF,0FAA0F;AAC1F,0FAA0F;AAC1F,gBAAgB;AAChB,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,mCAAmC,EACnC,gBAAgB,EAChB,8BAA8B,EAC9B,kCAAkC,EAClC,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,EAChC,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,gCAAgC,EAChC,oCAAoC,EACpC,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,wCAAwC,CAAC;AAChD;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,0DAA0D,CAAC;AAC1F,OAAO,EAAE,qCAAqC,EAAE,MAAM,uEAAuE,CAAC;AAC9H,sEAAsE;AACtE,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,gBAAgB;AAChB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC/B,MAAM,oDAAoD,CAAC;AAC5D,iCAAiC;AACjC,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EAC5B,MAAM,0DAA0D,CAAC;AAClE,iCAAiC;AACjC,gBAAgB;AAChB,OAAO,EACH,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,mDAAmD,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC/H,uFAAuF;AACvF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-address-space
|
|
3
|
+
*
|
|
4
|
+
* The nodeset records written straight into a compact store: no node object is created.
|
|
5
|
+
* Same producer as the object applier (NodesetRecordApplier), other sink.
|
|
6
|
+
*/
|
|
7
|
+
import { type CompactStore, type StoreAddressSpace } from "node-opcua-address-space-store";
|
|
8
|
+
import type { NodeSetPermissionsPolicy } from "../interfaces/nodeset_loader_options.js";
|
|
9
|
+
import { type NodesetRecord, type NodesetRecordConsumer } from "./nodeset_record.js";
|
|
10
|
+
/** who hands out namespace indexes: the address space, or a plain table in a test */
|
|
11
|
+
export interface NamespaceRegistry {
|
|
12
|
+
/** the index of a namespace, registering it when it is new */
|
|
13
|
+
indexOf(namespaceUri: string): number;
|
|
14
|
+
}
|
|
15
|
+
/** the same two policies as the object loader, with the same defaults */
|
|
16
|
+
export interface StoreRecordApplierOptions {
|
|
17
|
+
/** the nodeset's RolePermissions: kept (the default) or dropped */
|
|
18
|
+
permissions?: NodeSetPermissionsPolicy;
|
|
19
|
+
/** the nodeset's AccessRestrictions: kept, or dropped (the default) */
|
|
20
|
+
accessRestrictions?: NodeSetPermissionsPolicy;
|
|
21
|
+
}
|
|
22
|
+
export declare class StoreRecordApplier implements NodesetRecordConsumer {
|
|
23
|
+
#private;
|
|
24
|
+
constructor(store: CompactStore, namespaces: NamespaceRegistry, options?: StoreRecordApplierOptions);
|
|
25
|
+
/** nodes applied by this applier */
|
|
26
|
+
get nodeCount(): number;
|
|
27
|
+
apply(record: NodesetRecord): void;
|
|
28
|
+
/** at the end of a document, or of a set of documents: resolve the references that waited */
|
|
29
|
+
finish(): {
|
|
30
|
+
unresolved: number;
|
|
31
|
+
};
|
|
32
|
+
/** values kept as objects (strings, arrays, structures) */
|
|
33
|
+
get objectValueCount(): number;
|
|
34
|
+
/** extension object values the document gave as XML, left unset (BadWaitingForInitialData) */
|
|
35
|
+
get deferredValueCount(): number;
|
|
36
|
+
}
|
|
37
|
+
/** what a compact address space is loaded through: the records go in, finish() once they are all in */
|
|
38
|
+
export interface CompactRecordConsumer extends NodesetRecordConsumer {
|
|
39
|
+
finish(): {
|
|
40
|
+
unresolved: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* the consumer a nodeset producer feeds to load a compact address space: the records written
|
|
45
|
+
* into its store, the namespaces registered on it, and what the space derives from its columns
|
|
46
|
+
* derived again at the end
|
|
47
|
+
*/
|
|
48
|
+
export declare function compactRecordConsumer(space: StoreAddressSpace, options?: StoreRecordApplierOptions): CompactRecordConsumer;
|
|
49
|
+
//# sourceMappingURL=store_record_applier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store_record_applier.d.ts","sourceRoot":"","sources":["../../../api/loader/store_record_applier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,YAAY,EAAqC,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAI9H,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAE7B,MAAM,qBAAqB,CAAC;AAI7B,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAC9B,8DAA8D;IAC9D,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;CACzC;AAED,yEAAyE;AACzE,MAAM,WAAW,yBAAyB;IACtC,mEAAmE;IACnE,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;CACjD;AAED,qBAAa,kBAAmB,YAAW,qBAAqB;;IAiB5D,YAAY,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,GAAE,yBAA8B,EAKtG;IAED,oCAAoC;IACpC,IAAW,SAAS,IAAI,MAAM,CAE7B;IAEM,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CASxC;IAED,6FAA6F;IACtF,MAAM,IAAI;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAoBtC;IAuHD,2DAA2D;IAC3D,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,8FAA8F;IAC9F,IAAW,kBAAkB,IAAI,MAAM,CAEtC;CACJ;AAsBD,uGAAuG;AACvG,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAChE,MAAM,IAAI;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,GAAE,yBAA8B,GAAG,qBAAqB,CAU9H"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module node-opcua-address-space
|
|
3
|
+
*
|
|
4
|
+
* The nodeset records written straight into a compact store: no node object is created.
|
|
5
|
+
* Same producer as the object applier (NodesetRecordApplier), other sink.
|
|
6
|
+
*/
|
|
7
|
+
import { NO_NODE } from "node-opcua-address-space-store";
|
|
8
|
+
import { NodeClass } from "node-opcua-data-model";
|
|
9
|
+
import { NodeId } from "node-opcua-nodeid";
|
|
10
|
+
import { DataType, VariantArrayType } from "node-opcua-variant";
|
|
11
|
+
import { XmlExtensionObjectFragment } from "./nodeset_record.js";
|
|
12
|
+
const UA_NAMESPACE_URI = "http://opcfoundation.org/UA/";
|
|
13
|
+
export class StoreRecordApplier {
|
|
14
|
+
// per document: the file's namespace table to the store's
|
|
15
|
+
#table = [];
|
|
16
|
+
#headerSeen = false;
|
|
17
|
+
#nodeCount = 0;
|
|
18
|
+
#pendingValues = 0;
|
|
19
|
+
#deferredValues = 0;
|
|
20
|
+
// a type definition or data type declared before its node exists: set at finish()
|
|
21
|
+
#deferredTypeDefinitions = [];
|
|
22
|
+
#deferredDataTypes = [];
|
|
23
|
+
#deferredParents = [];
|
|
24
|
+
#store;
|
|
25
|
+
#namespaces;
|
|
26
|
+
#loadTime = Date.now();
|
|
27
|
+
#keepPermissions;
|
|
28
|
+
#keepAccessRestrictions;
|
|
29
|
+
constructor(store, namespaces, options = {}) {
|
|
30
|
+
this.#store = store;
|
|
31
|
+
this.#namespaces = namespaces;
|
|
32
|
+
this.#keepPermissions = (options.permissions ?? "apply") === "apply";
|
|
33
|
+
this.#keepAccessRestrictions = (options.accessRestrictions ?? "ignore") === "apply";
|
|
34
|
+
}
|
|
35
|
+
/** nodes applied by this applier */
|
|
36
|
+
get nodeCount() {
|
|
37
|
+
return this.#nodeCount;
|
|
38
|
+
}
|
|
39
|
+
apply(record) {
|
|
40
|
+
if (record.kind === "header") {
|
|
41
|
+
this.#applyHeader(record);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!this.#headerSeen) {
|
|
45
|
+
throw new Error("StoreRecordApplier: a node record came before the header record");
|
|
46
|
+
}
|
|
47
|
+
this.#applyNode(record);
|
|
48
|
+
}
|
|
49
|
+
/** at the end of a document, or of a set of documents: resolve the references that waited */
|
|
50
|
+
finish() {
|
|
51
|
+
const store = this.#store;
|
|
52
|
+
const unresolved = store.resolvePending();
|
|
53
|
+
for (const [i, nodeId] of this.#deferredTypeDefinitions) {
|
|
54
|
+
const t = store.find(nodeId);
|
|
55
|
+
if (t !== NO_NODE)
|
|
56
|
+
store.nodes.setTypeDefinition(i, t);
|
|
57
|
+
}
|
|
58
|
+
for (const [i, nodeId] of this.#deferredDataTypes) {
|
|
59
|
+
const t = store.find(nodeId);
|
|
60
|
+
if (t !== NO_NODE)
|
|
61
|
+
store.nodes.setDataType(i, t);
|
|
62
|
+
}
|
|
63
|
+
for (const [i, nodeId] of this.#deferredParents) {
|
|
64
|
+
const t = store.find(nodeId);
|
|
65
|
+
if (t !== NO_NODE)
|
|
66
|
+
store.nodes.setParent(i, t);
|
|
67
|
+
}
|
|
68
|
+
this.#deferredTypeDefinitions = [];
|
|
69
|
+
this.#deferredDataTypes = [];
|
|
70
|
+
this.#deferredParents = [];
|
|
71
|
+
store.finish();
|
|
72
|
+
return { unresolved: unresolved.length };
|
|
73
|
+
}
|
|
74
|
+
#applyHeader(header) {
|
|
75
|
+
this.#headerSeen = true;
|
|
76
|
+
this.#table = [];
|
|
77
|
+
for (const model of header.models) {
|
|
78
|
+
this.#namespaces.indexOf(model.modelUri);
|
|
79
|
+
}
|
|
80
|
+
if (header.models.length === 0) {
|
|
81
|
+
for (const uri of header.namespaceUris) {
|
|
82
|
+
this.#namespaces.indexOf(uri);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// the file's table: the UA namespace, then the declared URIs in order; a repeat takes no slot
|
|
86
|
+
const seen = new Set();
|
|
87
|
+
for (const uri of [UA_NAMESPACE_URI, ...header.namespaceUris]) {
|
|
88
|
+
if (seen.has(uri))
|
|
89
|
+
continue;
|
|
90
|
+
seen.add(uri);
|
|
91
|
+
this.#table.push(this.#namespaces.indexOf(uri));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
#translateNamespace(fileIndex) {
|
|
95
|
+
const index = this.#table[fileIndex];
|
|
96
|
+
if (index === undefined) {
|
|
97
|
+
throw new Error(`StoreRecordApplier: no namespace for file index ${fileIndex}`);
|
|
98
|
+
}
|
|
99
|
+
return index;
|
|
100
|
+
}
|
|
101
|
+
#translate(fileLocal) {
|
|
102
|
+
const namespace = this.#translateNamespace(fileLocal.namespace);
|
|
103
|
+
return namespace === fileLocal.namespace ? fileLocal : new NodeId(fileLocal.identifierType, fileLocal.value, namespace);
|
|
104
|
+
}
|
|
105
|
+
#applyNode(record) {
|
|
106
|
+
const store = this.#store;
|
|
107
|
+
const nodeId = this.#translate(record.nodeId);
|
|
108
|
+
const i = store.addNode({
|
|
109
|
+
nodeId,
|
|
110
|
+
nodeClass: record.nodeClass,
|
|
111
|
+
browseName: record.browseName.name ?? "",
|
|
112
|
+
browseNameNamespace: this.#translateNamespace(record.browseName.namespaceIndex),
|
|
113
|
+
displayName: record.displayName && record.displayName !== record.browseName.name ? record.displayName : null,
|
|
114
|
+
description: record.description ?? null,
|
|
115
|
+
valueRank: record.valueRank,
|
|
116
|
+
// the document gives the levels as numbers; CurrentRead when it says nothing, and the
|
|
117
|
+
// user level follows the node's unless declared (same reading as the object applier)
|
|
118
|
+
accessLevel: parseAccessLevel(record.accessLevel, 1),
|
|
119
|
+
userAccessLevel: record.userAccessLevel ? parseAccessLevel(record.userAccessLevel, 1) : undefined,
|
|
120
|
+
minimumSamplingInterval: record.minimumSamplingInterval,
|
|
121
|
+
historizing: record.historizing,
|
|
122
|
+
eventNotifier: record.eventNotifier,
|
|
123
|
+
isAbstract: record.isAbstract,
|
|
124
|
+
symmetric: record.symmetric,
|
|
125
|
+
inverseName: record.inverseName ?? null,
|
|
126
|
+
containsNoLoops: record.containsNoLoops,
|
|
127
|
+
accessRestrictions: this.#keepAccessRestrictions ? parseAccessRestrictions(record.accessRestrictions) : undefined,
|
|
128
|
+
rolePermissions: this.#keepPermissions ? this.#rolePermissions(record) : undefined
|
|
129
|
+
});
|
|
130
|
+
this.#nodeCount++;
|
|
131
|
+
for (const reference of record.references) {
|
|
132
|
+
const referenceType = this.#translate(reference.referenceType);
|
|
133
|
+
const target = this.#translate(reference.nodeId);
|
|
134
|
+
store.addReference(i, referenceType, reference.isForward, target);
|
|
135
|
+
// the type definition and the data type are also columns, kept resolved by index
|
|
136
|
+
if (reference.isForward && referenceType.namespace === 0 && referenceType.value === 40 /* HasTypeDefinition */) {
|
|
137
|
+
const t = store.find(target);
|
|
138
|
+
if (t !== NO_NODE)
|
|
139
|
+
store.nodes.setTypeDefinition(i, t);
|
|
140
|
+
else
|
|
141
|
+
this.#deferredTypeDefinitions.push([i, target]);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (record.dataType) {
|
|
145
|
+
const dataTypeId = this.#translate(record.dataType);
|
|
146
|
+
const dataType = store.find(dataTypeId);
|
|
147
|
+
if (dataType !== NO_NODE)
|
|
148
|
+
store.nodes.setDataType(i, dataType);
|
|
149
|
+
else
|
|
150
|
+
this.#deferredDataTypes.push([i, dataTypeId]);
|
|
151
|
+
}
|
|
152
|
+
if (record.parentNodeId) {
|
|
153
|
+
const parentId = this.#translate(record.parentNodeId);
|
|
154
|
+
const parent = store.find(parentId);
|
|
155
|
+
if (parent !== NO_NODE)
|
|
156
|
+
store.nodes.setParent(i, parent);
|
|
157
|
+
else
|
|
158
|
+
this.#deferredParents.push([i, parentId]);
|
|
159
|
+
}
|
|
160
|
+
if (record.value && (record.nodeClass === NodeClass.Variable || record.nodeClass === NodeClass.VariableType)) {
|
|
161
|
+
this.#applyValue(i, record.value);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
#rolePermissions(record) {
|
|
165
|
+
if (record.rolePermissions) {
|
|
166
|
+
return record.rolePermissions.map((r) => ({ roleId: this.#translate(r.roleId), permissions: r.permissions }));
|
|
167
|
+
}
|
|
168
|
+
// HasNoPermissions grants nothing; an absent RolePermissions inherits the namespace default
|
|
169
|
+
return record.hasNoPermissions ? [] : undefined;
|
|
170
|
+
}
|
|
171
|
+
#applyValue(i, value) {
|
|
172
|
+
if (holdsXmlFragment(value.value)) {
|
|
173
|
+
// an extension object the loader left as its XML: the node objects decode it once every
|
|
174
|
+
// document is in; the store has no decoder yet, so the Variable waits for a value rather
|
|
175
|
+
// than serve something a client cannot decode
|
|
176
|
+
this.#deferredValues++;
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const now = this.#loadTime;
|
|
180
|
+
const dataType = (typeof value.dataType === "string" ? DataType[value.dataType] : value.dataType) ??
|
|
181
|
+
DataType.Null;
|
|
182
|
+
const isScalar = value.arrayType === undefined || value.arrayType === VariantArrayType.Scalar;
|
|
183
|
+
const v = value.value;
|
|
184
|
+
if (isScalar && (typeof v === "number" || typeof v === "boolean")) {
|
|
185
|
+
this.#store.values.setScalar(i, dataType, v, 0, now, now);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
this.#store.values.setObject(i, dataType, value, 0, now, now);
|
|
189
|
+
this.#pendingValues++;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/** values kept as objects (strings, arrays, structures) */
|
|
193
|
+
get objectValueCount() {
|
|
194
|
+
return this.#pendingValues;
|
|
195
|
+
}
|
|
196
|
+
/** extension object values the document gave as XML, left unset (BadWaitingForInitialData) */
|
|
197
|
+
get deferredValueCount() {
|
|
198
|
+
return this.#deferredValues;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/** true when a value is, or holds, an extension object still in its XML form */
|
|
202
|
+
function holdsXmlFragment(value) {
|
|
203
|
+
if (value instanceof XmlExtensionObjectFragment)
|
|
204
|
+
return true;
|
|
205
|
+
return Array.isArray(value) && value.some((element) => element instanceof XmlExtensionObjectFragment);
|
|
206
|
+
}
|
|
207
|
+
function parseAccessLevel(text, absent) {
|
|
208
|
+
const value = parseInt(text || "", 10);
|
|
209
|
+
return Number.isNaN(value) ? absent : value;
|
|
210
|
+
}
|
|
211
|
+
/** the AccessRestrictions attribute of the document: a number; absent or invalid inherits */
|
|
212
|
+
function parseAccessRestrictions(text) {
|
|
213
|
+
if (text === undefined || text === "") {
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
216
|
+
const value = parseInt(text, 10);
|
|
217
|
+
return Number.isNaN(value) ? undefined : value & 0xf;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* the consumer a nodeset producer feeds to load a compact address space: the records written
|
|
221
|
+
* into its store, the namespaces registered on it, and what the space derives from its columns
|
|
222
|
+
* derived again at the end
|
|
223
|
+
*/
|
|
224
|
+
export function compactRecordConsumer(space, options = {}) {
|
|
225
|
+
const applier = new StoreRecordApplier(space.store, { indexOf: (uri) => space.namespaceIndexOf(uri) }, options);
|
|
226
|
+
return {
|
|
227
|
+
apply: (record) => applier.apply(record),
|
|
228
|
+
finish: () => {
|
|
229
|
+
const result = applier.finish();
|
|
230
|
+
space.finishLoad();
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=store_record_applier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store_record_applier.js","sourceRoot":"","sources":["../../../api/loader/store_record_applier.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,6 +158,7 @@ export type RoleIdLike = NodeIdLike | QualifiedNameLike;
|
|
|
158
158
|
*/
|
|
159
159
|
export declare function makeRoles(roleIds: RoleIdLike[] | string | WellKnownRoles, addressSpace?: IAddressSpace): NodeId[];
|
|
160
160
|
export declare class SessionContext implements ISessionContext {
|
|
161
|
+
#private;
|
|
161
162
|
static defaultContext: SessionContext;
|
|
162
163
|
object: UAObject | UAObjectType | undefined;
|
|
163
164
|
currentTime?: PreciseClock;
|
|
@@ -184,6 +185,15 @@ export declare class SessionContext implements ISessionContext {
|
|
|
184
185
|
* see {@link ISessionContext.getAuditEntryId}.
|
|
185
186
|
*/
|
|
186
187
|
getAuditEntryId(): string | undefined;
|
|
188
|
+
/**
|
|
189
|
+
* see {@link ISessionContext.withPermissionCache}.
|
|
190
|
+
*
|
|
191
|
+
* A Session's sessionContext is shared by every request in flight on it, so the cache only
|
|
192
|
+
* lives while `action` runs, and `action` must not wait on anything: a request served in
|
|
193
|
+
* one synchronous run cannot be interleaved with another one. Nested calls share the
|
|
194
|
+
* outermost cache.
|
|
195
|
+
*/
|
|
196
|
+
withPermissionCache<T>(action: () => T): T;
|
|
187
197
|
/**
|
|
188
198
|
* The client's application-instance certificate,
|
|
189
199
|
* or `null` if no secure channel is available.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_context.d.ts","sourceRoot":"","sources":["../../api/session_context.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,sEAAsE;AAEtE,OAAO,KAAK,EACR,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,YAAY,EAEf,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAiD,MAAM,uBAAuB,CAAC;AACxG,OAAO,EACH,sBAAsB,EAKtB,cAAc,EACd,KAAK,iBAAiB,EAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAA6B,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACH,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,kBAAkB,CAAC;AAM1B,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,iBAAiB,CAAC;AA6BtG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB;aAC7B,SAAS;aACT,iBAAiB;aACjB,cAAc;aACd,QAAQ;aACR,QAAQ;aACR,QAAQ;aACR,aAAa;aACb,UAAU;CACJ,CAAC;AACX;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAChC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CACnD;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mCAAmC;IACnC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC1B,YAAY,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAAC;CACrG;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,0BAA0B,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,WAAW;IACxB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,kBAAkB,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAChD,8DAA8D;IAC9D,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC;;;OAGG;IACH,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CAC3D;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,YAAY,CAAqB;IAC3C,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAkB;IACtC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"session_context.d.ts","sourceRoot":"","sources":["../../api/session_context.ts"],"names":[],"mappings":"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"}
|