diff --git a/src/OPC-UA-Server/app-defs.js b/src/OPC-UA-Server/app-defs.js index 5ca324b0..c1a533ec 100644 --- a/src/OPC-UA-Server/app-defs.js +++ b/src/OPC-UA-Server/app-defs.js @@ -1,7 +1,7 @@ 'use strict' /* - * {json:scada} - Copyright (c) 2020-2021 - Ricardo L. Olsen + * {json:scada} - Copyright (c) 2020-2023 - Ricardo L. Olsen * This file is part of the JSON-SCADA distribution (https://github.com/riclolsen/json-scada). * * This program is free software: you can redistribute it and/or modify @@ -21,5 +21,5 @@ module.exports = { NAME: 'OPC-UA_SERVER', ENV_PREFIX: 'JS_OPCUASERVER_', MSG: '{json:scada} - OPC-UA Server', - VERSION: '0.1.3', + VERSION: '0.1.4', } diff --git a/src/OPC-UA-Server/index.js b/src/OPC-UA-Server/index.js index d37f8dab..e0323788 100644 --- a/src/OPC-UA-Server/index.js +++ b/src/OPC-UA-Server/index.js @@ -3,7 +3,7 @@ /* * OPC-UA Server Driver for JSON-SCADA * - * {json:scada} - Copyright (c) 2020-2021 - Ricardo L. Olsen + * {json:scada} - Copyright (c) 2020-2023 - Ricardo L. Olsen * This file is part of the JSON-SCADA distribution (https://github.com/riclolsen/json-scada). * * This program is free software: you can redistribute it and/or modify @@ -19,29 +19,19 @@ * along with this program. If not, see . */ -const { - OPCUAServer, - SessionContext, - Variant, - DataValue, - DataType, - StatusCodes, - AttributeIds -} = require('node-opcua') +const { OPCUAServer, Variant, DataType, StatusCodes } = require('node-opcua') const { MongoClient, Double } = require('mongodb') const Log = require('./simple-logger') const AppDefs = require('./app-defs') const { LoadConfig, getMongoConnectionOptions } = require('./load-config') +let HintMongoIsConnected = true ;(async () => { const jsConfig = LoadConfig() // load and parse config file Log.levelCurrent = jsConfig.LogLevel - let metrics = [] - let rtCollection = null - let cmdCollection = null + let server = null let clientMongo = null - let connsCollection = null while (true) { if (clientMongo === null) @@ -50,587 +40,615 @@ const { LoadConfig, getMongoConnectionOptions } = require('./load-config') // try to (re)connect jsConfig.mongoConnectionString, getMongoConnectionOptions(jsConfig) - ).then(async client => { - // connected - Log.log('MongoDB - Connected correctly to MongoDB server', Log.levelMin) - clientMongo = client - // specify db and collections - const db = client.db(jsConfig.mongoDatabaseName) - rtCollection = db.collection(jsConfig.RealtimeDataCollectionName) - cmdCollection = db.collection(jsConfig.CommandsQueueCollectionName) - connsCollection = db.collection( - jsConfig.ProtocolConnectionsCollectionName - ) - - // find the connection number, if not found abort (only one connection per instance is allowed for this protocol) - let connection = await getConnection(connsCollection, jsConfig) - - if (!'_id' in connection) { - Log.log('Fatal error: malformed record for connection found!') - process.exit(1) - } - - async function sendCommand (tag, variant) { - let cmdRes = await rtCollection.findOne({ tag: tag }) - - if (!('_id' in cmdRes)) { - Log.log('Command not found! Tag: ' + tag) - return StatusCodes.BadNotFound - } + ) + .then(async (client) => { + // connected + HintMongoIsConnected = true + Log.log( + 'MongoDB - Connected correctly to MongoDB server', + Log.levelMin + ) + clientMongo = client + const metrics = {} + + // specify db and collections + const db = client.db(jsConfig.mongoDatabaseName) + const rtCollection = db.collection( + jsConfig.RealtimeDataCollectionName + ) + const cmdCollection = db.collection( + jsConfig.CommandsQueueCollectionName + ) + const connsCollection = db.collection( + jsConfig.ProtocolConnectionsCollectionName + ) + + // find the connection number, if not found abort (only one connection per instance is allowed for this protocol) + let connection = await getConnection(connsCollection, jsConfig) - if (cmdRes?.commandBlocked !== false) { - Log.log('Command blocked! Tag: ' + tag) - return StatusCodes.BadNotWritable + if (!'_id' in connection) { + Log.log('Fatal error: malformed record for connection found!') + process.exit(1) } - // check the supervised point for commandBlocked - if (cmdRes.supervisedOfCommand != 0) { - let supRes = await rtCollection.findOne({ - _id: cmdRes.supervisedOfCommand - }) - if ('_id' in supRes) { - if (supRes?.commandBlocked !== false) { - Log.log('Command blocked (sup)! Tag: ' + tag) - return StatusCodes.BadNotWritable - } - } + async function sendCommand(tag, variant) { + let cmdRes = await rtCollection.findOne({ tag: tag }) - let doubleVal = variant.value - let strVal = variant.value.toString() + if (!('_id' in cmdRes)) { + Log.log('Command not found! Tag: ' + tag) + return StatusCodes.BadNotFound + } - switch (variant.dataType) { - case DataType.Boolean: - doubleVal = variant.value ? 1 : 0 - strVal = variant.value.toString() - break - case DataType.SByte: - case DataType.Byte: - case DataType.Byte: - case DataType.Int16: - case DataType.UInt16: - case DataType.Int32: - case DataType.UInt32: - case DataType.Int64: - case DataType.UInt64: - case DataType.Float: - case DataType.Double: - doubleVal = variant.value - strVal = variant.value.toString() - break - case DataType.Variant: - case DataType.StatusCode: - case DataType.Guid: - case DataType.QualifiedName: - case DataType.LocalizedText: - case DataType.DiagnosticInfo: - case DataType.ByteString: - case DataType.ExpandedNodeId: - case DataType.NodeId: - case DataType.XmlElement: - case DataType.String: - doubleVal = parseFloat(variant.value) - strVal = variant.value.toString() - break + if (cmdRes?.commandBlocked !== false) { + Log.log('Command blocked! Tag: ' + tag) + return StatusCodes.BadNotWritable } - // clear to send command - Log.log("Inserting command: " + cmdRes.tag + ' ' + doubleVal + ' ' + strVal) - cmdCollection.insertOne({ - protocolSourceConnectionNumber: - cmdRes?.protocolSourceConnectionNumber, - protocolSourceCommonAddress: cmdRes?.protocolSourceCommonAddress, - protocolSourceObjectAddress: cmdRes?.protocolSourceObjectAddress, - protocolSourceASDU: cmdRes?.protocolSourceASDU, - protocolSourceCommandDuration: - cmdRes?.protocolSourceCommandDuration, - protocolSourceCommandUseSBO: cmdRes?.protocolSourceCommandUseSBO, - pointKey: cmdRes._id, - tag: cmdRes.tag, - value: new Double(doubleVal), - valueString: strVal, - originatorUserName: - 'Protocol connection: ' + - connection.protocolConnectionNumber + - ' ' + - connection.name, - originatorIpAddress: '', - timeTag: new Date() - }) + // check the supervised point for commandBlocked + if (cmdRes.supervisedOfCommand != 0) { + let supRes = await rtCollection.findOne({ + _id: cmdRes.supervisedOfCommand, + }) + if ('_id' in supRes) { + if (supRes?.commandBlocked !== false) { + Log.log('Command blocked (sup)! Tag: ' + tag) + return StatusCodes.BadNotWritable + } + } + + let doubleVal = variant.value + let strVal = variant.value.toString() - return StatusCodes.BadNotFound + switch (variant.dataType) { + case DataType.Boolean: + doubleVal = variant.value ? 1 : 0 + strVal = variant.value.toString() + break + case DataType.SByte: + case DataType.Byte: + case DataType.Byte: + case DataType.Int16: + case DataType.UInt16: + case DataType.Int32: + case DataType.UInt32: + case DataType.Int64: + case DataType.UInt64: + case DataType.Float: + case DataType.Double: + doubleVal = variant.value + strVal = variant.value.toString() + break + case DataType.Variant: + case DataType.StatusCode: + case DataType.Guid: + case DataType.QualifiedName: + case DataType.LocalizedText: + case DataType.DiagnosticInfo: + case DataType.ByteString: + case DataType.ExpandedNodeId: + case DataType.NodeId: + case DataType.XmlElement: + case DataType.String: + doubleVal = parseFloat(variant.value) + strVal = variant.value.toString() + break + } + + // clear to send command + Log.log( + 'Inserting command: ' + + cmdRes.tag + + ' ' + + doubleVal + + ' ' + + strVal + ) + cmdCollection.insertOne({ + protocolSourceConnectionNumber: + cmdRes?.protocolSourceConnectionNumber, + protocolSourceCommonAddress: + cmdRes?.protocolSourceCommonAddress, + protocolSourceObjectAddress: + cmdRes?.protocolSourceObjectAddress, + protocolSourceASDU: cmdRes?.protocolSourceASDU, + protocolSourceCommandDuration: + cmdRes?.protocolSourceCommandDuration, + protocolSourceCommandUseSBO: + cmdRes?.protocolSourceCommandUseSBO, + pointKey: cmdRes._id, + tag: cmdRes.tag, + value: new Double(doubleVal), + valueString: strVal, + originatorUserName: + 'Protocol connection: ' + + connection.protocolConnectionNumber + + ' ' + + connection.name, + originatorIpAddress: '', + timeTag: new Date(), + }) + + return StatusCodes.BadNotFound + } } - } - - let port = 4840 - if ('ipAddressLocalBind' in connection) { - let ipPort = connection.ipAddressLocalBind.split(':') - if (ipPort.length > 1) port = parseInt(ipPort[1]) - } - - let timeout = 15000 - if ('timeoutMs' in connection) { - timeout = parseInt(connection.timeoutMs) - } - - let certificateProp = {} - let privateKeyProp = {} - if (connection?.useSecurity === true) { - if ( - 'localCertFilePath' in connection && - 'length' in connection.localCertFilePath - ) { - if (connection.localCertFilePath.length > 0) - certificateProp.certificateFile = connection.localCertFilePath + + let port = 4840 + if ('ipAddressLocalBind' in connection) { + let ipPort = connection.ipAddressLocalBind.split(':') + if (ipPort.length > 1) port = parseInt(ipPort[1]) } - if ( - 'privateKeyFilePath' in connection && - 'length' in connection.privateKeyFilePath - ) { - if (connection.privateKeyFilePath.length > 0) - privateKeyProp.privateKeyFile = connection.privateKeyFilePath + + let timeout = 15000 + if ('timeoutMs' in connection) { + timeout = parseInt(connection.timeoutMs) } - } - - // Let's create an instance of OPCUAServer - const server = new OPCUAServer({ - port: port, // the port of the listening socket of the server - resourcePath: '/' + (connection?.groupId || 'UA/JsonScada'), // this path will be added to the endpoint resource name - buildInfo: { - productName: AppDefs.MSG, - buildNumber: AppDefs.VERSION, - softwareVersion: AppDefs.VERSION, - manufacturerName: 'JSON-SCADA Project', - productUri: 'https://github.com/riclolsen/json-scada/' - // buildDate: new Date() - }, - maxAllowedSessionNumber: 100, - maxConnectionsPerEndpoint: 10, - disableDiscovery: false, - timeout: timeout, - ...certificateProp, - ...privateKeyProp - // securityModes: [], - // securityPolicies: [], - // defaultSecureTokenLifetime: 10000000, - }) - await server.initialize() - Log.log('OPC-UA Server initialized.') - - const addressSpace = server.engine.addressSpace - // const namespace = addressSpace.getOwnNamespace() - const namespace = addressSpace.registerNamespace( - 'urn:json_scada:tags' - ) - - // declare a new object - const device = namespace.addObject({ - organizedBy: addressSpace.rootFolder.objects, - browseName: 'JsonScadaServer' - }) - await server.start(function () { - Log.log('Server is now listening ... (press CTRL+C to stop)') - server.endpoints.forEach(function (endpoint) { - endpoint.endpointDescriptions().forEach(function (desc) { - Log.log( - 'Server EndpointUrl: ' + - desc.endpointUrl + - ' SecurityMode: ' + - desc.securityMode.toString() + - ' SecurityPolicy: ' + - desc.securityPolicyUri - ) - }) - }) - }) + let certificateProp = {} + let privateKeyProp = {} + if (connection?.useSecurity === true) { + if ( + 'localCertFilePath' in connection && + 'length' in connection.localCertFilePath + ) { + if (connection.localCertFilePath.length > 0) + certificateProp.certificateFile = connection.localCertFilePath + } + if ( + 'privateKeyFilePath' in connection && + 'length' in connection.privateKeyFilePath + ) { + if (connection.privateKeyFilePath.length > 0) + privateKeyProp.privateKeyFile = connection.privateKeyFilePath + } + } - server.on('newChannel', function (channel, endpoint) { - Log.log('New Channel, remote address: ' + channel.remoteAddress) - }) + // Let's create an instance of OPCUAServer + server = new OPCUAServer({ + port: port, // the port of the listening socket of the server + resourcePath: '/' + (connection?.groupId || 'UA/JsonScada'), // this path will be added to the endpoint resource name + buildInfo: { + productName: AppDefs.MSG, + buildNumber: AppDefs.VERSION, + softwareVersion: AppDefs.VERSION, + manufacturerName: 'JSON-SCADA Project', + productUri: 'https://github.com/riclolsen/json-scada/', + // buildDate: new Date() + }, + maxSessions: 100, + maxConnectionsPerEndpoint: 10, + disableDiscovery: false, + timeout: timeout, + ...certificateProp, + ...privateKeyProp, + // securityModes: [], + // securityPolicies: [], + // defaultSecureTokenLifetime: 10000000, + }) + await server.initialize() + Log.log('OPC-UA Server initialized.') - server.on('create_session', function (session) { - Log.log('Creating session.') - Log.log( - 'Client description, application URI: ' + - session?.parent?.clientDescription?.applicationUri + const namespace = server.engine.addressSpace.registerNamespace( + 'urn:json_scada:tags' ) - Log.log('Remote Address: ' + session?.channel?._remoteAddress) - if ( - 'ipAddresses' in connection && - 'length' in connection.ipAddresses - ) { - if ( - connection.ipAddresses.length > 0 && - session?.channel?._remoteAddress != '' - ) - if ( - !connection.ipAddresses.includes( - session.channel._remoteAddress.replace('::ffff:', '') + // declare a new object + const device = namespace.addObject({ + organizedBy: server.engine.addressSpace.rootFolder.objects, + browseName: 'JsonScadaServer', + }) + + server.start(function () { + Log.log('Server is now listening ... (press CTRL+C to stop)') + server.endpoints.forEach(function (endpoint) { + endpoint.endpointDescriptions().forEach(function (desc) { + Log.log( + 'Server EndpointUrl: ' + + desc.endpointUrl + + ' SecurityMode: ' + + desc.securityMode.toString() + + ' SecurityPolicy: ' + + desc.securityPolicyUri ) - ) { - Log.log('IP not authorized: closing session!') - try { - session.close() - } catch (e) {} - session.dispose() - } - } - }) + }) + }) + }) - // console.log(connection) + server.on('newChannel', function (channel, endpoint) { + Log.log('New Channel, remote address: ' + channel.remoteAddress) + }) - let filterGroup1 = {} - let filterGroup1CS = { - 'fullDocument.group1': { - $exists: true - } - } + server.on('create_session', function (session) { + Log.log('Creating session.') + Log.log( + 'Client description, application URI: ' + + session?.parent?.clientDescription?.applicationUri + ) + Log.log('Remote Address: ' + session?.channel?._remoteAddress) - if ('topics' in connection && 'length' in connection.topics) { - if (connection.topics.length > 0) { - filterGroup1.group1 = { $in: connection.topics } - filterGroup1CS = { - 'fullDocument.group1': { $in: connection.topics } + if ( + 'ipAddresses' in connection && + 'length' in connection.ipAddresses + ) { + if ( + connection.ipAddresses.length > 0 && + session?.channel?._remoteAddress != '' + ) + if ( + !connection.ipAddresses.includes( + session.channel._remoteAddress.replace('::ffff:', '') + ) + ) { + Log.log('IP not authorized: closing session!') + try { + session.close() + } catch (e) {} + session.dispose() + } } - Log.log('Filter tags: ' + JSON.stringify(filterGroup1)) - } - } + }) - let res = await rtCollection - .find( - { - protocolSourceConnectionNumber: { - $ne: connection.protocolConnectionNumber - }, // exclude data from the same connection - ...filterGroup1, - ...(connection.commandsEnabled - ? {} - : { origin: { $ne: 'command' } }), - _id: { $gt: 0 } + // console.log(connection) + + let filterGroup1 = {} + let filterGroup1CS = { + 'fullDocument.group1': { + $exists: true, }, - { - projection: { - _id: 1, - tag: 1, - type: 1, - value: 1, - valueString: 1, - timeTag: 1, - timeTagAtSource: 1, - timeTagAtSourceOk: 1, - invalid: 1, - isEvent: 1, - description: 1, - ungroupedDescription: 1, - group1: 1, - group2: 1, - group3: 1, - origin: 1, - protocolSourceConnectionNumber: 1 + } + + if ('topics' in connection && 'length' in connection.topics) { + if (connection.topics.length > 0) { + filterGroup1.group1 = { $in: connection.topics } + filterGroup1CS = { + 'fullDocument.group1': { $in: connection.topics }, } + Log.log('Filter tags: ' + JSON.stringify(filterGroup1)) } - ) - .toArray() - - Log.log(`Creating ${res.length} OPC UA Variables...`) - res.forEach(element => { - if (element._id <= 0) { - // exclude internal system data - return } - let cmdWriteProp = {} - if (element.origin === 'command') { - let variant = { dataType: DataType.Double, value: element?.value } - if (element.type === 'string') - variant = { - dataType: DataType.String, - value: element?.valueString - } - if (element.type === 'digital') - variant = { - dataType: DataType.Boolean, - value: element?.value == 0 ? false : true + let res = await rtCollection + .find( + { + protocolSourceConnectionNumber: { + $ne: connection.protocolConnectionNumber, + }, // exclude data from the same connection + ...filterGroup1, + ...(connection.commandsEnabled + ? {} + : { origin: { $ne: 'command' } }), + _id: { $gt: 0 }, + }, + { + projection: { + _id: 1, + tag: 1, + type: 1, + value: 1, + valueString: 1, + timeTag: 1, + timeTagAtSource: 1, + timeTagAtSourceOk: 1, + invalid: 1, + isEvent: 1, + description: 1, + ungroupedDescription: 1, + group1: 1, + group2: 1, + group3: 1, + origin: 1, + protocolSourceConnectionNumber: 1, + }, } + ) + .toArray() - cmdWriteProp = { - value: { - get: () => new Variant(variant), - set: variant => { - sendCommand(element.tag, variant) - return StatusCodes.Good - } - } + Log.log(`Creating ${res.length} OPC UA Variables...`) + res.forEach((element) => { + if (element._id <= 0) { + // exclude internal system data + return } - } - let type, value, dataType - switch (element?.type) { - case 'digital': - type = 'Boolean' - dataType = DataType.Boolean - value = element.value === 0 ? false : true - break - case 'json': - type = 'String' - dataType = DataType.String - if ('valueJson' in element) JSON.stringify(element?.valueJson) - else value = JSON.stringify(element?.value) - break - case 'string': - type = 'String' - dataType = DataType.String - if ('valueString' in element) value = element.valueString - else value = element.value.toString() - break - case 'analog': - type = 'Double' - dataType = DataType.Double - value = parseFloat(element.value) - break - default: - return - } - if (type) { - metrics[element.tag] = namespace.addVariable({ - componentOf: device, - nodeId: 'i=' + element._id, - browseName: element.tag, - dataType: type, - description: element?.description, - ...cmdWriteProp - //value: { - // get: () => new Variant({}), - // set: variant => { - // console.log(variant) - // console.log(element.tag) - // return StatusCodes.Good - // } - //} - }) - metrics[element.tag].setValueFromSource( - new Variant({ - dataType: dataType, - value: value - }), - element.invalid ? StatusCodes.Bad : StatusCodes.Good, - !('timeTagAtSource' in element) || - element.timeTagAtSource === null - ? new Date(1970, 0, 1) - : element.timeTagAtSource - ) - } - }) - Log.log(`Finished creating OPC UA Variables.`) - - // setInterval(async () => { - // metrics['BRA-AM-MW'].setValueFromSource( - // new Variant({ dataType: DataType.Double, value: await getValue('BRA-AM-MW', rtCollection) }), - // StatusCodes.Good - // ) - // - // - // // const writeValue = { - // // attributeId: AttributeIds.Value, - // // dataValue: new DataValue({ - // // statusCode: StatusCodes.Good, - // // sourceTimestamp: new Date(), - // // value: new Variant({ dataType: DataType.Double, value: 3.14 }) - // // }), - // // // nodeId - // // }; - // // metrics['BRA-AM-MW'].writeAttribute(SessionContext.defaultContext,writeValue,(err, statusCode) => { - // // if (err) { console.log("Write has failed"); return; } - // // console.log("write statusCode = ",statusCode.toString()); - // // }); - // - // }, 5000) - - const csPipeline = [ - { - $project: { documentKey: false } - }, - { - $match: { - $or: [ - { - $and: [ - { - 'updateDescription.updatedFields.sourceDataUpdate': { - $exists: false - } - }, - filterGroup1CS, - { - 'fullDocument._id': { - $ne: -2 - } - }, - { - 'fullDocument._id': { - $ne: -1 - } - }, - { operationType: 'update' } - ] + let cmdWriteProp = {} + if (element.origin === 'command') { + let variant = { dataType: DataType.Double, value: element?.value } + if (element.type === 'string') + variant = { + dataType: DataType.String, + value: element?.valueString, + } + if (element.type === 'digital') + variant = { + dataType: DataType.Boolean, + value: element?.value == 0 ? false : true, + } + + cmdWriteProp = { + value: { + get: () => new Variant(variant), + set: (variant) => { + sendCommand(element.tag, variant) + return StatusCodes.Good + }, }, - { operationType: 'replace' } - ] + } } - } - ] - - let changeStream = rtCollection.watch(csPipeline, { - fullDocument: 'updateLookup' - }) - try { - changeStream.on('error', change => { - changeStream.on('change', () => {}) - if (clientMongo) clientMongo.close() - clientMongo = null - Log.log('MongoDB - Error on ChangeStream!') - }) - changeStream.on('close', change => { - changeStream.on('change', () => {}) - if (clientMongo) clientMongo.close() - clientMongo = null - Log.log('MongoDB - Closed ChangeStream!') + let type, value, dataType + switch (element?.type) { + case 'digital': + type = 'Boolean' + dataType = DataType.Boolean + value = element.value === 0 ? false : true + break + case 'json': + type = 'String' + dataType = DataType.String + if ('valueJson' in element) JSON.stringify(element?.valueJson) + else value = JSON.stringify(element?.value) + break + case 'string': + type = 'String' + dataType = DataType.String + if ('valueString' in element) value = element.valueString + else value = element.value.toString() + break + case 'analog': + type = 'Double' + dataType = DataType.Double + value = parseFloat(element.value) + break + default: + return + } + if (type) { + metrics[element.tag] = namespace.addVariable({ + componentOf: device, + nodeId: 'i=' + element._id, + browseName: element.tag, + dataType: type, + description: element?.description, + minimumSamplingInterval: 1000, + ...cmdWriteProp, + //value: { + // get: () => new Variant({}), + // set: variant => { + // console.log(variant) + // console.log(element.tag) + // return StatusCodes.Good + // } + //} + }) + metrics[element.tag].setValueFromSource( + new Variant({ + dataType: dataType, + value: value, + }), + element.invalid ? StatusCodes.Bad : StatusCodes.Good, + !('timeTagAtSource' in element) || + element.timeTagAtSource === null + ? new Date(1970, 0, 1) + : element.timeTagAtSource + ) + } }) - changeStream.on('end', change => { - changeStream.on('change', () => {}) - if (clientMongo) clientMongo.close() - clientMongo = null - Log.log('MongoDB - Ended ChangeStream!') + Log.log(`Finished creating OPC UA Variables.`) + + // setInterval(async () => { + // metrics['BRA-AM-MW'].setValueFromSource( + // new Variant({ dataType: DataType.Double, value: await getValue('BRA-AM-MW', rtCollection) }), + // StatusCodes.Good + // ) + // + // + // // const writeValue = { + // // attributeId: AttributeIds.Value, + // // dataValue: new DataValue({ + // // statusCode: StatusCodes.Good, + // // sourceTimestamp: new Date(), + // // value: new Variant({ dataType: DataType.Double, value: 3.14 }) + // // }), + // // // nodeId + // // }; + // // metrics['BRA-AM-MW'].writeAttribute(SessionContext.defaultContext,writeValue,(err, statusCode) => { + // // if (err) { console.log("Write has failed"); return; } + // // console.log("write statusCode = ",statusCode.toString()); + // // }); + // + // }, 5000) + + const csPipeline = [ + { + $project: { documentKey: false }, + }, + { + $match: { + $or: [ + { + $and: [ + { + 'updateDescription.updatedFields.sourceDataUpdate': { + $exists: false, + }, + }, + filterGroup1CS, + { + 'fullDocument._id': { + $ne: -2, + }, + }, + { + 'fullDocument._id': { + $ne: -1, + }, + }, + { operationType: 'update' }, + ], + }, + { operationType: 'replace' }, + ], + }, + }, + ] + + let changeStream = rtCollection.watch(csPipeline, { + fullDocument: 'updateLookup', }) - // start to listen for changes - // a mongo disconnection produces a fatal error here! - changeStream.on('change', change => { - let m = metrics[change.fullDocument?.tag] - if (m !== undefined) { - switch (change.fullDocument?.type) { - case 'analog': - m.setValueFromSource( - new Variant({ - dataType: DataType.Double, - value: parseFloat(change.fullDocument?.value) - }), - change.fullDocument?.invalid - ? StatusCodes.Bad - : StatusCodes.Good, - !('timeTagAtSource' in change.fullDocument) || - change.fullDocument.timeTagAtSource === null - ? new Date(1970, 0, 1) - : change.fullDocument.timeTagAtSource - ) - Log.log( - change.fullDocument?.tag + - ' ' + - change.fullDocument?.value + - (change.fullDocument?.invalid ? ' bad' : ' good'), - Log.levelDetailed - ) - break - case 'digital': - m.setValueFromSource( - new Variant({ - dataType: DataType.Boolean, - value: change.fullDocument?.value === 0 ? false : true - }), - change.fullDocument?.invalid - ? StatusCodes.Bad - : StatusCodes.Good, - !('timeTagAtSource' in change.fullDocument) || - change.fullDocument.timeTagAtSource === null - ? new Date(1970, 0, 1) - : change.fullDocument.timeTagAtSource - ) - Log.log( - change.fullDocument?.tag + - ' ' + - change.fullDocument?.value + - (change.fullDocument?.invalid ? ' bad' : ' good'), - Log.levelDetailed - ) - break - case 'string': - m.setValueFromSource( - new Variant({ - dataType: DataType.String, - value: change.fullDocument?.valueString - }), - change.fullDocument?.invalid - ? StatusCodes.Bad - : StatusCodes.Good, - !('timeTagAtSource' in change.fullDocument) || - change.fullDocument.timeTagAtSource === null - ? new Date(1970, 0, 1) - : change.fullDocument.timeTagAtSource - ) - Log.log( - change.fullDocument?.tag + - ' ' + - change.fullDocument?.valueString + - (change.fullDocument?.invalid ? ' bad' : ' good'), - Log.levelDetailed - ) - break - case 'json': - m.setValueFromSource( - new Variant({ - dataType: DataType.String, - value: JSON.stringify(change.fullDocument?.valueJson) - }), - change.fullDocument?.invalid - ? StatusCodes.Bad - : StatusCodes.Good, - !('timeTagAtSource' in change.fullDocument) || - change.fullDocument.timeTagAtSource === null - ? new Date(1970, 0, 1) - : change.fullDocument.timeTagAtSource - ) - Log.log( - change.fullDocument?.tag + - ' ' + - JSON.stringify(change.fullDocument?.valueJson) + - (change.fullDocument?.invalid ? ' bad' : ' good'), - Log.levelDetailed - ) - break + try { + changeStream.on('error', (change) => { + changeStream.on('change', () => {}) + if (clientMongo) clientMongo.close() + clientMongo = null + Log.log('MongoDB - Error on ChangeStream!') + }) + changeStream.on('close', (change) => { + clientMongo = null + Log.log('MongoDB - Closed ChangeStream!') + }) + changeStream.on('end', (change) => { + changeStream.on('change', () => {}) + clientMongo = null + Log.log('MongoDB - Ended ChangeStream!') + }) + + // start to listen for changes + // a mongo disconnection produces a fatal error here! + changeStream.on('change', (change) => { + let m = metrics[change.fullDocument?.tag] + if (m !== undefined) { + switch (change.fullDocument?.type) { + case 'analog': + m.setValueFromSource( + new Variant({ + dataType: DataType.Double, + value: parseFloat(change.fullDocument?.value), + }), + change.fullDocument?.invalid + ? StatusCodes.Bad + : StatusCodes.Good, + !('timeTagAtSource' in change.fullDocument) || + change.fullDocument.timeTagAtSource === null + ? new Date(1970, 0, 1) + : change.fullDocument.timeTagAtSource + ) + Log.log( + change.fullDocument?.tag + + ' ' + + change.fullDocument?.value + + (change.fullDocument?.invalid ? ' bad' : ' good'), + Log.levelDetailed + ) + break + case 'digital': + m.setValueFromSource( + new Variant({ + dataType: DataType.Boolean, + value: change.fullDocument?.value === 0 ? false : true, + }), + change.fullDocument?.invalid + ? StatusCodes.Bad + : StatusCodes.Good, + !('timeTagAtSource' in change.fullDocument) || + change.fullDocument.timeTagAtSource === null + ? new Date(1970, 0, 1) + : change.fullDocument.timeTagAtSource + ) + Log.log( + change.fullDocument?.tag + + ' ' + + change.fullDocument?.value + + (change.fullDocument?.invalid ? ' bad' : ' good'), + Log.levelDetailed + ) + break + case 'string': + m.setValueFromSource( + new Variant({ + dataType: DataType.String, + value: change.fullDocument?.valueString, + }), + change.fullDocument?.invalid + ? StatusCodes.Bad + : StatusCodes.Good, + !('timeTagAtSource' in change.fullDocument) || + change.fullDocument.timeTagAtSource === null + ? new Date(1970, 0, 1) + : change.fullDocument.timeTagAtSource + ) + Log.log( + change.fullDocument?.tag + + ' ' + + change.fullDocument?.valueString + + (change.fullDocument?.invalid ? ' bad' : ' good'), + Log.levelDetailed + ) + break + case 'json': + m.setValueFromSource( + new Variant({ + dataType: DataType.String, + value: JSON.stringify(change.fullDocument?.valueJson), + }), + change.fullDocument?.invalid + ? StatusCodes.Bad + : StatusCodes.Good, + !('timeTagAtSource' in change.fullDocument) || + change.fullDocument.timeTagAtSource === null + ? new Date(1970, 0, 1) + : change.fullDocument.timeTagAtSource + ) + Log.log( + change.fullDocument?.tag + + ' ' + + JSON.stringify(change.fullDocument?.valueJson) + + (change.fullDocument?.invalid ? ' bad' : ' good'), + Log.levelDetailed + ) + break + } } - } - }) - } catch (e) { - Log.log('MongoDB - CS Error: ' + e, Log.levelMin) - } - }) + }) + } catch (e) { + Log.log('MongoDB - CS Error: ' + e, Log.levelMin) + } + }) + .catch(function (err) { + if (clientMongo) clientMongo.close() + clientMongo = null + Log.log(err) + }) // wait 5 seconds - await new Promise(resolve => setTimeout(resolve, 5000)) - - if (!(await checkConnectedMongo(clientMongo))) { - clientMongo = null - } + await new Promise((resolve) => setTimeout(resolve, 5000)) // detect connection problems, if error will null the client to later reconnect - if (!clientMongo) { - Log.log('MongoDB - Disconnected Mongodb!') + if (clientMongo === undefined) { + Log.log('Disconnected Mongodb!') clientMongo = null - rtCollection = null - cmdCollection = null - connsCollection = null + } + if (clientMongo) + if (!(await checkConnectedMongo(clientMongo))) { + // not anymore connected, will retry + Log.log('Disconnected Mongodb!') + if (clientMongo) clientMongo.close() + clientMongo = null + } + if (!clientMongo && server) { + Log.log('Shutting down OPC-UA server!') + await server.shutdownChannels() + await server.shutdown() + server = null } } })() // find the connection number, if not found abort (only one connection per instance is allowed for this protocol) -async function getConnection (connsCollection, configObj) { +async function getConnection(connsCollection, configObj) { let results = await connsCollection .find({ protocolDriver: AppDefs.NAME, - protocolDriverInstanceNumber: configObj.Instance + protocolDriverInstanceNumber: configObj.Instance, }) .toArray() @@ -654,13 +672,13 @@ async function getConnection (connsCollection, configObj) { return connection } -async function getValue (tag, rtCollection) { +async function getValue(tag, rtCollection) { if (rtCollection === null) return 0 let results = await rtCollection .find( { - tag: tag + tag: tag, }, { projection: { @@ -673,8 +691,8 @@ async function getValue (tag, rtCollection) { timeTagAtSource: 1, timeTagAtSourceOk: 1, invalid: 1, - isEvent: 1 - } + isEvent: 1, + }, } ) .toArray() @@ -688,13 +706,11 @@ async function getValue (tag, rtCollection) { } // test mongoDB connectivity -let CheckMongoConnectionTimeout = 1000 -let HintMongoIsConnected = true -async function checkConnectedMongo (client) { +async function checkConnectedMongo(client) { if (!client) { return false } - + const CheckMongoConnectionTimeout = 1000 let tr = setTimeout(() => { Log.log('Mongo ping timeout error!') HintMongoIsConnected = false diff --git a/src/OPC-UA-Server/load-config.js b/src/OPC-UA-Server/load-config.js index 676d8bc7..333f97b5 100644 --- a/src/OPC-UA-Server/load-config.js +++ b/src/OPC-UA-Server/load-config.js @@ -1,7 +1,7 @@ 'use strict' /* - * {json:scada} - Copyright (c) 2020-2021 - Ricardo L. Olsen + * {json:scada} - Copyright (c) 2020-2023 - Ricardo L. Olsen * This file is part of the JSON-SCADA distribution (https://github.com/riclolsen/json-scada). * * This program is free software: you can redistribute it and/or modify diff --git a/src/OPC-UA-Server/package-lock.json b/src/OPC-UA-Server/package-lock.json index 088c5f85..f1e119be 100644 --- a/src/OPC-UA-Server/package-lock.json +++ b/src/OPC-UA-Server/package-lock.json @@ -9,1120 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "mongodb": "^4.1.0", - "node-opcua": "^2.64.0" - } - }, - "node_modules/@aws-crypto/crc32": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", - "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", - "optional": true, - "dependencies": { - "@aws-crypto/util": "^3.0.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/crc32/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true - }, - "node_modules/@aws-crypto/ie11-detection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", - "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", - "optional": true, - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", - "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", - "optional": true, - "dependencies": { - "@aws-crypto/ie11-detection": "^3.0.0", - "@aws-crypto/sha256-js": "^3.0.0", - "@aws-crypto/supports-web-crypto": "^3.0.0", - "@aws-crypto/util": "^3.0.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", - "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", - "optional": true, - "dependencies": { - "@aws-crypto/util": "^3.0.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", - "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", - "optional": true, - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true - }, - "node_modules/@aws-crypto/util": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", - "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "optional": true - }, - "node_modules/@aws-sdk/abort-controller": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.357.0.tgz", - "integrity": "sha512-nQYDJon87quPwt2JZJwUN2GFKJnvE5kWb6tZP4xb5biSGUKBqDQo06oYed7yokatCuCMouIXV462aN0fWODtOw==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.360.0.tgz", - "integrity": "sha512-9ZORXlW52GTUqM0M0a+49yH4a1kxk5HKyvzXHKttQEiml1EKrteVsvU5zDvcY6v6y3QwDeT4nDuXbb7NVB7glQ==", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.360.0", - "@aws-sdk/config-resolver": "3.357.0", - "@aws-sdk/credential-provider-node": "3.360.0", - "@aws-sdk/fetch-http-handler": "3.357.0", - "@aws-sdk/hash-node": "3.357.0", - "@aws-sdk/invalid-dependency": "3.357.0", - "@aws-sdk/middleware-content-length": "3.357.0", - "@aws-sdk/middleware-endpoint": "3.357.0", - "@aws-sdk/middleware-host-header": "3.357.0", - "@aws-sdk/middleware-logger": "3.357.0", - "@aws-sdk/middleware-recursion-detection": "3.357.0", - "@aws-sdk/middleware-retry": "3.357.0", - "@aws-sdk/middleware-serde": "3.357.0", - "@aws-sdk/middleware-signing": "3.357.0", - "@aws-sdk/middleware-stack": "3.357.0", - "@aws-sdk/middleware-user-agent": "3.357.0", - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/node-http-handler": "3.360.0", - "@aws-sdk/smithy-client": "3.360.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/url-parser": "3.357.0", - "@aws-sdk/util-base64": "3.310.0", - "@aws-sdk/util-body-length-browser": "3.310.0", - "@aws-sdk/util-body-length-node": "3.310.0", - "@aws-sdk/util-defaults-mode-browser": "3.360.0", - "@aws-sdk/util-defaults-mode-node": "3.360.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-retry": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.357.0", - "@aws-sdk/util-user-agent-node": "3.357.0", - "@aws-sdk/util-utf8": "3.310.0", - "@smithy/protocol-http": "^1.0.1", - "@smithy/types": "^1.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.360.0.tgz", - "integrity": "sha512-0f6eG+6XFbDxrma5xxNGg/FJxh/OHC6h8AkfNms9Lv1gBoQSagpcTor+ax0z9F6lypOjaelX6k4DpeKAp4PZeA==", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.357.0", - "@aws-sdk/fetch-http-handler": "3.357.0", - "@aws-sdk/hash-node": "3.357.0", - "@aws-sdk/invalid-dependency": "3.357.0", - "@aws-sdk/middleware-content-length": "3.357.0", - "@aws-sdk/middleware-endpoint": "3.357.0", - "@aws-sdk/middleware-host-header": "3.357.0", - "@aws-sdk/middleware-logger": "3.357.0", - "@aws-sdk/middleware-recursion-detection": "3.357.0", - "@aws-sdk/middleware-retry": "3.357.0", - "@aws-sdk/middleware-serde": "3.357.0", - "@aws-sdk/middleware-stack": "3.357.0", - "@aws-sdk/middleware-user-agent": "3.357.0", - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/node-http-handler": "3.360.0", - "@aws-sdk/smithy-client": "3.360.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/url-parser": "3.357.0", - "@aws-sdk/util-base64": "3.310.0", - "@aws-sdk/util-body-length-browser": "3.310.0", - "@aws-sdk/util-body-length-node": "3.310.0", - "@aws-sdk/util-defaults-mode-browser": "3.360.0", - "@aws-sdk/util-defaults-mode-node": "3.360.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-retry": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.357.0", - "@aws-sdk/util-user-agent-node": "3.357.0", - "@aws-sdk/util-utf8": "3.310.0", - "@smithy/protocol-http": "^1.0.1", - "@smithy/types": "^1.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.360.0.tgz", - "integrity": "sha512-czIpPt75fS3gH3vgFz76+WTaKcvPxC/DnPuqVyHdihMmP0UuwGPU9jn+Xx9RdUw7Yay3+rJRe3AYgBn4Xb220g==", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.357.0", - "@aws-sdk/fetch-http-handler": "3.357.0", - "@aws-sdk/hash-node": "3.357.0", - "@aws-sdk/invalid-dependency": "3.357.0", - "@aws-sdk/middleware-content-length": "3.357.0", - "@aws-sdk/middleware-endpoint": "3.357.0", - "@aws-sdk/middleware-host-header": "3.357.0", - "@aws-sdk/middleware-logger": "3.357.0", - "@aws-sdk/middleware-recursion-detection": "3.357.0", - "@aws-sdk/middleware-retry": "3.357.0", - "@aws-sdk/middleware-serde": "3.357.0", - "@aws-sdk/middleware-stack": "3.357.0", - "@aws-sdk/middleware-user-agent": "3.357.0", - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/node-http-handler": "3.360.0", - "@aws-sdk/smithy-client": "3.360.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/url-parser": "3.357.0", - "@aws-sdk/util-base64": "3.310.0", - "@aws-sdk/util-body-length-browser": "3.310.0", - "@aws-sdk/util-body-length-node": "3.310.0", - "@aws-sdk/util-defaults-mode-browser": "3.360.0", - "@aws-sdk/util-defaults-mode-node": "3.360.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-retry": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.357.0", - "@aws-sdk/util-user-agent-node": "3.357.0", - "@aws-sdk/util-utf8": "3.310.0", - "@smithy/protocol-http": "^1.0.1", - "@smithy/types": "^1.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.360.0.tgz", - "integrity": "sha512-ORRwSdwlSYGHfhQCXKtr1eJeTjI14l5IZRJbRDgXs46y4/GQj/rt/2Q6WGjVMfM1ZRRiEII2/vK7mU7IJcWkFw==", - "optional": true, - "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/config-resolver": "3.357.0", - "@aws-sdk/credential-provider-node": "3.360.0", - "@aws-sdk/fetch-http-handler": "3.357.0", - "@aws-sdk/hash-node": "3.357.0", - "@aws-sdk/invalid-dependency": "3.357.0", - "@aws-sdk/middleware-content-length": "3.357.0", - "@aws-sdk/middleware-endpoint": "3.357.0", - "@aws-sdk/middleware-host-header": "3.357.0", - "@aws-sdk/middleware-logger": "3.357.0", - "@aws-sdk/middleware-recursion-detection": "3.357.0", - "@aws-sdk/middleware-retry": "3.357.0", - "@aws-sdk/middleware-sdk-sts": "3.357.0", - "@aws-sdk/middleware-serde": "3.357.0", - "@aws-sdk/middleware-signing": "3.357.0", - "@aws-sdk/middleware-stack": "3.357.0", - "@aws-sdk/middleware-user-agent": "3.357.0", - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/node-http-handler": "3.360.0", - "@aws-sdk/smithy-client": "3.360.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/url-parser": "3.357.0", - "@aws-sdk/util-base64": "3.310.0", - "@aws-sdk/util-body-length-browser": "3.310.0", - "@aws-sdk/util-body-length-node": "3.310.0", - "@aws-sdk/util-defaults-mode-browser": "3.360.0", - "@aws-sdk/util-defaults-mode-node": "3.360.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-retry": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.357.0", - "@aws-sdk/util-user-agent-node": "3.357.0", - "@aws-sdk/util-utf8": "3.310.0", - "@smithy/protocol-http": "^1.0.1", - "@smithy/types": "^1.0.0", - "fast-xml-parser": "4.2.5", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/config-resolver": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.357.0.tgz", - "integrity": "sha512-cukfg0nX7Tzx/xFyH5F4Eyb8DA1ITCGtSQv4vnEjgUop+bkzckuGLKEeBcBhyZY+aw+2C9CVwIHwIMhRm0ul5w==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-config-provider": "3.310.0", - "@aws-sdk/util-middleware": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.360.0.tgz", - "integrity": "sha512-84710lUaDBc7jujf8WnvBAcFt7gmOPQXkwNe6M4STMDG6HTvbOc2jRzjIu0iOTz8lNCt5A4+mdOl31JgfBF/LA==", - "optional": true, - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.360.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.357.0.tgz", - "integrity": "sha512-UOecwfqvXgJVqhfWSZ2S44v2Nq2oceW0PQVQp0JAa9opc2rxSVIfyOhPr0yMoPmpyNcP22rgeg6ce70KULYwiA==", - "optional": true, - "dependencies": { - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.357.0.tgz", - "integrity": "sha512-upw/bfsl7/WydT6gM0lBuR4Ipp4fzYm/E3ObFr0Mg5OkgVPt5ZJE+eeFTvwCpDdBSTKs4JfrK6/iEK8A23Q1jQ==", - "optional": true, - "dependencies": { - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/url-parser": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.360.0.tgz", - "integrity": "sha512-pWuLTq+yjSFssPGhDJ8oxvZsu7/F1KissGRt65G4qrfxHhoiMRcLF1GtFJueDQpitZ1i3mZXHVn/OSv4LPQ1Lw==", - "optional": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.357.0", - "@aws-sdk/credential-provider-imds": "3.357.0", - "@aws-sdk/credential-provider-process": "3.357.0", - "@aws-sdk/credential-provider-sso": "3.360.0", - "@aws-sdk/credential-provider-web-identity": "3.357.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/shared-ini-file-loader": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.360.0.tgz", - "integrity": "sha512-j4Lu5vXkdzz/L6fGKKxnL0vcwAGHlwFHjTg9nRagMn1lvaVjtktXeM30duHTBQq9i+ejdFxpVNWYrmHGaWPNdg==", - "optional": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.357.0", - "@aws-sdk/credential-provider-imds": "3.357.0", - "@aws-sdk/credential-provider-ini": "3.360.0", - "@aws-sdk/credential-provider-process": "3.357.0", - "@aws-sdk/credential-provider-sso": "3.360.0", - "@aws-sdk/credential-provider-web-identity": "3.357.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/shared-ini-file-loader": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.357.0.tgz", - "integrity": "sha512-qFWWilFPsc2hR7O0KIhwcE78w+pVIK+uQR6MQMfdRyxUndgiuCorJwVjedc3yZtmnoELHF34j+m8whTBXv9E7Q==", - "optional": true, - "dependencies": { - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/shared-ini-file-loader": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.360.0.tgz", - "integrity": "sha512-kW0FR8AbMQrJxADxIqYSjHVN2RXwHmA5DzogYm1AjOkYRMN9JHDVOMQP2K2M6FCynZqTYsKW5lzjPOjS0fu8Dw==", - "optional": true, - "dependencies": { - "@aws-sdk/client-sso": "3.360.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/shared-ini-file-loader": "3.357.0", - "@aws-sdk/token-providers": "3.360.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.357.0.tgz", - "integrity": "sha512-0KRRAFrXy5HJe2vqnCWCoCS+fQw7IoIj3KQsuURJMW4F+ifisxCgEsh3brJ2LQlN4ElWTRJhlrDHNZ/pd61D4w==", - "optional": true, - "dependencies": { - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/credential-providers": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.360.0.tgz", - "integrity": "sha512-Bw7EmOAy30c/zspotzmQG4oJMQyRdNrsDyI99bb7GALwZhXgqh90hYw+HCz0Rq8W5H5BT3pBjby68PoYW4Av7w==", - "optional": true, - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.360.0", - "@aws-sdk/client-sso": "3.360.0", - "@aws-sdk/client-sts": "3.360.0", - "@aws-sdk/credential-provider-cognito-identity": "3.360.0", - "@aws-sdk/credential-provider-env": "3.357.0", - "@aws-sdk/credential-provider-imds": "3.357.0", - "@aws-sdk/credential-provider-ini": "3.360.0", - "@aws-sdk/credential-provider-node": "3.360.0", - "@aws-sdk/credential-provider-process": "3.357.0", - "@aws-sdk/credential-provider-sso": "3.360.0", - "@aws-sdk/credential-provider-web-identity": "3.357.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-codec": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.357.0.tgz", - "integrity": "sha512-bqenTHG6GH6aCk/Il+ooWXVVAZuc8lOgVEy9bE2hI49oVqT8zSuXxQB+w1WWyZoAOPcelsjayB1wfPub8VDBxQ==", - "optional": true, - "dependencies": { - "@aws-crypto/crc32": "3.0.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-hex-encoding": "3.310.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.357.0.tgz", - "integrity": "sha512-5sPloTO8y8fAnS/6/Sfp/aVoL9zuhzkLdWBORNzMazdynVNEzWKWCPZ27RQpgkaCDHiXjqUY4kfuFXAGkvFfDQ==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/querystring-builder": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-base64": "3.310.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/hash-node": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.357.0.tgz", - "integrity": "sha512-fq3LS9AxHKb7dTZkm6iM1TrGk6XOTZz96iEZPME1+vjiSEXGWuebHt87q92n+KozVGRypn9MId3lHOPBBjygNQ==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-buffer-from": "3.310.0", - "@aws-sdk/util-utf8": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.357.0.tgz", - "integrity": "sha512-HnCYZczf0VdyxMVMMxmA3QJAyyPSFbcMtZzgKbxVTWTG7GKpQe0psWZu/7O2Nk31mKg6vEUdiP1FylqLBsgMOA==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz", - "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.357.0.tgz", - "integrity": "sha512-zQOFEyzOXAgN4M54tYNWGxKxnyzY0WwYDTFzh9riJRmxN1hTEKHUKmze4nILIf5rkQmOG4kTf1qmfazjkvZAhw==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-endpoint": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.357.0.tgz", - "integrity": "sha512-ScJi0SL8X/Lyi0Fp5blg0QN/Z6PoRwV/ZJXd8dQkXSznkbSvJHfqPP0xk/w3GcQ1TKsu5YEPfeYy8ejcq+7Pgg==", - "optional": true, - "dependencies": { - "@aws-sdk/middleware-serde": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/url-parser": "3.357.0", - "@aws-sdk/util-middleware": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.357.0.tgz", - "integrity": "sha512-HuGLcP7JP1qJ5wGT9GSlEknDaTSnOzHY4T6IPFuvFjAy3PvY5siQNm6+VRqdVS+n6/kzpL3JP5sAVM3aoxHT6Q==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.357.0.tgz", - "integrity": "sha512-dncT3tr+lZ9+duZo52rASgO6AKVwRcsc2/T93gmaYVrJqI6WWAwQ7yML5s72l9ZjQ5LZ+4jjrgtlufavAS0eCg==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.357.0.tgz", - "integrity": "sha512-AXC54IeDS3jC1dbbkYHML4STvBPcKZ4IJTWdjEK1RCOgqXd0Ze1cE1e21wyj1tM6prF03zLyvpBd+3TS++nqfA==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-retry": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.357.0.tgz", - "integrity": "sha512-ZCbXCYv3nglQqwREYxxpclrnR9MYPAnHlLcC8e9PbApqxGnaZdhoywxoqbgqT3hf/RM7kput4vEHDl1fyymcRQ==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/service-error-classification": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-middleware": "3.357.0", - "@aws-sdk/util-retry": "3.357.0", - "tslib": "^2.5.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.357.0.tgz", - "integrity": "sha512-Ng2VjLrPiL02QOcs1qs9jG2boO4Gn+v3VIbOJLG4zXcfbSq55iIWtlmr2ljfw9vP5aLhWtcODfmKHS5Bp+019Q==", - "optional": true, - "dependencies": { - "@aws-sdk/middleware-signing": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-serde": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.357.0.tgz", - "integrity": "sha512-bGI4kYuuEsFjlANbyJLyy4AovETnyf/SukgLOG7Qjbua+ZGuzvRhMsk21mBKKGrnsTO4PmtieJo6xClThGAN8g==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.357.0.tgz", - "integrity": "sha512-yB9ewEqI6Fw1OrmKFrUypbCqN5ijk06UGPochybamMuPxxkwMT3bnrm7eezsCA+TZbJyKhpffpyobwuv+xGNrA==", - "optional": true, - "dependencies": { - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/signature-v4": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-middleware": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-stack": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.357.0.tgz", - "integrity": "sha512-nNV+jfwGwmbOGZujAY/U8AW3EbVlxa9DJDLz3TPp/39o6Vu5KEzHJyDDNreo2k9V/TMvV+nOzHafufgPdagv7w==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.357.0.tgz", - "integrity": "sha512-M/CsAXjGblZS4rEbMb0Dn9IXbfq4EjVaTHBfvuILU/dKRppWvjnm2lRtqCZ+LIT3ATbAjA3/dY7dWsjxQWwijA==", - "optional": true, - "dependencies": { - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/node-config-provider": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.357.0.tgz", - "integrity": "sha512-kwBIzKCaW3UWqLdELhy7TcN8itNMOjbzga530nalFILMvn2IxrkdKQhNgxGBXy6QK6kCOtH6OmcrG3/oZkLwig==", - "optional": true, - "dependencies": { - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/shared-ini-file-loader": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/node-http-handler": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.360.0.tgz", - "integrity": "sha512-oMsXdMmNwHpUbebETO44bq0N4SocEMGfPjYNUTRs8md7ita5fuFd2qFuvf+ZRt6iVcGWluIqmF8DidD+b7d+TA==", - "optional": true, - "dependencies": { - "@aws-sdk/abort-controller": "3.357.0", - "@aws-sdk/protocol-http": "3.357.0", - "@aws-sdk/querystring-builder": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/property-provider": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.357.0.tgz", - "integrity": "sha512-im4W0u8WaYxG7J7ko4Xl3OEzK3Mrm1Rz6/txTGe6hTIHlyUISu1ekOQJXK6XYPqNMn8v1G3BiQREoRXUEJFbHg==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/protocol-http": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.357.0.tgz", - "integrity": "sha512-w1JHiI50VEea7duDeAspUiKJmmdIQblvRyjVMOqWA6FIQAyDVuEiPX7/MdQr0ScxhtRQxHbP0I4MFyl7ctRQvA==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/querystring-builder": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.357.0.tgz", - "integrity": "sha512-aQcicqB6Y2cNaXPPwunz612a01SMiQQPsdz632F/3Lzn0ua82BJKobHOtaiTUlmVJ5Q4/EAeNfwZgL7tTUNtDQ==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-uri-escape": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/querystring-parser": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.357.0.tgz", - "integrity": "sha512-Svvq+atRNP9s2VxiklcUNgCzmt3T5kfs7X2C+yjmxHvOQTPjLNaNGbfC/vhjOK7aoXw0h+lBac48r5ymx1PbQA==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/service-error-classification": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.357.0.tgz", - "integrity": "sha512-VuXeL4g5vKO9HjgCZlxmH8Uv1FcqUSjmbPpQkbNtYIDck6u0qzM0rG+n0/1EjyQbPSr3MhW/pkWs5nx2Nljlyg==", - "optional": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.357.0.tgz", - "integrity": "sha512-ceyqM4XxQe0Plb/oQAD2t1UOV2Iy4PFe1oAGM8dfJzYrRKu7zvMwru7/WaB3NYq+/mIY6RU+jjhRmjQ3GySVqA==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.357.0.tgz", - "integrity": "sha512-itt4/Jh9FqnzK30qIjXFBvM4J7zN4S/AAqsRMnaX7U4f/MV+1YxQHmzimpdMnsCXXs2jqFqKVRu6DewxJ3nbxg==", - "optional": true, - "dependencies": { - "@aws-sdk/eventstream-codec": "3.357.0", - "@aws-sdk/is-array-buffer": "3.310.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-hex-encoding": "3.310.0", - "@aws-sdk/util-middleware": "3.357.0", - "@aws-sdk/util-uri-escape": "3.310.0", - "@aws-sdk/util-utf8": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/smithy-client": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.360.0.tgz", - "integrity": "sha512-R7wbT2SkgWNEAxMekOTNcPcvBszabW2+qHjrcelbbVJNjx/2yK+MbpZI4WRSncByQMeeoW+aSUP+JgsbpiOWfw==", - "optional": true, - "dependencies": { - "@aws-sdk/middleware-stack": "3.357.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-stream": "3.360.0", - "@smithy/types": "^1.0.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.360.0.tgz", - "integrity": "sha512-gtnCmn2NL7uSwadqQPeU74Wo7Wf1NMJtui+KSWPYpc3joRZqIYj0kL5w0IT2S9tPQwCFerWVfhkvRkSGJ4nZ/g==", - "optional": true, - "dependencies": { - "@aws-sdk/client-sso-oidc": "3.360.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/shared-ini-file-loader": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/url-parser": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.357.0.tgz", - "integrity": "sha512-fAaU6cFsaAba01lCRsRJiYR/LfXvX2wudyEyutBVglE4dWSoSeu3QJNxImIzTBULfbiFhz59++NQ1JUVx88IVg==", - "optional": true, - "dependencies": { - "@aws-sdk/querystring-parser": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/util-base64": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz", - "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==", - "optional": true, - "dependencies": { - "@aws-sdk/util-buffer-from": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz", - "integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz", - "integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz", - "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==", - "optional": true, - "dependencies": { - "@aws-sdk/is-array-buffer": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-config-provider": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz", - "integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.360.0.tgz", - "integrity": "sha512-/GR8VlK9xo1Q5WbVYuNaZ+XfoCFdWNb4z4mpoEgvEgBH4R0GjqiAqLftUA8Ykq1tJuDAKPYVzUNzK8DC0pt7/g==", - "optional": true, - "dependencies": { - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.360.0.tgz", - "integrity": "sha512-gR3Ctqpyl7SgStDJ1Jlq6qQDuw/rS9AgbAXx+s3wsmm3fm8lHKkXkDPYVvNDqd6dVXRO6q8MRx00lwkGI4qrpQ==", - "optional": true, - "dependencies": { - "@aws-sdk/config-resolver": "3.357.0", - "@aws-sdk/credential-provider-imds": "3.357.0", - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/property-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-endpoints": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz", - "integrity": "sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz", - "integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz", - "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-middleware": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.357.0.tgz", - "integrity": "sha512-pV1krjZs7BdahZBfsCJMatE8kcor7GFsBOWrQgQDm9T0We5b5xPpOO2vxAD0RytBpY8Ky2ELs/+qXMv7l5fWIA==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-retry": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.357.0.tgz", - "integrity": "sha512-SUqYJE9msbuOVq+vnUy+t0LH7XuYNFz66dSF8q6tedsbJK4j8tgya0I1Ct3m06ynGrXDJMaj39I7AXCyW9bjtw==", - "optional": true, - "dependencies": { - "@aws-sdk/service-error-classification": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@aws-sdk/util-stream": { - "version": "3.360.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream/-/util-stream-3.360.0.tgz", - "integrity": "sha512-t3naBfNesXwLis29pzSfLx2ifCn2180GiPjRaIsQP14IiVCBOeT1xaU6Dpyk7WeR/jW4cu7wGl+kbeyfNF6QmQ==", - "optional": true, - "dependencies": { - "@aws-sdk/fetch-http-handler": "3.357.0", - "@aws-sdk/node-http-handler": "3.360.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-base64": "3.310.0", - "@aws-sdk/util-buffer-from": "3.310.0", - "@aws-sdk/util-hex-encoding": "3.310.0", - "@aws-sdk/util-utf8": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz", - "integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.357.0.tgz", - "integrity": "sha512-JHaWlNIUkPNvXkqeDOrqFzAlAgdwZK5mZw7FQnCRvf8tdSogpGZSkuyb9Z6rLD9gC40Srbc2nepO1cFpeMsDkA==", - "optional": true, - "dependencies": { - "@aws-sdk/types": "3.357.0", - "bowser": "^2.11.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.357.0.tgz", - "integrity": "sha512-RdpQoaJWQvcS99TVgSbT451iGrlH4qpWUWFA9U1IRhxOSsmC1hz8ME7xc8nci9SREx/ZlfT3ai6LpoAzAtIEMA==", - "optional": true, - "dependencies": { - "@aws-sdk/node-config-provider": "3.357.0", - "@aws-sdk/types": "3.357.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/util-utf8": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz", - "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==", - "optional": true, - "dependencies": { - "@aws-sdk/util-buffer-from": "3.310.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.259.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", - "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", - "optional": true, - "dependencies": { - "tslib": "^2.3.1" + "mongodb": "^5.7.0", + "node-opcua": "^2.108.0" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -1291,31 +179,6 @@ "tsyringe": "^4.7.0" } }, - "node_modules/@smithy/protocol-http": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.0.tgz", - "integrity": "sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg==", - "optional": true, - "dependencies": { - "@smithy/types": "^1.1.0", - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@smithy/types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.1.0.tgz", - "integrity": "sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw==", - "optional": true, - "dependencies": { - "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@ster5/global-mutex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@ster5/global-mutex/-/global-mutex-2.0.0.tgz", @@ -1366,9 +229,9 @@ } }, "node_modules/@types/node": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", - "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==" + "version": "20.4.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.4.tgz", + "integrity": "sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==" }, "node_modules/@types/proper-lockfile": { "version": "4.1.2", @@ -1518,25 +381,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -1564,12 +408,6 @@ "node": ">=8" } }, - "node_modules/bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "optional": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1591,37 +429,11 @@ } }, "node_modules/bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "dependencies": { - "buffer": "^5.6.0" - }, + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.4.0.tgz", + "integrity": "sha512-WRZ5SQI5GfUuKnPTNmAYPiKIof3ORXAF4IRU5UcgmivNIon01rWQlw5RUH954dpu8yGL8T59YShVddIPaU/gFA==", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "node": ">=14.20.1" } }, "node_modules/buffer-crc32": { @@ -1844,28 +656,6 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/fast-xml-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", - "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "optional": true, - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -2077,25 +867,6 @@ "node": "*" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2225,15 +996,11 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -2321,20 +1088,43 @@ } }, "node_modules/mongodb": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.16.0.tgz", - "integrity": "sha512-0EB113Fsucaq1wsY0dOhi1fmZOwFtLOtteQkiqOXGklvWMnSH3g2QS53f0KTP+/6qOkuoXE2JksubSZNmxeI+g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.7.0.tgz", + "integrity": "sha512-zm82Bq33QbqtxDf58fLWBwTjARK3NSvKYjyz997KSy6hpat0prjeX/kxjbPVyZY60XYPDNETaHkHJI2UCzSLuw==", "dependencies": { - "bson": "^4.7.2", - "mongodb-connection-string-url": "^2.5.4", + "bson": "^5.4.0", + "mongodb-connection-string-url": "^2.6.0", "socks": "^2.7.1" }, "engines": { - "node": ">=12.9.0" + "node": ">=14.20.1" }, "optionalDependencies": { - "@aws-sdk/credential-providers": "^3.186.0", "saslprep": "^1.0.3" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.201.0", + "@mongodb-js/zstd": "^1.1.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } } }, "node_modules/mongodb-connection-string-url": { @@ -2359,61 +1149,61 @@ } }, "node_modules/node-opcua": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua/-/node-opcua-2.105.1.tgz", - "integrity": "sha512-vwCAEbrEbHJI2bAFFEAOCH9rzcLPshw9gKEmxaGVqNgukyoXnwzimwbLkrE+qYT+5t6Wbddmr/oZJOCpx+lhJw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua/-/node-opcua-2.108.0.tgz", + "integrity": "sha512-zjE/K1EFwZj1tUJfYM+gM+hWVamwPcY0RHXtho7bjCbAX8LysOHlxARd7wGUmjA96EfrlOSd/RrWpaeLHG/+sw==", "dependencies": { "@types/semver": "^7.5.0", "chalk": "4.1.2", - "node-opcua-address-space": "2.105.1", - "node-opcua-address-space-for-conformance-testing": "2.105.1", - "node-opcua-aggregates": "2.105.1", + "node-opcua-address-space": "2.108.0", + "node-opcua-address-space-for-conformance-testing": "2.108.0", + "node-opcua-aggregates": "2.108.0", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-certificate-manager": "2.105.0", - "node-opcua-client": "2.105.1", - "node-opcua-client-crawler": "2.105.1", - "node-opcua-client-proxy": "2.105.0", - "node-opcua-common": "2.105.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-certificate-manager": "2.108.0", + "node-opcua-client": "2.108.0", + "node-opcua-client-crawler": "2.108.0", + "node-opcua-client-proxy": "2.108.0", + "node-opcua-common": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-crypto": "3.0.6", - "node-opcua-data-access": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-enum": "2.105.0", - "node-opcua-factory": "2.105.0", + "node-opcua-crypto": "3.1.0", + "node-opcua-data-access": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-enum": "2.108.0", + "node-opcua-factory": "2.108.0", "node-opcua-hostname": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-nodesets": "2.103.0", - "node-opcua-numeric-range": "2.105.0", - "node-opcua-packet-analyzer": "2.105.0", - "node-opcua-secure-channel": "2.105.0", - "node-opcua-server": "2.105.1", - "node-opcua-server-discovery": "2.105.1", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-call": "2.105.0", - "node-opcua-service-discovery": "2.105.0", - "node-opcua-service-endpoints": "2.105.0", - "node-opcua-service-filter": "2.105.0", - "node-opcua-service-history": "2.105.0", - "node-opcua-service-node-management": "2.105.0", - "node-opcua-service-query": "2.105.0", - "node-opcua-service-read": "2.105.0", - "node-opcua-service-register-node": "2.105.0", - "node-opcua-service-secure-channel": "2.105.0", - "node-opcua-service-session": "2.105.0", - "node-opcua-service-subscription": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-service-write": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-transport": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0", - "node-opcua-variant": "2.105.0", - "node-opcua-vendor-diagnostic": "2.105.1", - "semver": "^7.5.1" + "node-opcua-nodeid": "2.108.0", + "node-opcua-nodesets": "2.107.0", + "node-opcua-numeric-range": "2.108.0", + "node-opcua-packet-analyzer": "2.108.0", + "node-opcua-secure-channel": "2.108.0", + "node-opcua-server": "2.108.0", + "node-opcua-server-discovery": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-call": "2.108.0", + "node-opcua-service-discovery": "2.108.0", + "node-opcua-service-endpoints": "2.108.0", + "node-opcua-service-filter": "2.108.0", + "node-opcua-service-history": "2.108.0", + "node-opcua-service-node-management": "2.108.0", + "node-opcua-service-query": "2.108.0", + "node-opcua-service-read": "2.108.0", + "node-opcua-service-register-node": "2.108.0", + "node-opcua-service-secure-channel": "2.108.0", + "node-opcua-service-session": "2.108.0", + "node-opcua-service-subscription": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-service-write": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-transport": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0", + "node-opcua-variant": "2.108.0", + "node-opcua-vendor-diagnostic": "2.108.0", + "semver": "^7.5.4" }, "engines": { "node": ">=8.10" @@ -2423,9 +1213,9 @@ } }, "node_modules/node-opcua-address-space": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-address-space/-/node-opcua-address-space-2.105.1.tgz", - "integrity": "sha512-JsQHJWNR1fZH/hmwiTu06uHmig+EIHnGGtp+g0DDEMHfj2Xn5NwvR9R5kAUxSNAtY0IwzU2ekM0k3q9Coad77w==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-address-space/-/node-opcua-address-space-2.108.0.tgz", + "integrity": "sha512-eQq+MCQ/TWFtozu5k/h0SJC52S1tGjcvhGFdd6NsB7nnKk/DO+ox7kKEbDRtyxTqx4yZzTUqYNQJRxSAtb1UMA==", "dependencies": { "@types/lodash": "4.14.195", "@types/semver": "^7.5.0", @@ -2433,37 +1223,37 @@ "chalk": "4.1.2", "dequeue": "^1.0.5", "lodash": "4.17.21", - "node-opcua-address-space-base": "2.105.0", + "node-opcua-address-space-base": "2.108.0", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-client-dynamic-extension-object": "2.105.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-client-dynamic-extension-object": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-crypto": "3.0.6", - "node-opcua-data-access": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-date-time": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-enum": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-nodeset-ua": "2.105.0", - "node-opcua-numeric-range": "2.105.0", - "node-opcua-object-registry": "2.105.0", - "node-opcua-pseudo-session": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-call": "2.105.0", - "node-opcua-service-history": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-service-write": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0", - "node-opcua-variant": "2.105.0", - "node-opcua-xml2json": "2.105.0", - "semver": "^7.5.1", + "node-opcua-crypto": "3.1.0", + "node-opcua-data-access": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-date-time": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-enum": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-nodeset-ua": "2.108.0", + "node-opcua-numeric-range": "2.108.0", + "node-opcua-object-registry": "2.108.0", + "node-opcua-pseudo-session": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-call": "2.108.0", + "node-opcua-service-history": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-service-write": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0", + "node-opcua-variant": "2.108.0", + "node-opcua-xml2json": "2.108.0", + "semver": "^7.5.4", "set-prototype-of": "^1.0.0", "thenify": "^3.3.1", "xml-writer": "^1.7.0" @@ -2473,65 +1263,65 @@ } }, "node_modules/node-opcua-address-space-base": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-address-space-base/-/node-opcua-address-space-base-2.105.0.tgz", - "integrity": "sha512-7R1qX5I983LXd/xKWOLOZkDWxvzwTl9h62IVDZDmBq2yaxMwTZHc5cQyUXo6VDz4rqni+SE3zJcNpJa9I/T5iA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-address-space-base/-/node-opcua-address-space-base-2.108.0.tgz", + "integrity": "sha512-ibkD/2L2WwdeTT1AI6GRXI8Y5rj9t27W7ft6/syCcdsJAaxhNXPCAlhadOWaGMSRoHMFoCrZ2RcE9cGujh3uyA==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", + "node-opcua-basic-types": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-crypto": "3.0.6", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-date-time": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-numeric-range": "2.105.0", - "node-opcua-schemas": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-crypto": "3.1.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-date-time": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-numeric-range": "2.108.0", + "node-opcua-schemas": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-variant": "2.108.0" }, "engines": { "node": ">=6.10" } }, "node_modules/node-opcua-address-space-for-conformance-testing": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-address-space-for-conformance-testing/-/node-opcua-address-space-for-conformance-testing-2.105.1.tgz", - "integrity": "sha512-9rEYBGVi8/GpZDG3NozcfmI5tDTQNxMekwey8nWbv4a2M1WidLTQACWvFpgCxGgjOa4I0V9UjnJN9s344Fgc+Q==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-address-space-for-conformance-testing/-/node-opcua-address-space-for-conformance-testing-2.108.0.tgz", + "integrity": "sha512-Tjp7LZAU6J0I9f5R2nO6KOUviHCUUnQl3kZoBDv4edTlI/EDmGpGWQ+6Sdrn8KyVBJ6cVQsmz1QCEKf7qN1+tQ==", "dependencies": { - "node-opcua-address-space": "2.105.1", + "node-opcua-address-space": "2.108.0", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-data-access": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-data-access": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-aggregates": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-aggregates/-/node-opcua-aggregates-2.105.1.tgz", - "integrity": "sha512-xnPS2noypMYL3g7biywPhaaBwTKeBp2nZpS3wSFr4je/bbO8S0uL9jFRmkWHue2mB3NpaxY6x/NkP+fgpTEIqg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-aggregates/-/node-opcua-aggregates-2.108.0.tgz", + "integrity": "sha512-gHg50LvPzRQPdRjtkPIpLfvLQVRZFKKWCaI1DTdWcoQuftVZUolMZ1KwyzSrUkdSfy0/H4vBsTwCkyxbFx0TXA==", "dependencies": { - "node-opcua-address-space": "2.105.1", + "node-opcua-address-space": "2.108.0", "node-opcua-assert": "2.105.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-numeric-range": "2.105.0", - "node-opcua-server": "2.105.1", - "node-opcua-service-history": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-numeric-range": "2.108.0", + "node-opcua-server": "2.108.0", + "node-opcua-service-history": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-assert": { @@ -2543,191 +1333,191 @@ } }, "node_modules/node-opcua-basic-types": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-basic-types/-/node-opcua-basic-types-2.105.0.tgz", - "integrity": "sha512-npgQnrpgpo++ZaMx89ea2N7H30bsOmWnJyLYAZim42vHifLpES7A0IDHWaiigFM9k1LcS8pmh+2i5OmlLXpG5g==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-basic-types/-/node-opcua-basic-types-2.108.0.tgz", + "integrity": "sha512-IBu5BBA19xlBnw1ne4fQqaxwg4NckBfrIbbeKh9r2OAXpej6Wc9Dubp0WoQXcbZm7XTQoViQeIFQ0BfE7rAZNQ==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-buffer-utils": "2.105.0", - "node-opcua-date-time": "2.105.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-buffer-utils": "2.108.0", + "node-opcua-date-time": "2.108.0", "node-opcua-guid": "2.98.1", - "node-opcua-nodeid": "2.105.0", - "node-opcua-status-code": "2.105.0" + "node-opcua-nodeid": "2.108.0", + "node-opcua-status-code": "2.108.0" } }, "node_modules/node-opcua-binary-stream": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-binary-stream/-/node-opcua-binary-stream-2.105.0.tgz", - "integrity": "sha512-nSIlXrO6taTp/7VK9bZytk+GQdZ0g3t6Nc7iFNATMhNq4I6uOC2vfq47TPZvGvsMcTNECy5ioHt3wlkTyfMQJg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-binary-stream/-/node-opcua-binary-stream-2.108.0.tgz", + "integrity": "sha512-ViR0OmnpzYrJxepdlohQVm709nuvqj/Lw6NIIgYWGLJ5JhOkGw34I2fNl1HVhAm14HTP4IwY1PpjK26Ub+1ueg==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-buffer-utils": "2.105.0" + "node-opcua-buffer-utils": "2.108.0" } }, "node_modules/node-opcua-buffer-utils": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-buffer-utils/-/node-opcua-buffer-utils-2.105.0.tgz", - "integrity": "sha512-G/Cq0tKJYisEOHjn0IEUhlSGnpEHeeBI5Ll/9zM1mYpKR9hqURPSfOslrIDHF6tH9iimt96bdaB63+hxMJZ2yg==" + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-buffer-utils/-/node-opcua-buffer-utils-2.108.0.tgz", + "integrity": "sha512-qNtA2WTcSJjQP1Rn8hW7uQz58I0Nnf78DCt3C4n6tet9PYGl+pQctOfa9l4HBzib/ZpN0j65GurvQon0BG3Zyg==" }, "node_modules/node-opcua-certificate-manager": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-certificate-manager/-/node-opcua-certificate-manager-2.105.0.tgz", - "integrity": "sha512-kdWtcWyW2U1jQekU2Oh4OJ6Q7OKBOkpiQLR8jUSBR9gnkK6G+Lsu+V9du7kQAsN2ekmVRt/cfA97IJUyVnI0Jg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-certificate-manager/-/node-opcua-certificate-manager-2.108.0.tgz", + "integrity": "sha512-q1HOJVHMMxYnpN8yyVaM3Law46Q82Kx0FhJCQsQ6IJ+6d2Vvt0Uk8RlizGHJneTFU8q9y55L7HRseITacEH+1g==", "dependencies": { "@types/mkdirp": "1.0.2", "env-paths": "2.2.1", "mkdirp": "1.0.4", "node-opcua-assert": "2.105.0", - "node-opcua-crypto": "3.0.6", - "node-opcua-debug": "2.105.0", - "node-opcua-object-registry": "2.105.0", + "node-opcua-crypto": "3.1.0", + "node-opcua-debug": "2.108.0", + "node-opcua-object-registry": "2.108.0", "node-opcua-pki": "4.2.1", - "node-opcua-status-code": "2.105.0", + "node-opcua-status-code": "2.108.0", "thenify": "^3.3.1" } }, "node_modules/node-opcua-chunkmanager": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-chunkmanager/-/node-opcua-chunkmanager-2.105.0.tgz", - "integrity": "sha512-nnWHJq5N+QD1lDKp/ronyyWmtw9TmLPSPaqxTTdwsx1fYYvug+uWdu20+2UEVOXREyOG16muFjaHdwuU/qQIGw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-chunkmanager/-/node-opcua-chunkmanager-2.108.0.tgz", + "integrity": "sha512-dPeZal2z0IpLYKL7nhnEjmL1o5uMW8cx4OYJ3Mo+xt2+Y6zp/tvOTwJbkOE1j7Az4IP6Tu9a7xyDt/r3CKV0og==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-buffer-utils": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-packet-assembler": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-buffer-utils": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-packet-assembler": "2.108.0" } }, "node_modules/node-opcua-client": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-client/-/node-opcua-client-2.105.1.tgz", - "integrity": "sha512-t9zRPqAJqIdyz7IzHcGd845+5HemVDnxVI5igqJ0oEOcRsIZ4qsGqc/1hCEC8/nZLpqaeuKBTKxc1rrjUgvZPQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-client/-/node-opcua-client-2.108.0.tgz", + "integrity": "sha512-eud60qOk0cMWAKH0Ds4R5sRrbJS6LUmHI0gXtwmgIBfVwgZfIvVLhwEo1EJKVGqP8bLhNanMGCv4Tl4mRyEcuw==", "dependencies": { "@ster5/global-mutex": "^2.0.0", "@types/async": "^3.2.20", "async": "^3.2.4", "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-buffer-utils": "2.105.0", - "node-opcua-certificate-manager": "2.105.0", - "node-opcua-client-dynamic-extension-object": "2.105.0", - "node-opcua-common": "2.105.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-buffer-utils": "2.108.0", + "node-opcua-certificate-manager": "2.108.0", + "node-opcua-client-dynamic-extension-object": "2.108.0", + "node-opcua-common": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-crypto": "3.0.6", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-date-time": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-extension-object": "2.105.0", + "node-opcua-crypto": "3.1.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-date-time": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-extension-object": "2.108.0", "node-opcua-hostname": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-object-registry": "2.105.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-object-registry": "2.108.0", "node-opcua-pki": "4.2.1", - "node-opcua-pseudo-session": "2.105.0", - "node-opcua-schemas": "2.105.0", - "node-opcua-secure-channel": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-call": "2.105.0", - "node-opcua-service-discovery": "2.105.0", - "node-opcua-service-endpoints": "2.105.0", - "node-opcua-service-filter": "2.105.0", - "node-opcua-service-history": "2.105.0", - "node-opcua-service-query": "2.105.0", - "node-opcua-service-read": "2.105.0", - "node-opcua-service-register-node": "2.105.0", - "node-opcua-service-secure-channel": "2.105.0", - "node-opcua-service-session": "2.105.0", - "node-opcua-service-subscription": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-service-write": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0", - "node-opcua-variant": "2.105.0", + "node-opcua-pseudo-session": "2.108.0", + "node-opcua-schemas": "2.108.0", + "node-opcua-secure-channel": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-call": "2.108.0", + "node-opcua-service-discovery": "2.108.0", + "node-opcua-service-endpoints": "2.108.0", + "node-opcua-service-filter": "2.108.0", + "node-opcua-service-history": "2.108.0", + "node-opcua-service-query": "2.108.0", + "node-opcua-service-read": "2.108.0", + "node-opcua-service-register-node": "2.108.0", + "node-opcua-service-secure-channel": "2.108.0", + "node-opcua-service-session": "2.108.0", + "node-opcua-service-subscription": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-service-write": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0", + "node-opcua-variant": "2.108.0", "thenify": "^3.3.1" } }, "node_modules/node-opcua-client-crawler": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-client-crawler/-/node-opcua-client-crawler-2.105.1.tgz", - "integrity": "sha512-x3aOSKrXlDlT1cKTn3VzQNm5PRKXQbdL0xihmBLObOv59OtIsA14JcTsYE1IdqsWP9eW3Hr+hdhiVhKW09CyaA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-client-crawler/-/node-opcua-client-crawler-2.108.0.tgz", + "integrity": "sha512-1VXiQsn7SNxcZWkVUQKMLgxmIBi9Shwb79yStiKAlTaHu/tgtgaqMcLwR7QYouo99HDh+Xj3idYMHtXXn2NvgA==", "dependencies": { "async": "^3.2.4", "chalk": "4.1.2", - "node-opcua-address-space": "2.105.1", + "node-opcua-address-space": "2.108.0", "node-opcua-assert": "2.105.0", - "node-opcua-client": "2.105.1", + "node-opcua-client": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0", "thenify": "^3.3.1" } }, "node_modules/node-opcua-client-dynamic-extension-object": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-client-dynamic-extension-object/-/node-opcua-client-dynamic-extension-object-2.105.0.tgz", - "integrity": "sha512-h72CRbGTnZMsY8KdhGLD0Vbd7soeoU2bENBg9z6wYjKt28+4idMv2cJCd1kRB3P5fV/rDA447P7ptirZA5JS8Q==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-client-dynamic-extension-object/-/node-opcua-client-dynamic-extension-object-2.108.0.tgz", + "integrity": "sha512-jXE9Q4e0fbBF/v7tQo6dVAwQXcv5szGUC5saOPKaNSHeyFTO0ehgVnwU/zQ5LNWFcLzfhvh/yTbvZMS+tZ9BeQ==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-binary-stream": "2.105.0", + "node-opcua-binary-stream": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-pseudo-session": "2.105.0", - "node-opcua-schemas": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-pseudo-session": "2.108.0", + "node-opcua-schemas": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-client-proxy": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-client-proxy/-/node-opcua-client-proxy-2.105.0.tgz", - "integrity": "sha512-I+EfrvbuLTTyDdAMn2QPRhglkSWz6l0gDcK8HQdcI2qbYMPkhuaSnS4THLuFopV1gZKR1o23XxVGf7UbLkNEPQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-client-proxy/-/node-opcua-client-proxy-2.108.0.tgz", + "integrity": "sha512-d1py7EXHBryud0cEe57RiVJzuDknNJrMCVf+xmJCua7WQ5V8AFaArJ89F8B+Uz2ok4dRzlyNCvqsJymDRJhZZg==", "dependencies": { "async": "^3.2.4", "node-opcua-assert": "2.105.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-pseudo-session": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-call": "2.105.0", - "node-opcua-service-read": "2.105.0", - "node-opcua-service-subscription": "2.105.0", - "node-opcua-service-write": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-utils": "2.105.0", - "node-opcua-variant": "2.105.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-pseudo-session": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-call": "2.108.0", + "node-opcua-service-read": "2.108.0", + "node-opcua-service-subscription": "2.108.0", + "node-opcua-service-write": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-utils": "2.108.0", + "node-opcua-variant": "2.108.0", "thenify": "^3.3.1" } }, "node_modules/node-opcua-common": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-common/-/node-opcua-common-2.105.0.tgz", - "integrity": "sha512-2i97IubYQCHreCv2KPpn1FJknFINj11t8Myq/8Qcof2EpSYxTJUJ06ngj/+t8laSaYoY9xzrMMYHSx2kS+12Og==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-common/-/node-opcua-common-2.108.0.tgz", + "integrity": "sha512-++uQR33NKjVH2dHfDK2y5fkcGTM1BmWxxFPchvk5euEwyas2iD+dHralgHlT7I+rpencCdhG2QcU8+nEW8tn7A==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-crypto": "3.0.6", - "node-opcua-types": "2.105.0" + "node-opcua-crypto": "3.1.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-constants": { @@ -2736,9 +1526,9 @@ "integrity": "sha512-7RDmofF6vajYmmsbm/t0obqZlL0K7KKgYe4V+QT8qSGdNFrmDANHiAUhgPljur8e8taaDUXFcaOhS4fYjMN1WQ==" }, "node_modules/node-opcua-crypto": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/node-opcua-crypto/-/node-opcua-crypto-3.0.6.tgz", - "integrity": "sha512-f29dRqY716qMNZQrzKNKx86BaJNmoaUAUExqmYNavweQKx6R7M6WZiwP2hcWK9yr28msJGiTGbAh6KySquQtsw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/node-opcua-crypto/-/node-opcua-crypto-3.1.0.tgz", + "integrity": "sha512-mdhEER4DKU+OXaqYpJqg6EJYEKG5ywSBkyVFCXvgJiLe2JuIEtRG+QGboLkziADetpQR7ns4Ii6DnirfEjPw/g==", "dependencies": { "@peculiar/webcrypto": "^1.4.3", "@peculiar/x509": "^1.9.3", @@ -2752,115 +1542,115 @@ } }, "node_modules/node-opcua-data-access": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-data-access/-/node-opcua-data-access-2.105.0.tgz", - "integrity": "sha512-2cOZnFeJfjFf7m35d140cCzxQLU5ltMMRyHCcP9xKUy7Azit7H2B5eBwmDzMdkgAw/zZ3Plxc/gjNmAqqSxQgw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-data-access/-/node-opcua-data-access-2.108.0.tgz", + "integrity": "sha512-1soxdgfdBE5KmDZTvx8R2uSD+NA52XMdIAkos3txFqUtFT+uWX4XXk5krXCfkzwK/qkZrQ7mP9jIseFpooajng==", "dependencies": { - "node-opcua-data-model": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-data-model": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-data-model/-/node-opcua-data-model-2.105.0.tgz", - "integrity": "sha512-45cvHTbjrRx/jV9kHSba35QDbDRBncPSNUi2YnSRZ8JGIt4rvPtDRF77C+WJ6yonC+pG7U1NCJRX3TAWtGZ1UA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-data-model/-/node-opcua-data-model-2.108.0.tgz", + "integrity": "sha512-01dAvU4xRLpiIU8eTizfKRDXre7lYK5MLeBaJGEUN7NktnUK5M40DoAo/X/KAeRMX6EzUoVhjezxOkGTij1KJQ==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-enum": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-status-code": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-enum": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-status-code": "2.108.0" } }, "node_modules/node-opcua-data-value": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-data-value/-/node-opcua-data-value-2.105.0.tgz", - "integrity": "sha512-ueslx8Ep5rRPTxIl0kxQFJ1gW7ABOoE8G3cCc+aN5T2hEAfuEYJV66dtb9MahzZIUuNvNddzk730U83LxJoLXw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-data-value/-/node-opcua-data-value-2.108.0.tgz", + "integrity": "sha512-UNp4Ux2f2emmOd+UIfPfQx9PfKZvk0je1ZszksC2xpZbmW2QdWXzhvpSajA7KLedaKXGEkDl2lBzdNlEBuLvJA==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-date-time": "2.105.0", - "node-opcua-enum": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-date-time": "2.108.0", + "node-opcua-enum": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-date-time": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-date-time/-/node-opcua-date-time-2.105.0.tgz", - "integrity": "sha512-j9qTHwjVQqWqYI1GW9iiixaNLJs33q6mVm9BVrqv5C1BTjkx3q57/smmk7ybt6KoZQjWAk3Rs+eOdBAHW5xs9g==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-date-time/-/node-opcua-date-time-2.108.0.tgz", + "integrity": "sha512-CIlz6QJ4YV+eXhGwogK7QdQbrnhTp0Nx9Gwg2q08+3pO7yo0BrJDhkwcftoWetFQEuRu3ct32m0iYD8rJmPfgg==", "dependencies": { "long": "^4.0.0", "node-opcua-assert": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-binary-stream": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-debug": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-debug/-/node-opcua-debug-2.105.0.tgz", - "integrity": "sha512-wkdrj1tTdndkAjPQw62pnIxLmxCbSJLS++TpinGdB4fikHFYvhR9R0D+fT2hYoDXqEe9qyHGggZsApV2RIJEJA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-debug/-/node-opcua-debug-2.108.0.tgz", + "integrity": "sha512-5A+dBniQ62pRhe4g95B/bNSeLTZvhDZet8l8u2iu/Fi6qOYRLRQ09+1wMEwhJF9HVCnO56rSUCcTHNC5JMViIw==", "dependencies": { "chalk": "4.1.2", "hexy": "0.3.4", "node-opcua-assert": "2.105.0", - "node-opcua-buffer-utils": "2.105.0" + "node-opcua-buffer-utils": "2.108.0" } }, "node_modules/node-opcua-enum": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-enum/-/node-opcua-enum-2.105.0.tgz", - "integrity": "sha512-qbauzyfaETwdNMyrxyg5RmpIBrPQI3VADgJ9IyyZh0l0nqD99ot1su6kVRdZh6YMdgXbJogSzSAUUfDBzt7AUQ==" + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-enum/-/node-opcua-enum-2.108.0.tgz", + "integrity": "sha512-h0/DiQ68Pk+NnUYNY/1LJgl4faDWOztuyoBvR70qb03uQqwS4RAuXgyv9Udh7/PoHx4IOgsaGjQia8tky1/YVA==" }, "node_modules/node-opcua-extension-object": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-extension-object/-/node-opcua-extension-object-2.105.0.tgz", - "integrity": "sha512-xepQ1oKg54mTXKKmNFCXf5a2qig1NsFZTliaIXdLxzlFUxcDoFH67lHQp1xWEWHt2OId9+8Ci581TpgiJb1Pqw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-extension-object/-/node-opcua-extension-object-2.108.0.tgz", + "integrity": "sha512-4W+rTzFwJh1UA9tdEvcRUqOrJ9PyWdN7uG97TMDhjClsDUs1ebeOtiyAaXDPjBi4ydaOB8D8xLrZfglSjxgjiA==", "dependencies": { "chalk": "4.1.2", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0" } }, "node_modules/node-opcua-factory": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-factory/-/node-opcua-factory-2.105.0.tgz", - "integrity": "sha512-NAx4MA4Kce5tEKC0KWxr5Onyux5h7wuWBYn+12qGJ5GEkMZisYSKWkJ3IyAa98biCRhLbYYxkUNDBgid7AsLzA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-factory/-/node-opcua-factory-2.108.0.tgz", + "integrity": "sha512-CPuOojyhLgwiTH0tc59DfOzQBvUg3DJljhiz9LFeqrXS4dW4RMEdC2sWlOptKUE8d9E+yKCARzvwq8YfFhf0wg==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-debug": "2.105.0", - "node-opcua-enum": "2.105.0", + "node-opcua-debug": "2.108.0", + "node-opcua-enum": "2.108.0", "node-opcua-guid": "2.98.1", - "node-opcua-nodeid": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-nodeid": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-generator": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-generator/-/node-opcua-generator-2.105.0.tgz", - "integrity": "sha512-YkVKA/68h2jGc/qwR6P99zApY8AR2nOWcmJdk+Cw+jWhkypzEbuJI3fS/fQilT8aaiKVYvle8uVdsf0PIhiRJA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-generator/-/node-opcua-generator-2.108.0.tgz", + "integrity": "sha512-mN8NLTWt8l2gHnu+NQ+kh2d3YFmZTKdpTfu8hUiC2PpGvQKcREQo9/npgOMVAYN7jU+oa2CuyMunKGhzKk5Zpw==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", "node-opcua-constants": "2.98.1", - "node-opcua-debug": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-schemas": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-debug": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-schemas": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-guid": { @@ -2874,9 +1664,9 @@ "integrity": "sha512-nb55yjaaRaxxyypcy3QQ1brml1eK1lBTECy6+36v9v/gs0Kuv9rtdQbu4sZ089qOeuvsWNCFHPDULlLyfDMgeQ==" }, "node_modules/node-opcua-nodeid": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-nodeid/-/node-opcua-nodeid-2.105.0.tgz", - "integrity": "sha512-O+a8SKfc/XE6wjC1hfbD+/Dv2TzA7JHEy8OLQS2+ffyCYLBpGjq6cKuDZHRroHsMc2rF3yqP9q7XHmcpBv+Y+Q==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-nodeid/-/node-opcua-nodeid-2.108.0.tgz", + "integrity": "sha512-v2vT2jTU9JHfIwUbz+jn6zM+qMqNQCW2a7dmpDAOcEynIf4/xipdseQ35/FC5AUNDqJjmksOkfyyoCnlvOoxIg==", "dependencies": { "node-opcua-assert": "2.105.0", "node-opcua-constants": "2.98.1", @@ -2884,68 +1674,68 @@ } }, "node_modules/node-opcua-nodeset-ua": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-nodeset-ua/-/node-opcua-nodeset-ua-2.105.0.tgz", - "integrity": "sha512-98+NymiNBjrhBZjIZllrzrlc9ImvPzTqdHiMFRDnpxGNFRCdr0+wOkWtiv5OXn1CqMHJbMKDaE7P/8awPdRSDg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-nodeset-ua/-/node-opcua-nodeset-ua-2.108.0.tgz", + "integrity": "sha512-Ap2flC27ouB31ds8cbanYm7i5nEIVXbK+b1LuzCPV44FL1gVCc0l5RBUgdzjtOek5HifDCeANDE2Pe44heOanA==", "dependencies": { - "node-opcua-address-space-base": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-data-access": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-address-space-base": "2.108.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-data-access": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-nodesets": { - "version": "2.103.0", - "resolved": "https://registry.npmjs.org/node-opcua-nodesets/-/node-opcua-nodesets-2.103.0.tgz", - "integrity": "sha512-/YuzKQB01PEh58SEIikw6kQ07kKF6EV3AqyyQ3Y2isTLTvuNoNH4HCMw7GZqRSb3cbRw+xh5ZsWd5g04Za0dDw==" + "version": "2.107.0", + "resolved": "https://registry.npmjs.org/node-opcua-nodesets/-/node-opcua-nodesets-2.107.0.tgz", + "integrity": "sha512-7xjhRVKtFtMtegeZy/OW2DiA/dSbs1f16WlYMddAavkLz8BIvrPsWsNfQyyRBov4goKvKG/COqD63GqEr1V6WQ==" }, "node_modules/node-opcua-numeric-range": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-numeric-range/-/node-opcua-numeric-range-2.105.0.tgz", - "integrity": "sha512-Wu0sGlKtcgPu31x45ztaQeq/4f55XhTKuWRG+LAz12Fuxu92ZIWWWxulhm7RuFgyQLW3Xgc6fejAOOHQfuOeWQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-numeric-range/-/node-opcua-numeric-range-2.108.0.tgz", + "integrity": "sha512-HfmSqQ1b6a1vsN5D9lPpbmLmNNBBTANOm62ZD3epbLP2c59N5BpTGgbk6KOMfqlAmXEMbCenQ/J++CQ9R2oq9w==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-status-code": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-status-code": "2.108.0" } }, "node_modules/node-opcua-object-registry": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-object-registry/-/node-opcua-object-registry-2.105.0.tgz", - "integrity": "sha512-nkgNoLQ7rQQ0DtCYsGuWhPbTDbiKlHXHrT5/yKFmLUGDaiw0Xw9wnxX+ra8OOPBjXabrXRbaOUyCYvCUAZXhEA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-object-registry/-/node-opcua-object-registry-2.108.0.tgz", + "integrity": "sha512-oSajNlDACximvCmHdgn//R5UEInny7yWSfRgobd6KkJdNWpYu7T0n4Q2Qar4n/oFKPFClMs3KRG8T2ybOLkT7g==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-debug": "2.105.0" + "node-opcua-debug": "2.108.0" } }, "node_modules/node-opcua-packet-analyzer": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-packet-analyzer/-/node-opcua-packet-analyzer-2.105.0.tgz", - "integrity": "sha512-rWStW4041F7V4JVxSl370JmnuiXava05YTxm7T0L6+3pZ5W/ePQ8a8FweVMD3gV8PENwDO/faKTEGizTmZ6lkg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-packet-analyzer/-/node-opcua-packet-analyzer-2.108.0.tgz", + "integrity": "sha512-hKmA8IT5IKmHXH3izgVVrXIKGj1FBpDOd/blWBjlBA2H+V32TksFV+ExMY+etfeuAesOVRINXavgZBdmwwYgXg==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-packet-assembler": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-packet-assembler/-/node-opcua-packet-assembler-2.105.0.tgz", - "integrity": "sha512-SnTpQljbr8AXDuISKj5hq69LVPYJXDtwN+FnaVM3hHefXBlUMamc6ntDBfql9zWSCuyUUpGScdAM8mbpTgBfug==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-packet-assembler/-/node-opcua-packet-assembler-2.108.0.tgz", + "integrity": "sha512-Uhbc6j6S7DZjYFiiYTaSM2jwvLDsNHdK+jdHCiuhz2wAYab8ngpqrOgBofhNdehDwNDUCAHsbQJJ04XAGul+4w==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-debug": "2.105.0" + "node-opcua-debug": "2.108.0" } }, "node_modules/node-opcua-pki": { @@ -2972,405 +1762,421 @@ "pki": "bin/crypto_create_CA.js" } }, + "node_modules/node-opcua-pki/node_modules/node-opcua-crypto": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/node-opcua-crypto/-/node-opcua-crypto-3.0.6.tgz", + "integrity": "sha512-f29dRqY716qMNZQrzKNKx86BaJNmoaUAUExqmYNavweQKx6R7M6WZiwP2hcWK9yr28msJGiTGbAh6KySquQtsw==", + "dependencies": { + "@peculiar/webcrypto": "^1.4.3", + "@peculiar/x509": "^1.9.3", + "@types/jsrsasign": "^10.5.8", + "assert": "^2.0.0", + "better-assert": "^1.0.2", + "chalk": "^4.1.2", + "hexy": "0.3.4", + "jsrsasign": "^10.8.6", + "sshpk": "^1.17.0" + } + }, "node_modules/node-opcua-pseudo-session": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-pseudo-session/-/node-opcua-pseudo-session-2.105.0.tgz", - "integrity": "sha512-Iiynm3hGh/C1Z/vRuAc1c5HrSZuSMmmGdJEhHRskctSeuLuEuBKKBgkBDGriAzGi6S1oINF4K3Xx0JEh8DhzOg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-pseudo-session/-/node-opcua-pseudo-session-2.108.0.tgz", + "integrity": "sha512-A2GuZfOUmnKIX7NGkxpAkmfierD65tIB8bYNAujWxnHzSB+aPj+j3NM2BSbvf6Y/lAr8PjRtAKj6uCyPzVcSJQ==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", + "node-opcua-basic-types": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-call": "2.105.0", - "node-opcua-service-read": "2.105.0", - "node-opcua-service-subscription": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-service-write": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-variant": "2.105.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-call": "2.108.0", + "node-opcua-service-read": "2.108.0", + "node-opcua-service-subscription": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-service-write": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-variant": "2.108.0", "thenify": "^3.3.1" } }, "node_modules/node-opcua-schemas": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-schemas/-/node-opcua-schemas-2.105.0.tgz", - "integrity": "sha512-BVVxDcE3qgJxM3KaqIHC9spnvWhd2WuZ9MIRhdbmng4Y3FNLdichKNfrknlaQRiycBzu+3bKTG2yyNHAvN6EFw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-schemas/-/node-opcua-schemas-2.108.0.tgz", + "integrity": "sha512-iVLABAZOVaHprupcxlEuTUpt48sZQ/CYk7S7WY3WN4ghQ6U9mJyZ8ucODotME/IaNoqm0HZeTmcYlBpcJ0lbHA==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-variant": "2.105.0", - "node-opcua-xml2json": "2.105.0" + "node-opcua-binary-stream": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-variant": "2.108.0", + "node-opcua-xml2json": "2.108.0" } }, "node_modules/node-opcua-secure-channel": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-secure-channel/-/node-opcua-secure-channel-2.105.0.tgz", - "integrity": "sha512-/+f4UxdZgxFlpfUIT7PyByuNcoTxFAffe05zeAmDt8pdxgiX4P3IQiF5giArXLAEzfLW+V/GfRSsP1h0pZ9Hxw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-secure-channel/-/node-opcua-secure-channel-2.108.0.tgz", + "integrity": "sha512-TYZki+u/yrAK2EJ7f9EIowKuRCtP0gCfkcB1d2HDrjS0UVonRpEYjUMQBcvoOIZZOeYIt/CrQxfvLW+fCZLMJg==", "dependencies": { "async": "^3.2.4", "backoff": "^2.5.0", "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-certificate-manager": "2.105.0", - "node-opcua-chunkmanager": "2.105.0", - "node-opcua-common": "2.105.0", - "node-opcua-crypto": "3.0.6", - "node-opcua-debug": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-object-registry": "2.105.0", - "node-opcua-packet-analyzer": "2.105.0", - "node-opcua-service-endpoints": "2.105.0", - "node-opcua-service-secure-channel": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-transport": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-certificate-manager": "2.108.0", + "node-opcua-chunkmanager": "2.108.0", + "node-opcua-common": "2.108.0", + "node-opcua-crypto": "3.1.0", + "node-opcua-debug": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-object-registry": "2.108.0", + "node-opcua-packet-analyzer": "2.108.0", + "node-opcua-service-endpoints": "2.108.0", + "node-opcua-service-secure-channel": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-transport": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-server": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-server/-/node-opcua-server-2.105.1.tgz", - "integrity": "sha512-N2I02Q8GqK1n8GkahL0jpt2ilPaJaqOFd2ydbMYO4xmRQq3JRXF8w0OgLMAi0diH8IGUtS+U3teIpEM4w2CCrA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-server/-/node-opcua-server-2.108.0.tgz", + "integrity": "sha512-ie2SJiEN4lWjc9Qxr48zN9R7MqV7JUrQ5cjVgH+fnAjFQFqM/RTMBR5B9PL0yOcZu9cIuASDFYbB0Bkkp8ELqQ==", "dependencies": { "@ster5/global-mutex": "^2.0.0", "async": "^3.2.4", "chalk": "4.1.2", "dequeue": "^1.0.5", "lodash": "4.17.21", - "node-opcua-address-space": "2.105.1", - "node-opcua-address-space-base": "2.105.0", + "node-opcua-address-space": "2.108.0", + "node-opcua-address-space-base": "2.108.0", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-certificate-manager": "2.105.0", - "node-opcua-client": "2.105.1", - "node-opcua-client-dynamic-extension-object": "2.105.0", - "node-opcua-common": "2.105.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-certificate-manager": "2.108.0", + "node-opcua-client": "2.108.0", + "node-opcua-client-dynamic-extension-object": "2.108.0", + "node-opcua-common": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-crypto": "3.0.6", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-date-time": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-factory": "2.105.0", + "node-opcua-crypto": "3.1.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-date-time": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-factory": "2.108.0", "node-opcua-hostname": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-nodesets": "2.103.0", - "node-opcua-numeric-range": "2.105.0", - "node-opcua-object-registry": "2.105.0", - "node-opcua-secure-channel": "2.105.0", - "node-opcua-service-browse": "2.105.0", - "node-opcua-service-call": "2.105.0", - "node-opcua-service-discovery": "2.105.0", - "node-opcua-service-endpoints": "2.105.0", - "node-opcua-service-filter": "2.105.0", - "node-opcua-service-history": "2.105.0", - "node-opcua-service-node-management": "2.105.0", - "node-opcua-service-query": "2.105.0", - "node-opcua-service-read": "2.105.0", - "node-opcua-service-register-node": "2.105.0", - "node-opcua-service-secure-channel": "2.105.0", - "node-opcua-service-session": "2.105.0", - "node-opcua-service-subscription": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-service-write": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-utils": "2.105.0", - "node-opcua-variant": "2.105.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-nodesets": "2.107.0", + "node-opcua-numeric-range": "2.108.0", + "node-opcua-object-registry": "2.108.0", + "node-opcua-secure-channel": "2.108.0", + "node-opcua-service-browse": "2.108.0", + "node-opcua-service-call": "2.108.0", + "node-opcua-service-discovery": "2.108.0", + "node-opcua-service-endpoints": "2.108.0", + "node-opcua-service-filter": "2.108.0", + "node-opcua-service-history": "2.108.0", + "node-opcua-service-node-management": "2.108.0", + "node-opcua-service-query": "2.108.0", + "node-opcua-service-read": "2.108.0", + "node-opcua-service-register-node": "2.108.0", + "node-opcua-service-secure-channel": "2.108.0", + "node-opcua-service-session": "2.108.0", + "node-opcua-service-subscription": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-service-write": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-utils": "2.108.0", + "node-opcua-variant": "2.108.0", "thenify": "^3.3.1" } }, "node_modules/node-opcua-server-discovery": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-server-discovery/-/node-opcua-server-discovery-2.105.1.tgz", - "integrity": "sha512-tb0Gcj4onHzG9uEwc7odXtHRCJbehrcir9ZRvarPZ9DgcOKc+Po4QNikTTYmIcKg1hbmwalnUEYub5ouceNlGA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-server-discovery/-/node-opcua-server-discovery-2.108.0.tgz", + "integrity": "sha512-j+cMCGeRE10jXVPtZkXh5zPNhnfFFXrBEBF6oJp0+HeOiai9Q4fkrtbxiGf97JZj98zF+lkm+MxH9SPOamm9Zw==", "dependencies": { "chalk": "4.1.2", "env-paths": "2.2.1", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-certificate-manager": "2.105.0", - "node-opcua-common": "2.105.0", - "node-opcua-debug": "2.105.0", + "node-opcua-basic-types": "2.108.0", + "node-opcua-certificate-manager": "2.108.0", + "node-opcua-common": "2.108.0", + "node-opcua-debug": "2.108.0", "node-opcua-hostname": "2.105.0", - "node-opcua-object-registry": "2.105.0", - "node-opcua-secure-channel": "2.105.0", - "node-opcua-server": "2.105.1", - "node-opcua-service-discovery": "2.105.0", - "node-opcua-service-endpoints": "2.105.0", - "node-opcua-status-code": "2.105.0", + "node-opcua-object-registry": "2.108.0", + "node-opcua-secure-channel": "2.108.0", + "node-opcua-server": "2.108.0", + "node-opcua-service-discovery": "2.108.0", + "node-opcua-service-endpoints": "2.108.0", + "node-opcua-status-code": "2.108.0", "sterfive-bonjour-service": "1.1.4", "thenify": "^3.3.1" } }, "node_modules/node-opcua-service-browse": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-browse/-/node-opcua-service-browse-2.105.0.tgz", - "integrity": "sha512-k5c6eUKk4ElykLsWJgOIS2GtufesHIMLaBrIC4IeWnR3zYy123cApRRwr5zNra1KxQeEr27u5eKbHXxbGDeNOA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-browse/-/node-opcua-service-browse-2.108.0.tgz", + "integrity": "sha512-ocQ2P2NCK20G1fmReFxkxCTzXhiecbred+vtB+tTpRwICgzPZiVHFNcDImKTneFQ0E50DEjjIG9pH6OVtfkRHQ==", "dependencies": { - "node-opcua-data-model": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-call": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-call/-/node-opcua-service-call-2.105.0.tgz", - "integrity": "sha512-9m0ov9tD9CLXonY6h5KMMNfb3GbXF4ZcgfUe5GVQKIOuZIfWRu0Bq5v5muhDI06NwPjPTf8olQjtSgCp49AjLA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-call/-/node-opcua-service-call-2.108.0.tgz", + "integrity": "sha512-HHKD3rOueeSHPKpK6sN6CPvtbJG2cfu8R+q47cFO9DloDGQnDEMfHlB64+DUNh9utcIKPvGfo5syUUYAO4Rhgw==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-nodeid": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-service-discovery": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-discovery/-/node-opcua-service-discovery-2.105.0.tgz", - "integrity": "sha512-M+lfjUo6cs27WdCeABbkI6KcQHP3qLkosxgIA1zcpSXa9Q+jutXxDObzhqO8GJMKrTPxnjb+5YXhUWuBlK7qAw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-discovery/-/node-opcua-service-discovery-2.108.0.tgz", + "integrity": "sha512-6cwo+IY05QzzIVWsJKOBzZciv214JKzmLGkWAsjx4HtKFmc/qBP8JVlgguWkrzaTnOLkUwngPNga8+HvHC7ufw==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-object-registry": "2.105.0", - "node-opcua-types": "2.105.0", + "node-opcua-debug": "2.108.0", + "node-opcua-object-registry": "2.108.0", + "node-opcua-types": "2.108.0", "sterfive-bonjour-service": "1.1.4" } }, "node_modules/node-opcua-service-endpoints": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-endpoints/-/node-opcua-service-endpoints-2.105.0.tgz", - "integrity": "sha512-G2riJv9iduuN9bAhtd1FAyWMU3GDAXQGynJAa+Uxnf0CPMKoD++oHlSQjE+iNfKmvQvdsqH6+PbBywHlc9vxXQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-endpoints/-/node-opcua-service-endpoints-2.108.0.tgz", + "integrity": "sha512-j/RHs2fDRT3wNhn6WDi+P6pxvY9q82i5JKM9243n/JB6TBVp4o5AbSe37BOoDu2bcqG8THl2lDGE1bO1qehAIw==", "dependencies": { - "node-opcua-types": "2.105.0" + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-filter": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-filter/-/node-opcua-service-filter-2.105.0.tgz", - "integrity": "sha512-9nkHWOZlgwLTBKBFxF/CDxIxWa5YdEOQLRSqLgRYe/qQntN3AHu/1+8llTZzmklyde/mhoq67kP3VId9jZyRqQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-filter/-/node-opcua-service-filter-2.108.0.tgz", + "integrity": "sha512-yQ2lMpzXZ5RGp0fGbO3pHkOHmtQPU8NSO3qwFd7/mv1a0LWLe3JFkRJRylR0Bqg559lTVL/dMa2SGuEhkZmcYQ==", "dependencies": { - "node-opcua-address-space-base": "2.105.0", + "node-opcua-address-space-base": "2.108.0", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", + "node-opcua-basic-types": "2.108.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-service-translate-browse-path": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-service-translate-browse-path": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-types": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-service-history": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-history/-/node-opcua-service-history-2.105.0.tgz", - "integrity": "sha512-00/Php5EN/evCvok9cTJoDXAHbZGpsrU9xT0pmqbx1UFS3Tu4Pgb12pUd+dW71U7EQio3wSmcE3UmZr4tmYzOw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-history/-/node-opcua-service-history-2.108.0.tgz", + "integrity": "sha512-lpZxgOsgY1qkKWhq48R5f85l/2belSsOvGkwI3igVb08rbqsZkVxLIpXROrONSdCQOEaOUSLUeJ/YtoYhW+Xsg==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-data-value": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-node-management": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-node-management/-/node-opcua-service-node-management-2.105.0.tgz", - "integrity": "sha512-wDnXf0eWa19r5XH49VFgCyLK7dAAb297ER2TIA7BlH0QexhwZY7UZ0WQ/NM0jgYfZEqdqAmcCfCeunmZFdJFew==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-node-management/-/node-opcua-service-node-management-2.108.0.tgz", + "integrity": "sha512-li5e1uJNDI1HlMxfNLDhGXu909uDk9akizn6mn1KNQ7r6+c+r+QWqF6c3fAw20zdJ0x3jYho54WJjfHW0N7HGA==", "dependencies": { - "node-opcua-types": "2.105.0" + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-query": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-query/-/node-opcua-service-query-2.105.0.tgz", - "integrity": "sha512-1khnR4+qCWnmaA1AlD7FtfdBy32jsHmIIgJmEoHRu4qn9FX1YAnSSGyVHvZ7oScke3VKXlPE4bSbBDY6Y4L05w==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-query/-/node-opcua-service-query-2.108.0.tgz", + "integrity": "sha512-rBgflGp1yhJ5YsBSnDI4ag7Qa2x9A1calkuNUyChCfy1oL9zR/4zpTVcN+cOz0oJtvGl0/CWyeyftScpcfJ5FQ==", "dependencies": { - "node-opcua-types": "2.105.0" + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-read": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-read/-/node-opcua-service-read-2.105.0.tgz", - "integrity": "sha512-vGbVaFm4YMBswi6lh/XSXYItEvJEN3mIPOguAYet2LwXAKgxmbFIrLnn0P8CJh95wyONf0DL2kBi4zSf1Z0B1A==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-read/-/node-opcua-service-read-2.108.0.tgz", + "integrity": "sha512-DSZklPRcgY+Mi3Jp5G4HSrNgiSObk4lBo7BSN+PlihHLMRHYHajBKfhTFEPeIml8mNrGnOysOjqcVSDJWU34Lw==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-service-secure-channel": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-service-secure-channel": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-register-node": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-register-node/-/node-opcua-service-register-node-2.105.0.tgz", - "integrity": "sha512-fI0jjACrVXd4RYg5CqEpDDYUSuvhA6/j0RhO2NGu+VkIxjo0GejIK+YW6Hn9a1nT+sxm+Hos4RUp5cmaR2Nx6A==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-register-node/-/node-opcua-service-register-node-2.108.0.tgz", + "integrity": "sha512-r5sBONvIOX6wUn7eIjVOgXkhM4eUUpscjyxBVAFua6SZFH/ymex04vswMpR/XPN6IqdKPOZM2hZ1LVuJN+8G8Q==", "dependencies": { - "node-opcua-types": "2.105.0" + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-secure-channel": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-secure-channel/-/node-opcua-service-secure-channel-2.105.0.tgz", - "integrity": "sha512-gtaILu9ivOGwd0NdRuOD/CsqhhEAx4TG7e8GGJoODJQv76KUJyg2Vn1BuSLpj6ZMlEzFWt/FrENQRPT28QPHLw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-secure-channel/-/node-opcua-service-secure-channel-2.108.0.tgz", + "integrity": "sha512-cWlEpX3byLh0MJaE6Xyb8BxF39a2vGg1znk9fKJeWNUNaBAM6ENcUBMPuplMUZwph83niIKYCSKHxL7o2CJINA==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-session": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-session/-/node-opcua-service-session-2.105.0.tgz", - "integrity": "sha512-psIiQQRt+nbRpn93SW45x+77qYaftipJRGsHeJyy4Rmul9m7MoTKPpopgfD+ud90dblC3poco/k8pmjs2LsQcQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-session/-/node-opcua-service-session-2.108.0.tgz", + "integrity": "sha512-iC+G6K1tUttivAnE6loztbGH2ervoRm2ikXL6G9AHB7LVO4DZTxMWWz0n3OocsNI0Y7S5eqqMVOjczX3rKI2cQ==", "dependencies": { - "node-opcua-factory": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-factory": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-subscription": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-subscription/-/node-opcua-service-subscription-2.105.0.tgz", - "integrity": "sha512-6hroerCPREDBuRclSqYMTMsUkVFLwnTrIZbznPaBykua3+MxQoqffpm3/Y9qVCJ6mib9MOWrnLERtK1bCDtNUg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-subscription/-/node-opcua-service-subscription-2.108.0.tgz", + "integrity": "sha512-HtmrifEvI3FC3mDfqu9iKhgZDd4h04LBlhfXBRD2gYygDczuGIHYN2DT3lpvS1QgIz11wcKJn02W7JZcZmR/pA==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-types": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-types": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-service-translate-browse-path": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-translate-browse-path/-/node-opcua-service-translate-browse-path-2.105.0.tgz", - "integrity": "sha512-IAhc9SWcEPb8k1eqhN7WJgkySXfxCNJTdfnJbJ+tvl3DuCLn6gqSGr3Os1qMw+oYkwOdIh3AWdUcWuAB+CtlOw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-translate-browse-path/-/node-opcua-service-translate-browse-path-2.108.0.tgz", + "integrity": "sha512-rrx4VClHw6CoL/ryBoFggO+4ip+8kqei3bTUMX3iOVyU+9+vrNwjcQl5DPWm4C7Fd3eLqjwGEJs6/xcqDXLH9w==", "dependencies": { "node-opcua-assert": "2.105.0", "node-opcua-constants": "2.98.1", - "node-opcua-data-model": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-types": "2.105.0" + "node-opcua-data-model": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-service-write": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-service-write/-/node-opcua-service-write-2.105.0.tgz", - "integrity": "sha512-knDMaCz5MHyjyjWzXw564u1cMDy3qrkbU9K9bIbp6bYBlGdXns9umXR90+AAemyGLLjZE/7egov2dUKaxn6A0w==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-service-write/-/node-opcua-service-write-2.108.0.tgz", + "integrity": "sha512-JU36o/GzZAFgVhYH2/WIOCkAXAL0KyxCgkmpO8KB5yY864vYGK65O2Pe7Jr24M4/yN5YycaTET15JVgiOS3nVw==", "dependencies": { - "node-opcua-types": "2.105.0" + "node-opcua-types": "2.108.0" } }, "node_modules/node-opcua-status-code": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-status-code/-/node-opcua-status-code-2.105.0.tgz", - "integrity": "sha512-zHcZMeBe3beT8I8xh0f5NI2+Cj8g8GpU+1mBBOpBs3KU0ZqpriyihQMD0kM1vEYsbRk/PCUrDVpct/V4dBguJA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-status-code/-/node-opcua-status-code-2.108.0.tgz", + "integrity": "sha512-oVL87EpUwx5L1gzEb+4++coA7sPs2Kzchwd+2Qchty8mV/beOo4ngTe4aiK0t0SkgKqOE2y4sEnWbJHOfS7yvQ==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-binary-stream": "2.105.0" + "node-opcua-binary-stream": "2.108.0" } }, "node_modules/node-opcua-transport": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-transport/-/node-opcua-transport-2.105.0.tgz", - "integrity": "sha512-ryUC2t2o1bmnUHvaQZHGPphfQkNnq+7b3rx0dgbWTEhr8ipC4sEUQcK0RvKW8sHp2+8hp2n2MYaKpExaG3Z1kw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-transport/-/node-opcua-transport-2.108.0.tgz", + "integrity": "sha512-djeY4pbgn0pMxlRs2O0mK/uc4TFG28QrXLEuIaOqWHUq49C/IcoZvst6LX3BbpMC6rX8mk+H46itOIS9ZrRVvA==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-buffer-utils": "2.105.0", - "node-opcua-chunkmanager": "2.105.0", - "node-opcua-debug": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-object-registry": "2.105.0", - "node-opcua-packet-assembler": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-buffer-utils": "2.108.0", + "node-opcua-chunkmanager": "2.108.0", + "node-opcua-debug": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-object-registry": "2.108.0", + "node-opcua-packet-assembler": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-types": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-types/-/node-opcua-types-2.105.0.tgz", - "integrity": "sha512-yGm9exvDrC1hgjMdhZVm31mhLG9/gBgw80LAODHQeUvmSRvAik3q6NyWpRUhoXkW07PYfgXGKGR7STroG6jNTw==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-types/-/node-opcua-types-2.108.0.tgz", + "integrity": "sha512-e1sJewZWOHQdn0662sm7DYqk0jUPg2DDzo/95wRpAiqczoSBSnb/bRDWKJ1Q4wYzy7LKybeN9UhMlJrMiVJI6Q==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-data-value": "2.105.0", - "node-opcua-enum": "2.105.0", - "node-opcua-extension-object": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-generator": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-numeric-range": "2.105.0", - "node-opcua-status-code": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-data-value": "2.108.0", + "node-opcua-enum": "2.108.0", + "node-opcua-extension-object": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-generator": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-numeric-range": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-utils": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-utils/-/node-opcua-utils-2.105.0.tgz", - "integrity": "sha512-FSHGxstJD56/nfG90fTm9w2Y1/lTO3aa7x66jgn5V3TtkQ/U6XPSovyPN3W428YUuucP3Sr8XGdrq+KC7+uCPQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-utils/-/node-opcua-utils-2.108.0.tgz", + "integrity": "sha512-W6kSeJr48eLYV6C381HiVeyCUDRB95wyVEoUTyeds+WIK9yIf3bnOQhnf9rKXThWG1Bae5oiRZ4LEC1PfT88Jw==", "dependencies": { "chalk": "4.1.2", "node-opcua-assert": "2.105.0" } }, "node_modules/node-opcua-variant": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-variant/-/node-opcua-variant-2.105.0.tgz", - "integrity": "sha512-Z0QMuqYpIdrXwB9Pmvw2ehRYPXjuiE6ECFiYUHB4EKqGY2UPBLGw/MO5Qm0OkGb5e8abIG31ygXg/KjsN3hppA==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-variant/-/node-opcua-variant-2.108.0.tgz", + "integrity": "sha512-01Ouhi18/96n77725XkwtvhYsTgeb8Inu5Qwqqr/x6oNrwyb1tOpQwlVbaPvXzK+grMOpuiCkhYxAlF5wXwpSw==", "dependencies": { "node-opcua-assert": "2.105.0", - "node-opcua-basic-types": "2.105.0", - "node-opcua-binary-stream": "2.105.0", - "node-opcua-data-model": "2.105.0", - "node-opcua-enum": "2.105.0", - "node-opcua-factory": "2.105.0", - "node-opcua-nodeid": "2.105.0", - "node-opcua-utils": "2.105.0" + "node-opcua-basic-types": "2.108.0", + "node-opcua-binary-stream": "2.108.0", + "node-opcua-data-model": "2.108.0", + "node-opcua-enum": "2.108.0", + "node-opcua-factory": "2.108.0", + "node-opcua-nodeid": "2.108.0", + "node-opcua-utils": "2.108.0" } }, "node_modules/node-opcua-vendor-diagnostic": { - "version": "2.105.1", - "resolved": "https://registry.npmjs.org/node-opcua-vendor-diagnostic/-/node-opcua-vendor-diagnostic-2.105.1.tgz", - "integrity": "sha512-g38oVbuip9DCtHGf1s4WC+98ier68Jhh46W/sHaR09d8IUKMxF+izExav/j1UllBeaSJmOByqtZnNBzw4HerWQ==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-vendor-diagnostic/-/node-opcua-vendor-diagnostic-2.108.0.tgz", + "integrity": "sha512-SyUWvM/uDVWvFxB8kuzxGrJIbmdUYDO+ZdT86qWMlemwpoaVhGjsp1H4iLcT6UfPsauF0fsK8ydHCkTN4arkHg==", "dependencies": { "humanize": "0.0.9", - "node-opcua-address-space": "2.105.1", + "node-opcua-address-space": "2.108.0", "node-opcua-assert": "2.105.0", "node-opcua-constants": "2.98.1", - "node-opcua-debug": "2.105.0", - "node-opcua-server": "2.105.1", - "node-opcua-status-code": "2.105.0", - "node-opcua-variant": "2.105.0" + "node-opcua-debug": "2.108.0", + "node-opcua-server": "2.108.0", + "node-opcua-status-code": "2.108.0", + "node-opcua-variant": "2.108.0" } }, "node_modules/node-opcua-xml2json": { - "version": "2.105.0", - "resolved": "https://registry.npmjs.org/node-opcua-xml2json/-/node-opcua-xml2json-2.105.0.tgz", - "integrity": "sha512-Bqr9XeEm94TjMvnyudAQdklnkfhhsmy6SJTWu8RYnmEdRwsMd123nXNqlJac0oJakGmiifoQoha9b5O2und9Tg==", + "version": "2.108.0", + "resolved": "https://registry.npmjs.org/node-opcua-xml2json/-/node-opcua-xml2json-2.108.0.tgz", + "integrity": "sha512-w7pl0hT0TxrWMc17isiT6e+TE1h7E4NUJV0beei/2TPvrrVH4YaTyf7RUfAJZWfG5uf4e5SBjEfDDvGRaCOGCw==", "dependencies": { "ltx": "^3.0.0", "node-opcua-assert": "2.105.0", - "node-opcua-utils": "2.105.0", + "node-opcua-utils": "2.108.0", "thenify": "^3.3.1", "xml-writer": "^1.7.0" } @@ -3552,9 +2358,9 @@ } }, "node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3666,12 +2472,6 @@ "node": ">=8" } }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "optional": true - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3764,15 +2564,6 @@ "which-typed-array": "^1.1.2" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/webcrypto-core": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", @@ -3826,16 +2617,15 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" diff --git a/src/OPC-UA-Server/package.json b/src/OPC-UA-Server/package.json index c50004d5..c2193c95 100644 --- a/src/OPC-UA-Server/package.json +++ b/src/OPC-UA-Server/package.json @@ -9,7 +9,7 @@ "author": "", "license": "ISC", "dependencies": { - "mongodb": "^4.1.0", - "node-opcua": "^2.64.0" + "mongodb": "^5.7.0", + "node-opcua": "^2.108.0" } } diff --git a/src/OPC-UA-Server/simple-logger.js b/src/OPC-UA-Server/simple-logger.js index adb64b40..2ee43cfd 100644 --- a/src/OPC-UA-Server/simple-logger.js +++ b/src/OPC-UA-Server/simple-logger.js @@ -1,7 +1,7 @@ 'use strict' /* - * {json:scada} - Copyright (c) 2020-2021 - Ricardo L. Olsen + * {json:scada} - Copyright (c) 2020-2023 - Ricardo L. Olsen * This file is part of the JSON-SCADA distribution (https://github.com/riclolsen/json-scada). * * This program is free software: you can redistribute it and/or modify