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.
Files changed (80) hide show
  1. package/api/address_space_public.ts +16 -0
  2. package/api/helpers/resolve_opaque_on_address_space.ts +13 -1
  3. package/api/index.ts +14 -3
  4. package/api/loader/store_record_applier.ts +267 -0
  5. package/api/session_context.ts +116 -27
  6. package/dist/api/address_space_public.d.ts +14 -0
  7. package/dist/api/address_space_public.d.ts.map +1 -1
  8. package/dist/api/address_space_public.js +3 -0
  9. package/dist/api/address_space_public.js.map +1 -1
  10. package/dist/api/helpers/resolve_opaque_on_address_space.d.ts +6 -0
  11. package/dist/api/helpers/resolve_opaque_on_address_space.d.ts.map +1 -1
  12. package/dist/api/helpers/resolve_opaque_on_address_space.js +12 -1
  13. package/dist/api/helpers/resolve_opaque_on_address_space.js.map +1 -1
  14. package/dist/api/index.d.ts +4 -3
  15. package/dist/api/index.d.ts.map +1 -1
  16. package/dist/api/index.js +4 -3
  17. package/dist/api/index.js.map +1 -1
  18. package/dist/api/loader/store_record_applier.d.ts +49 -0
  19. package/dist/api/loader/store_record_applier.d.ts.map +1 -0
  20. package/dist/api/loader/store_record_applier.js +235 -0
  21. package/dist/api/loader/store_record_applier.js.map +1 -0
  22. package/dist/api/session_context.d.ts +10 -0
  23. package/dist/api/session_context.d.ts.map +1 -1
  24. package/dist/api/session_context.js +100 -27
  25. package/dist/api/session_context.js.map +1 -1
  26. package/dist/impl/address_space.d.ts +2 -0
  27. package/dist/impl/address_space.d.ts.map +1 -1
  28. package/dist/impl/address_space.js +12 -2
  29. package/dist/impl/address_space.js.map +1 -1
  30. package/dist/impl/base_node_impl.d.ts +12 -0
  31. package/dist/impl/base_node_impl.d.ts.map +1 -1
  32. package/dist/impl/base_node_impl.js +35 -29
  33. package/dist/impl/base_node_impl.js.map +1 -1
  34. package/dist/impl/base_node_private.d.ts +5 -5
  35. package/dist/impl/base_node_private.d.ts.map +1 -1
  36. package/dist/impl/base_node_private.js +11 -5
  37. package/dist/impl/base_node_private.js.map +1 -1
  38. package/dist/impl/extension_object_array_node.d.ts +4 -2
  39. package/dist/impl/extension_object_array_node.d.ts.map +1 -1
  40. package/dist/impl/extension_object_array_node.js +5 -2
  41. package/dist/impl/extension_object_array_node.js.map +1 -1
  42. package/dist/impl/historical_access/address_space_historical_data_node.d.ts +26 -2
  43. package/dist/impl/historical_access/address_space_historical_data_node.d.ts.map +1 -1
  44. package/dist/impl/historical_access/address_space_historical_data_node.js +39 -0
  45. package/dist/impl/historical_access/address_space_historical_data_node.js.map +1 -1
  46. package/dist/impl/namespace_impl.d.ts.map +1 -1
  47. package/dist/impl/namespace_impl.js +3 -1
  48. package/dist/impl/namespace_impl.js.map +1 -1
  49. package/dist/impl/nodeset_tools/construct_namespace_dependency.d.ts.map +1 -1
  50. package/dist/impl/nodeset_tools/construct_namespace_dependency.js +28 -0
  51. package/dist/impl/nodeset_tools/construct_namespace_dependency.js.map +1 -1
  52. package/dist/impl/reference_impl.d.ts +2 -1
  53. package/dist/impl/reference_impl.d.ts.map +1 -1
  54. package/dist/impl/reference_impl.js +6 -5
  55. package/dist/impl/reference_impl.js.map +1 -1
  56. package/dist/impl/reference_index.d.ts +22 -0
  57. package/dist/impl/reference_index.d.ts.map +1 -0
  58. package/dist/impl/reference_index.js +104 -0
  59. package/dist/impl/reference_index.js.map +1 -0
  60. package/dist/impl/ua_variable_impl.d.ts +8 -0
  61. package/dist/impl/ua_variable_impl.d.ts.map +1 -1
  62. package/dist/impl/ua_variable_impl.js +121 -84
  63. package/dist/impl/ua_variable_impl.js.map +1 -1
  64. package/dist/tsconfig_base.tsbuildinfo +1 -1
  65. package/distNodeJS/generate_address_space.d.ts +6 -1
  66. package/distNodeJS/generate_address_space.d.ts.map +1 -1
  67. package/distNodeJS/generate_address_space.js +33 -1
  68. package/distNodeJS/generate_address_space.js.map +1 -1
  69. package/impl/address_space.ts +16 -2
  70. package/impl/base_node_impl.ts +52 -30
  71. package/impl/base_node_private.ts +16 -10
  72. package/impl/extension_object_array_node.ts +12 -3
  73. package/impl/historical_access/address_space_historical_data_node.ts +64 -1
  74. package/impl/namespace_impl.ts +3 -1
  75. package/impl/nodeset_tools/construct_namespace_dependency.ts +23 -1
  76. package/impl/reference_impl.ts +6 -5
  77. package/impl/reference_index.ts +116 -0
  78. package/impl/ua_variable_impl.ts +161 -94
  79. package/package.json +34 -33
  80. 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,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,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,CAgBf"}
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;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,YAA2B,EAC3B,QAA+C;IAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,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"}
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"}
@@ -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";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"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"}
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";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"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"}
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":"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"}
1
+ {"version":3,"file":"session_context.d.ts","sourceRoot":"","sources":["../../api/session_context.ts"],"names":[],"mappings":"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"}