node-opcua-server 2.113.0 → 2.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -57,290 +48,269 @@ class AddressSpaceAccessor {
57
48
  constructor(addressSpace) {
58
49
  this.addressSpace = addressSpace;
59
50
  }
60
- browse(context, nodesToBrowse) {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const results = [];
63
- for (const browseDescription of nodesToBrowse) {
64
- results.push(yield this.browseNode(browseDescription, context));
65
- (0, node_opcua_assert_1.default)(browseDescription.nodeId, "expecting a nodeId");
66
- }
67
- return results;
68
- });
51
+ async browse(context, nodesToBrowse) {
52
+ const results = [];
53
+ for (const browseDescription of nodesToBrowse) {
54
+ results.push(await this.browseNode(browseDescription, context));
55
+ (0, node_opcua_assert_1.default)(browseDescription.nodeId, "expecting a nodeId");
56
+ }
57
+ return results;
69
58
  }
70
- read(context, readRequest) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- /**
73
- *
74
- *
75
- * @param {number} maxAge: Maximum age of the value to be read in milliseconds.
76
- *
77
- * The age of the value is based on the difference between
78
- * the ServerTimestamp and the time when the Server starts processing the request. For example if the Client
79
- * specifies a maxAge of 500 milliseconds and it takes 100 milliseconds until the Server starts processing
80
- * the request, the age of the returned value could be 600 milliseconds prior to the time it was requested.
81
- * If the Server has one or more values of an Attribute that are within the maximum age, it can return any one
82
- * of the values or it can read a new value from the data source. The number of values of an Attribute that
83
- * a Server has depends on the number of MonitoredItems that are defined for the Attribute. In any case,
84
- * the Client can make no assumption about which copy of the data will be returned.
85
- * If the Server does not have a value that is within the maximum age, it shall attempt to read a new value
86
- * from the data source.
87
- * If the Server cannot meet the requested maxAge, it returns its 'best effort' value rather than rejecting the
88
- * request.
89
- * This may occur when the time it takes the Server to process and return the new data value after it has been
90
- * accessed is greater than the specified maximum age.
91
- * If maxAge is set to 0, the Server shall attempt to read a new value from the data source.
92
- * If maxAge is set to the max Int32 value or greater, the Server shall attempt to get a cached value.
93
- * Negative values are invalid for maxAge.
94
- */
95
- readRequest.maxAge = readRequest.maxAge || 0;
96
- const timestampsToReturn = readRequest.timestampsToReturn;
97
- const nodesToRead = readRequest.nodesToRead || [];
98
- context.currentTime = (0, node_opcua_date_time_1.getCurrentClock)();
99
- const dataValues = [];
100
- for (const readValueId of nodesToRead) {
101
- const dataValue = yield this.readNode(context, readValueId, readRequest.maxAge, timestampsToReturn);
102
- dataValues.push(dataValue);
103
- }
104
- return dataValues;
105
- });
59
+ async read(context, readRequest) {
60
+ /**
61
+ *
62
+ *
63
+ * @param {number} maxAge: Maximum age of the value to be read in milliseconds.
64
+ *
65
+ * The age of the value is based on the difference between
66
+ * the ServerTimestamp and the time when the Server starts processing the request. For example if the Client
67
+ * specifies a maxAge of 500 milliseconds and it takes 100 milliseconds until the Server starts processing
68
+ * the request, the age of the returned value could be 600 milliseconds prior to the time it was requested.
69
+ * If the Server has one or more values of an Attribute that are within the maximum age, it can return any one
70
+ * of the values or it can read a new value from the data source. The number of values of an Attribute that
71
+ * a Server has depends on the number of MonitoredItems that are defined for the Attribute. In any case,
72
+ * the Client can make no assumption about which copy of the data will be returned.
73
+ * If the Server does not have a value that is within the maximum age, it shall attempt to read a new value
74
+ * from the data source.
75
+ * If the Server cannot meet the requested maxAge, it returns its 'best effort' value rather than rejecting the
76
+ * request.
77
+ * This may occur when the time it takes the Server to process and return the new data value after it has been
78
+ * accessed is greater than the specified maximum age.
79
+ * If maxAge is set to 0, the Server shall attempt to read a new value from the data source.
80
+ * If maxAge is set to the max Int32 value or greater, the Server shall attempt to get a cached value.
81
+ * Negative values are invalid for maxAge.
82
+ */
83
+ readRequest.maxAge = readRequest.maxAge || 0;
84
+ const timestampsToReturn = readRequest.timestampsToReturn;
85
+ const nodesToRead = readRequest.nodesToRead || [];
86
+ context.currentTime = (0, node_opcua_date_time_1.getCurrentClock)();
87
+ const dataValues = [];
88
+ for (const readValueId of nodesToRead) {
89
+ const dataValue = await this.readNode(context, readValueId, readRequest.maxAge, timestampsToReturn);
90
+ dataValues.push(dataValue);
91
+ }
92
+ return dataValues;
106
93
  }
107
- write(context, nodesToWrite) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- context.currentTime = (0, node_opcua_date_time_1.getCurrentClock)();
110
- yield (0, node_opcua_address_space_1.ensureDatatypeExtracted)(this.addressSpace);
111
- const results = [];
112
- for (const writeValue of nodesToWrite) {
113
- const statusCode = yield this.writeNode(context, writeValue);
114
- results.push(statusCode);
115
- }
116
- return results;
117
- });
94
+ async write(context, nodesToWrite) {
95
+ context.currentTime = (0, node_opcua_date_time_1.getCurrentClock)();
96
+ await (0, node_opcua_address_space_1.ensureDatatypeExtracted)(this.addressSpace);
97
+ const results = [];
98
+ for (const writeValue of nodesToWrite) {
99
+ const statusCode = await this.writeNode(context, writeValue);
100
+ results.push(statusCode);
101
+ }
102
+ return results;
118
103
  }
119
- call(context, methodsToCall) {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- const results = [];
122
- yield (0, node_opcua_address_space_1.ensureDatatypeExtracted)(this.addressSpace);
123
- for (const methodToCall of methodsToCall) {
124
- const result = yield this.callMethod(context, methodToCall);
125
- results.push(result);
126
- }
127
- return results;
128
- });
104
+ async call(context, methodsToCall) {
105
+ const results = [];
106
+ await (0, node_opcua_address_space_1.ensureDatatypeExtracted)(this.addressSpace);
107
+ for (const methodToCall of methodsToCall) {
108
+ const result = await this.callMethod(context, methodToCall);
109
+ results.push(result);
110
+ }
111
+ return results;
129
112
  }
130
- historyRead(context, historyReadRequest) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
133
- (0, node_opcua_assert_1.default)(historyReadRequest instanceof node_opcua_types_1.HistoryReadRequest);
134
- const timestampsToReturn = historyReadRequest.timestampsToReturn;
135
- const historyReadDetails = historyReadRequest.historyReadDetails;
136
- const releaseContinuationPoints = historyReadRequest.releaseContinuationPoints;
137
- (0, node_opcua_assert_1.default)(historyReadDetails instanceof node_opcua_types_1.HistoryReadDetails);
138
- // ReadAnnotationDataDetails | ReadAtTimeDetails | ReadEventDetails | ReadProcessedDetails | ReadRawModifiedDetails;
139
- const nodesToRead = historyReadRequest.nodesToRead || [];
140
- (0, node_opcua_assert_1.default)(Array.isArray(nodesToRead));
141
- const _q = (m) => __awaiter(this, void 0, void 0, function* () {
142
- const continuationPoint = m.nodeToRead.continuationPoint;
143
- return yield this.historyReadNode(context, m.nodeToRead, m.processDetail, timestampsToReturn, {
144
- continuationPoint,
145
- releaseContinuationPoints /**, index = ??? */
146
- });
113
+ async historyRead(context, historyReadRequest) {
114
+ (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
115
+ (0, node_opcua_assert_1.default)(historyReadRequest instanceof node_opcua_types_1.HistoryReadRequest);
116
+ const timestampsToReturn = historyReadRequest.timestampsToReturn;
117
+ const historyReadDetails = historyReadRequest.historyReadDetails;
118
+ const releaseContinuationPoints = historyReadRequest.releaseContinuationPoints;
119
+ (0, node_opcua_assert_1.default)(historyReadDetails instanceof node_opcua_types_1.HistoryReadDetails);
120
+ // ReadAnnotationDataDetails | ReadAtTimeDetails | ReadEventDetails | ReadProcessedDetails | ReadRawModifiedDetails;
121
+ const nodesToRead = historyReadRequest.nodesToRead || [];
122
+ (0, node_opcua_assert_1.default)(Array.isArray(nodesToRead));
123
+ const _q = async (m) => {
124
+ const continuationPoint = m.nodeToRead.continuationPoint;
125
+ return await this.historyReadNode(context, m.nodeToRead, m.processDetail, timestampsToReturn, {
126
+ continuationPoint,
127
+ releaseContinuationPoints /**, index = ??? */
147
128
  });
148
- if (historyReadDetails instanceof node_opcua_types_1.ReadProcessedDetails) {
149
- //
150
- if (!historyReadDetails.aggregateType || historyReadDetails.aggregateType.length !== nodesToRead.length) {
151
- return [new node_opcua_types_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidArgument })];
152
- }
153
- const parameterStatus = checkReadProcessedDetails(historyReadDetails);
154
- if (parameterStatus !== node_opcua_status_code_1.StatusCodes.Good) {
155
- return [new node_opcua_types_1.HistoryReadResult({ statusCode: parameterStatus })];
156
- }
157
- const promises = [];
158
- let index = 0;
159
- for (const nodeToRead of nodesToRead) {
160
- const aggregateType = historyReadDetails.aggregateType[index];
161
- const processDetail = new node_opcua_types_1.ReadProcessedDetails(Object.assign(Object.assign({}, historyReadDetails), { aggregateType: [aggregateType] }));
162
- promises.push(_q({ nodeToRead, processDetail, index }));
163
- index++;
164
- }
165
- const results = yield Promise.all(promises);
166
- return results;
129
+ };
130
+ if (historyReadDetails instanceof node_opcua_types_1.ReadProcessedDetails) {
131
+ //
132
+ if (!historyReadDetails.aggregateType || historyReadDetails.aggregateType.length !== nodesToRead.length) {
133
+ return [new node_opcua_types_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadInvalidArgument })];
134
+ }
135
+ const parameterStatus = checkReadProcessedDetails(historyReadDetails);
136
+ if (parameterStatus !== node_opcua_status_code_1.StatusCodes.Good) {
137
+ return [new node_opcua_types_1.HistoryReadResult({ statusCode: parameterStatus })];
167
138
  }
168
- const _r = (nodeToRead, index) => __awaiter(this, void 0, void 0, function* () {
169
- const continuationPoint = nodeToRead.continuationPoint;
170
- return yield this.historyReadNode(context, nodeToRead, historyReadDetails, timestampsToReturn, {
171
- continuationPoint,
172
- releaseContinuationPoints,
173
- index
174
- });
175
- });
176
139
  const promises = [];
177
140
  let index = 0;
178
141
  for (const nodeToRead of nodesToRead) {
179
- promises.push(_r(nodeToRead, index));
142
+ const aggregateType = historyReadDetails.aggregateType[index];
143
+ const processDetail = new node_opcua_types_1.ReadProcessedDetails({ ...historyReadDetails, aggregateType: [aggregateType] });
144
+ promises.push(_q({ nodeToRead, processDetail, index }));
180
145
  index++;
181
146
  }
182
- const result = yield Promise.all(promises);
183
- return result;
184
- });
147
+ const results = await Promise.all(promises);
148
+ return results;
149
+ }
150
+ const _r = async (nodeToRead, index) => {
151
+ const continuationPoint = nodeToRead.continuationPoint;
152
+ return await this.historyReadNode(context, nodeToRead, historyReadDetails, timestampsToReturn, {
153
+ continuationPoint,
154
+ releaseContinuationPoints,
155
+ index
156
+ });
157
+ };
158
+ const promises = [];
159
+ let index = 0;
160
+ for (const nodeToRead of nodesToRead) {
161
+ promises.push(_r(nodeToRead, index));
162
+ index++;
163
+ }
164
+ const result = await Promise.all(promises);
165
+ return result;
185
166
  }
186
- browseNode(browseDescription, context) {
187
- return __awaiter(this, void 0, void 0, function* () {
188
- if (!this.addressSpace) {
189
- throw new Error("Address Space has not been initialized");
190
- }
191
- const nodeId = (0, node_opcua_nodeid_1.resolveNodeId)(browseDescription.nodeId);
192
- const r = this.addressSpace.browseSingleNode(nodeId, browseDescription instanceof node_opcua_types_1.BrowseDescription
193
- ? browseDescription
194
- : new node_opcua_types_1.BrowseDescription(Object.assign(Object.assign({}, browseDescription), { nodeId })), context);
195
- return r;
196
- });
167
+ async browseNode(browseDescription, context) {
168
+ if (!this.addressSpace) {
169
+ throw new Error("Address Space has not been initialized");
170
+ }
171
+ const nodeId = (0, node_opcua_nodeid_1.resolveNodeId)(browseDescription.nodeId);
172
+ const r = this.addressSpace.browseSingleNode(nodeId, browseDescription instanceof node_opcua_types_1.BrowseDescription
173
+ ? browseDescription
174
+ : new node_opcua_types_1.BrowseDescription({ ...browseDescription, nodeId }), context);
175
+ return r;
197
176
  }
198
- readNode(context, nodeToRead, maxAge, timestampsToReturn) {
199
- return __awaiter(this, void 0, void 0, function* () {
200
- (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
201
- const nodeId = (0, node_opcua_nodeid_1.resolveNodeId)(nodeToRead.nodeId);
202
- const attributeId = nodeToRead.attributeId;
203
- const indexRange = nodeToRead.indexRange;
204
- const dataEncoding = nodeToRead.dataEncoding;
205
- if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Invalid) {
206
- return new node_opcua_data_value_1.DataValue({ statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid });
207
- }
208
- timestampsToReturn = (0, node_opcua_data_value_1.coerceTimestampsToReturn)(timestampsToReturn);
209
- const obj = this.__findNode((0, node_opcua_nodeid_1.coerceNodeId)(nodeId));
210
- let dataValue;
211
- if (!obj) {
212
- // Object Not Found
213
- return new node_opcua_data_value_1.DataValue({ statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
177
+ async readNode(context, nodeToRead, maxAge, timestampsToReturn) {
178
+ (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
179
+ const nodeId = (0, node_opcua_nodeid_1.resolveNodeId)(nodeToRead.nodeId);
180
+ const attributeId = nodeToRead.attributeId;
181
+ const indexRange = nodeToRead.indexRange;
182
+ const dataEncoding = nodeToRead.dataEncoding;
183
+ if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Invalid) {
184
+ return new node_opcua_data_value_1.DataValue({ statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid });
185
+ }
186
+ timestampsToReturn = (0, node_opcua_data_value_1.coerceTimestampsToReturn)(timestampsToReturn);
187
+ const obj = this.__findNode((0, node_opcua_nodeid_1.coerceNodeId)(nodeId));
188
+ let dataValue;
189
+ if (!obj) {
190
+ // Object Not Found
191
+ return new node_opcua_data_value_1.DataValue({ statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
192
+ }
193
+ else {
194
+ // check access
195
+ // BadUserAccessDenied
196
+ // BadNotReadable
197
+ // invalid attributes : BadNodeAttributesInvalid
198
+ // invalid range : BadIndexRangeInvalid
199
+ dataValue = obj.readAttribute(context, attributeId, indexRange, dataEncoding);
200
+ dataValue = (0, node_opcua_data_value_1.apply_timestamps_no_copy)(dataValue, timestampsToReturn, attributeId);
201
+ if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Server) {
202
+ dataValue.sourceTimestamp = null;
203
+ dataValue.sourcePicoseconds = 0;
214
204
  }
215
- else {
216
- // check access
217
- // BadUserAccessDenied
218
- // BadNotReadable
219
- // invalid attributes : BadNodeAttributesInvalid
220
- // invalid range : BadIndexRangeInvalid
221
- dataValue = obj.readAttribute(context, attributeId, indexRange, dataEncoding);
222
- dataValue = (0, node_opcua_data_value_1.apply_timestamps_no_copy)(dataValue, timestampsToReturn, attributeId);
223
- if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Server) {
224
- dataValue.sourceTimestamp = null;
225
- dataValue.sourcePicoseconds = 0;
226
- }
227
- if ((timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Both || timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Server) &&
228
- (!dataValue.serverTimestamp || dataValue.serverTimestamp.getTime() === node_opcua_date_time_1.minOPCUADate.getTime())) {
229
- const t = context.currentTime ? context.currentTime.timestamp : (0, node_opcua_date_time_1.getCurrentClock)().timestamp;
230
- dataValue.serverTimestamp = t;
231
- dataValue.serverPicoseconds = 0; // context.currentTime.picoseconds;
232
- }
233
- return dataValue;
205
+ if ((timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Both || timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Server) &&
206
+ (!dataValue.serverTimestamp || dataValue.serverTimestamp.getTime() === node_opcua_date_time_1.minOPCUADate.getTime())) {
207
+ const t = context.currentTime ? context.currentTime.timestamp : (0, node_opcua_date_time_1.getCurrentClock)().timestamp;
208
+ dataValue.serverTimestamp = t;
209
+ dataValue.serverPicoseconds = 0; // context.currentTime.picoseconds;
234
210
  }
235
- });
211
+ return dataValue;
212
+ }
236
213
  }
237
214
  __findNode(nodeId) {
238
- var _a;
239
215
  const namespaceIndex = nodeId.namespace || 0;
240
- if (namespaceIndex && namespaceIndex >= (((_a = this.addressSpace) === null || _a === void 0 ? void 0 : _a.getNamespaceArray().length) || 0)) {
216
+ if (namespaceIndex && namespaceIndex >= (this.addressSpace?.getNamespaceArray().length || 0)) {
241
217
  return null;
242
218
  }
243
219
  const namespace = this.addressSpace.getNamespace(namespaceIndex);
244
220
  return namespace.findNode2(nodeId);
245
221
  }
246
- writeNode(context, writeValue) {
247
- return __awaiter(this, void 0, void 0, function* () {
248
- yield (0, node_opcua_address_space_1.resolveOpaqueOnAddressSpace)(this.addressSpace, writeValue.value.value);
249
- (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
250
- (0, node_opcua_assert_1.default)(writeValue.schema.name === "WriteValue");
251
- (0, node_opcua_assert_1.default)(writeValue.value instanceof node_opcua_data_value_1.DataValue);
252
- if (!writeValue.value.value) {
253
- /* missing Variant */
254
- return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
255
- }
256
- (0, node_opcua_assert_1.default)(writeValue.value.value instanceof node_opcua_variant_1.Variant);
257
- const nodeId = writeValue.nodeId;
258
- const obj = this.__findNode(nodeId);
259
- if (!obj) {
260
- return node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown;
261
- }
262
- else {
263
- return yield new Promise((resolve, reject) => {
264
- obj.writeAttribute(context, writeValue, (err, statusCode) => {
265
- if (err) {
266
- reject(err);
267
- }
268
- else {
269
- resolve(statusCode);
270
- }
271
- });
272
- });
273
- }
274
- });
275
- }
276
- callMethod(context, methodToCall) {
277
- return __awaiter(this, void 0, void 0, function* () {
278
- return yield new Promise((resolve, reject) => {
279
- (0, node_opcua_address_space_1.callMethodHelper)(context, this.addressSpace, methodToCall, (err, result) => {
222
+ async writeNode(context, writeValue) {
223
+ await (0, node_opcua_address_space_1.resolveOpaqueOnAddressSpace)(this.addressSpace, writeValue.value.value);
224
+ (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
225
+ (0, node_opcua_assert_1.default)(writeValue.schema.name === "WriteValue");
226
+ (0, node_opcua_assert_1.default)(writeValue.value instanceof node_opcua_data_value_1.DataValue);
227
+ if (!writeValue.value.value) {
228
+ /* missing Variant */
229
+ return node_opcua_status_code_1.StatusCodes.BadTypeMismatch;
230
+ }
231
+ (0, node_opcua_assert_1.default)(writeValue.value.value instanceof node_opcua_variant_1.Variant);
232
+ const nodeId = writeValue.nodeId;
233
+ const obj = this.__findNode(nodeId);
234
+ if (!obj) {
235
+ return node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown;
236
+ }
237
+ else {
238
+ return await new Promise((resolve, reject) => {
239
+ obj.writeAttribute(context, writeValue, (err, statusCode) => {
280
240
  if (err) {
281
241
  reject(err);
282
242
  }
283
243
  else {
284
- resolve(result);
244
+ resolve(statusCode);
285
245
  }
286
246
  });
287
247
  });
248
+ }
249
+ }
250
+ async callMethod(context, methodToCall) {
251
+ return await new Promise((resolve, reject) => {
252
+ (0, node_opcua_address_space_1.callMethodHelper)(context, this.addressSpace, methodToCall, (err, result) => {
253
+ if (err) {
254
+ reject(err);
255
+ }
256
+ else {
257
+ resolve(result);
258
+ }
259
+ });
288
260
  });
289
261
  }
290
- historyReadNode(context, nodeToRead, historyReadDetails, timestampsToReturn, continuationData) {
291
- return __awaiter(this, void 0, void 0, function* () {
292
- (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
293
- if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Invalid) {
294
- return new node_opcua_types_1.HistoryReadResult({
295
- statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid
296
- });
297
- }
298
- const nodeId = nodeToRead.nodeId;
299
- const indexRange = nodeToRead.indexRange;
300
- const dataEncoding = nodeToRead.dataEncoding;
301
- const continuationPoint = nodeToRead.continuationPoint;
302
- timestampsToReturn = (0, node_opcua_data_value_1.coerceTimestampsToReturn)(timestampsToReturn);
303
- if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Invalid) {
304
- return new node_opcua_types_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid });
305
- }
306
- const obj = this.__findNode(nodeId);
307
- if (!obj) {
308
- // may be return BadNodeIdUnknown in dataValue instead ?
309
- // Object Not Found
310
- return new node_opcua_types_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
311
- }
312
- else {
262
+ async historyReadNode(context, nodeToRead, historyReadDetails, timestampsToReturn, continuationData) {
263
+ (0, node_opcua_assert_1.default)(context instanceof node_opcua_address_space_1.SessionContext);
264
+ if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Invalid) {
265
+ return new node_opcua_types_1.HistoryReadResult({
266
+ statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid
267
+ });
268
+ }
269
+ const nodeId = nodeToRead.nodeId;
270
+ const indexRange = nodeToRead.indexRange;
271
+ const dataEncoding = nodeToRead.dataEncoding;
272
+ const continuationPoint = nodeToRead.continuationPoint;
273
+ timestampsToReturn = (0, node_opcua_data_value_1.coerceTimestampsToReturn)(timestampsToReturn);
274
+ if (timestampsToReturn === node_opcua_data_value_1.TimestampsToReturn.Invalid) {
275
+ return new node_opcua_types_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadTimestampsToReturnInvalid });
276
+ }
277
+ const obj = this.__findNode(nodeId);
278
+ if (!obj) {
279
+ // may be return BadNodeIdUnknown in dataValue instead ?
280
+ // Object Not Found
281
+ return new node_opcua_types_1.HistoryReadResult({ statusCode: node_opcua_status_code_1.StatusCodes.BadNodeIdUnknown });
282
+ }
283
+ else {
284
+ // istanbul ignore next
285
+ if (!obj.historyRead) {
286
+ // note : Object and View may also support historyRead to provide Event historical data
287
+ // todo implement historyRead for Object and View
288
+ const msg = " this node doesn't provide historyRead! probably not a UAVariable\n " +
289
+ obj.nodeId.toString() +
290
+ " " +
291
+ obj.browseName.toString() +
292
+ "\n" +
293
+ "with " +
294
+ nodeToRead.toString() +
295
+ "\n" +
296
+ "HistoryReadDetails " +
297
+ historyReadDetails.toString();
313
298
  // istanbul ignore next
314
- if (!obj.historyRead) {
315
- // note : Object and View may also support historyRead to provide Event historical data
316
- // todo implement historyRead for Object and View
317
- const msg = " this node doesn't provide historyRead! probably not a UAVariable\n " +
318
- obj.nodeId.toString() +
319
- " " +
320
- obj.browseName.toString() +
321
- "\n" +
322
- "with " +
323
- nodeToRead.toString() +
324
- "\n" +
325
- "HistoryReadDetails " +
326
- historyReadDetails.toString();
327
- // istanbul ignore next
328
- if (node_opcua_pki_1.doDebug) {
329
- (0, node_opcua_pki_1.debugLog)(chalk_1.default.cyan("ServerEngine#_historyReadNode "), chalk_1.default.white.bold(msg));
330
- }
331
- throw new Error(msg);
299
+ if (node_opcua_pki_1.doDebug) {
300
+ (0, node_opcua_pki_1.debugLog)(chalk_1.default.cyan("ServerEngine#_historyReadNode "), chalk_1.default.white.bold(msg));
332
301
  }
333
- // check access
334
- // BadUserAccessDenied
335
- // BadNotReadable
336
- // invalid attributes : BadNodeAttributesInvalid
337
- // invalid range : BadIndexRangeInvalid
338
- const result = yield obj.historyRead(context, historyReadDetails, indexRange, dataEncoding, continuationData);
339
- (0, node_opcua_assert_1.default)(result.statusCode instanceof node_opcua_status_code_1.StatusCode);
340
- (0, node_opcua_assert_1.default)(result.isValid());
341
- return result;
302
+ throw new Error(msg);
342
303
  }
343
- });
304
+ // check access
305
+ // BadUserAccessDenied
306
+ // BadNotReadable
307
+ // invalid attributes : BadNodeAttributesInvalid
308
+ // invalid range : BadIndexRangeInvalid
309
+ const result = await obj.historyRead(context, historyReadDetails, indexRange, dataEncoding, continuationData);
310
+ (0, node_opcua_assert_1.default)(result.statusCode instanceof node_opcua_status_code_1.StatusCode);
311
+ (0, node_opcua_assert_1.default)(result.isValid());
312
+ return result;
313
+ }
344
314
  }
345
315
  }
346
316
  exports.AddressSpaceAccessor = AddressSpaceAccessor;
@@ -1 +1 @@
1
- {"version":3,"file":"addressSpace_accessor.js","sourceRoot":"","sources":["../source/addressSpace_accessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addressSpace_accessor.js","sourceRoot":"","sources":["../source/addressSpace_accessor.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uEAMkC;AAElC,0EAAuC;AAEvC,iEAA0H;AAC1H,+DAAqE;AACrE,yDAAwE;AAExE,mDAAmD;AACnD,mEAAiE;AACjE,uDAe0B;AAC1B,2DAA6C;AAG7C,SAAS,yBAAyB,CAAC,kBAAwC;IACvE,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;QAC5C,kBAAkB,CAAC,sBAAsB,GAAG,IAAI,yCAAsB,CAAC;YACnE,6BAA6B,EAAE,IAAI;SACtC,CAAC,CAAC;KACN;IACD,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,6BAA6B,EAAE;QACzE,OAAO,oCAAW,CAAC,IAAI,CAAC;KAC3B;IAED,iFAAiF;IACjF,qDAAqD;IACrD,2EAA2E;IAC3E,oGAAoG;IACpG,8FAA8F;IAC9F,IACI,kBAAkB,CAAC,sBAAsB,CAAC,eAAe;QACzD,GAAG,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,cAAc,EAChE;QACE,OAAO,oCAAW,CAAC,yBAAyB,CAAC;KAChD;IACD,6FAA6F;IAC7F,gCAAgC;IAChC,IACI,kBAAkB,CAAC,sBAAsB,CAAC,eAAe,GAAG,GAAG;QAC/D,kBAAkB,CAAC,sBAAsB,CAAC,eAAe,GAAG,CAAC,EAC/D;QACE,OAAO,oCAAW,CAAC,yBAAyB,CAAC;KAChD;IACD,IACI,kBAAkB,CAAC,sBAAsB,CAAC,cAAc,GAAG,GAAG;QAC9D,kBAAkB,CAAC,sBAAsB,CAAC,cAAc,GAAG,CAAC,EAC9D;QACE,OAAO,oCAAW,CAAC,yBAAyB,CAAC;KAChD;IACD,OAAO,oCAAW,CAAC,IAAI,CAAC;AAC5B,CAAC;AAqBD,MAAa,oBAAoB;IAC7B,YAAmB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAE1C,KAAK,CAAC,MAAM,CAAC,OAAwB,EAAE,aAAyC;QACnF,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,iBAAiB,IAAI,aAAa,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE,IAAA,2BAAM,EAAC,iBAAiB,CAAC,MAAO,EAAE,oBAAoB,CAAC,CAAC;SAC3D;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAwB,EAAE,WAA+B;QACvE;;;;;;;;;;;;;;;;;;;;;;WAsBG;QAEH,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;QAC7C,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC;QAElD,OAAO,CAAC,WAAW,GAAG,IAAA,sCAAe,GAAE,CAAC;QACxC,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE;YACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACpG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9B;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAAwB,EAAE,YAA0B;QACnE,OAAO,CAAC,WAAW,GAAG,IAAA,sCAAe,GAAE,CAAC;QACxC,MAAM,IAAA,kDAAuB,EAAC,IAAI,CAAC,YAAa,CAAC,CAAC;QAClD,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5B;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAwB,EAAE,aAAkC;QAC1E,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,MAAM,IAAA,kDAAuB,EAAC,IAAI,CAAC,YAAa,CAAC,CAAC;QAClD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACxB;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACM,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,kBAAsC;QACrF,IAAA,2BAAM,EAAC,OAAO,YAAY,yCAAc,CAAC,CAAC;QAC1C,IAAA,2BAAM,EAAC,kBAAkB,YAAY,qCAAkB,CAAC,CAAC;QAEzD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC;QACjE,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,kBAAyC,CAAC;QACxF,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,yBAAyB,CAAC;QAC/E,IAAA,2BAAM,EAAC,kBAAkB,YAAY,qCAAkB,CAAC,CAAC;QACzD,qHAAqH;QAErH,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,IAAK,EAA2B,CAAC;QACnF,IAAA,2BAAM,EAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QASnC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAI,EAA8B,EAAE;YAClD,MAAM,iBAAiB,GAAG,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACzD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,kBAAkB,EAAE;gBAC1F,iBAAiB;gBACjB,yBAAyB,CAAC,mBAAmB;aAChD,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,IAAI,kBAAkB,YAAY,uCAAoB,EAAE;YACpD,EAAE;YACF,IAAI,CAAC,kBAAkB,CAAC,aAAa,IAAI,kBAAkB,CAAC,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;gBACrG,OAAO,CAAC,IAAI,oCAAiB,CAAC,EAAE,UAAU,EAAE,oCAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;aAClF;YAED,MAAM,eAAe,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;YACtE,IAAI,eAAe,KAAK,oCAAW,CAAC,IAAI,EAAE;gBACtC,OAAO,CAAC,IAAI,oCAAiB,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;aACnE;YACD,MAAM,QAAQ,GAAiC,EAAE,CAAC;YAClD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;gBAClC,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC9D,MAAM,aAAa,GAAG,IAAI,uCAAoB,CAAC,EAAE,GAAG,kBAAkB,EAAE,aAAa,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC1G,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxD,KAAK,EAAE,CAAC;aACX;YAED,MAAM,OAAO,GAAwB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjE,OAAO,OAAO,CAAC;SAClB;QAED,MAAM,EAAE,GAAG,KAAK,EAAE,UAA8B,EAAE,KAAa,EAAE,EAAE;YAC/D,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;YACvD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE;gBAC3F,iBAAiB;gBACjB,yBAAyB;gBACzB,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,QAAQ,GAAiC,EAAE,CAAC;QAClD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC;SACX;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,iBAA2C,EAAE,OAAyB;QAC1F,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC7D;QACD,MAAM,MAAM,GAAG,IAAA,iCAAa,EAAC,iBAAiB,CAAC,MAAO,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACxC,MAAM,EACN,iBAAiB,YAAY,oCAAiB;YAC1C,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,oCAAiB,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,CAAC,EAC7D,OAAO,CACV,CAAC;QACF,OAAO,CAAC,CAAC;IACb,CAAC;IACM,KAAK,CAAC,QAAQ,CACjB,OAAwB,EACxB,UAA8B,EAC9B,MAAc,EACd,kBAAuC;QAEvC,IAAA,2BAAM,EAAC,OAAO,YAAY,yCAAc,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAA,iCAAa,EAAC,UAAU,CAAC,MAAO,CAAC,CAAC;QACjD,MAAM,WAAW,GAAiB,UAAU,CAAC,WAAY,CAAC;QAC1D,MAAM,UAAU,GAAiB,UAAU,CAAC,UAAW,CAAC;QACxD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAE7C,IAAI,kBAAkB,KAAK,0CAAkB,CAAC,OAAO,EAAE;YACnD,OAAO,IAAI,iCAAS,CAAC,EAAE,UAAU,EAAE,oCAAW,CAAC,4BAA4B,EAAE,CAAC,CAAC;SAClF;QAED,kBAAkB,GAAG,IAAA,gDAAwB,EAAC,kBAAkB,CAAC,CAAC;QAElE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAA,gCAAY,EAAC,MAAM,CAAC,CAAC,CAAC;QAElD,IAAI,SAAS,CAAC;QACd,IAAI,CAAC,GAAG,EAAE;YACN,mBAAmB;YACnB,OAAO,IAAI,iCAAS,CAAC,EAAE,UAAU,EAAE,oCAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACtE;aAAM;YACH,eAAe;YACf,yBAAyB;YACzB,oBAAoB;YACpB,mDAAmD;YACnD,+CAA+C;YAC/C,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YAC9E,SAAS,GAAG,IAAA,gDAAwB,EAAC,SAAS,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;YAEjF,IAAI,kBAAkB,KAAK,0CAAkB,CAAC,MAAM,EAAE;gBAClD,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;gBACjC,SAAS,CAAC,iBAAiB,GAAG,CAAC,CAAC;aACnC;YACD,IACI,CAAC,kBAAkB,KAAK,0CAAkB,CAAC,IAAI,IAAI,kBAAkB,KAAK,0CAAkB,CAAC,MAAM,CAAC;gBACpG,CAAC,CAAC,SAAS,CAAC,eAAe,IAAI,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,mCAAY,CAAC,OAAO,EAAE,CAAC,EAChG;gBACE,MAAM,CAAC,GAAS,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,sCAAe,GAAE,CAAC,SAAS,CAAC;gBAClG,SAAS,CAAC,eAAe,GAAG,CAAC,CAAC;gBAC9B,SAAS,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,mCAAmC;aACvE;YAED,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAEO,UAAU,CAAC,MAAc;QAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QAE7C,IAAI,cAAc,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;YAC1F,OAAO,IAAI,CAAC;SACf;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,cAAc,CAAE,CAAC;QACnE,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,CAAE,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAAwB,EAAE,UAAsB;QACnE,MAAM,IAAA,sDAA2B,EAAC,IAAI,CAAC,YAAa,EAAE,UAAU,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;QAE/E,IAAA,2BAAM,EAAC,OAAO,YAAY,yCAAc,CAAC,CAAC;QAC1C,IAAA,2BAAM,EAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAChD,IAAA,2BAAM,EAAC,UAAU,CAAC,KAAK,YAAY,iCAAS,CAAC,CAAC;QAE9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE;YACzB,qBAAqB;YACrB,OAAO,oCAAW,CAAC,eAAe,CAAC;SACtC;QAED,IAAA,2BAAM,EAAC,UAAU,CAAC,KAAK,CAAC,KAAK,YAAY,4BAAO,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAe,CAAC;QAClD,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,oCAAW,CAAC,gBAAgB,CAAC;SACvC;aAAM;YACH,OAAO,MAAM,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrD,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;oBACxD,IAAI,GAAG,EAAE;wBACL,MAAM,CAAC,GAAG,CAAC,CAAC;qBACf;yBAAM;wBACH,OAAO,CAAC,UAAW,CAAC,CAAC;qBACxB;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,OAAwB,EAAE,YAA+B;QAC7E,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAA,2CAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACvE,IAAI,GAAG,EAAE;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACf;qBAAM;oBACH,OAAO,CAAC,MAAO,CAAC,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,eAAe,CACxB,OAAwB,EACxB,UAA8B,EAC9B,kBAAsC,EACtC,kBAAsC,EACtC,gBAAkC;QAElC,IAAA,2BAAM,EAAC,OAAO,YAAY,yCAAc,CAAC,CAAC;QAC1C,IAAI,kBAAkB,KAAK,0CAAkB,CAAC,OAAO,EAAE;YACnD,OAAO,IAAI,oCAAiB,CAAC;gBACzB,UAAU,EAAE,oCAAW,CAAC,4BAA4B;aACvD,CAAC,CAAC;SACN;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC7C,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;QAEvD,kBAAkB,GAAG,IAAA,gDAAwB,EAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,kBAAkB,KAAK,0CAAkB,CAAC,OAAO,EAAE;YACnD,OAAO,IAAI,oCAAiB,CAAC,EAAE,UAAU,EAAE,oCAAW,CAAC,4BAA4B,EAAE,CAAC,CAAC;SAC1F;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAe,CAAC;QAElD,IAAI,CAAC,GAAG,EAAE;YACN,wDAAwD;YACxD,mBAAmB;YACnB,OAAO,IAAI,oCAAiB,CAAC,EAAE,UAAU,EAAE,oCAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;SAC9E;aAAM;YACH,uBAAuB;YACvB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;gBAClB,uFAAuF;gBACvF,wDAAwD;gBACxD,MAAM,GAAG,GACL,sEAAsE;oBACtE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACrB,GAAG;oBACH,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE;oBACzB,IAAI;oBACJ,OAAO;oBACP,UAAU,CAAC,QAAQ,EAAE;oBACrB,IAAI;oBACJ,qBAAqB;oBACrB,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAClC,uBAAuB;gBACvB,IAAI,wBAAO,EAAE;oBACT,IAAA,yBAAQ,EAAC,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACjF;gBACD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACxB;YACD,eAAe;YACf,yBAAyB;YACzB,oBAAoB;YACpB,mDAAmD;YACnD,+CAA+C;YAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC9G,IAAA,2BAAM,EAAC,MAAO,CAAC,UAAU,YAAY,mCAAU,CAAC,CAAC;YACjD,IAAA,2BAAM,EAAC,MAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1B,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;CACJ;AA/TD,oDA+TC"}