New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-opcua-service-filter

Package Overview
Dependencies
Maintainers
0
Versions
228
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-opcua-service-filter - npm Package Compare versions

Comparing version 2.143.0 to 2.149.0

114

dist/check_where_clause.js

@@ -13,21 +13,41 @@ "use strict";

if (value instanceof node_opcua_variant_1.Variant) {
return _coerceToBoolean(value.value);
return !!value.value;
}
return !!value;
}
function _coerceToNumber(value) {
function _coerceToCompareable(value) {
if (value instanceof node_opcua_variant_1.Variant) {
return _coerceToNumber(value.value);
switch (value.dataType) {
case node_opcua_variant_1.DataType.String:
return value.value;
case node_opcua_variant_1.DataType.Byte:
case node_opcua_variant_1.DataType.SByte:
case node_opcua_variant_1.DataType.Int16:
case node_opcua_variant_1.DataType.Int32:
case node_opcua_variant_1.DataType.UInt16:
case node_opcua_variant_1.DataType.UInt32:
return value.value;
case node_opcua_variant_1.DataType.Double:
return value.value;
case node_opcua_variant_1.DataType.DateTime:
return value.value.getTime();
case node_opcua_variant_1.DataType.Guid:
return value.value.toLowerCase();
case node_opcua_variant_1.DataType.ByteString:
return value.value.toString("hex");
case node_opcua_variant_1.DataType.XmlElement:
return value.value;
case node_opcua_variant_1.DataType.LocalizedText:
return value.value.text;
case node_opcua_variant_1.DataType.QualifiedName:
return value.value.name; // not sure about this one
default:
return "";
}
}
if (typeof value === "string") {
return parseInt(value, 10);
}
if (typeof value === "boolean") {
return value ? 1 : 0;
}
if (typeof value === "number") {
return value;
}
return 0;
return "";
}
function _coerceToEqualable(value) {
return value;
}
function evaluateOperand(filterContext, filter, operand, coerce) {

@@ -112,25 +132,65 @@ if (operand instanceof node_opcua_types_1.AttributeOperand) {

function checkLessThan(filterContext, filter, filteredOperands) {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA < operandB;
}
function checkLessThanOrEqual(filterContext, filter, filteredOperands) {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA <= operandB;
}
function checkGreaterThan(filterContext, filter, filteredOperands) {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA > operandB;
}
function checkGreaterThanOrEqual(filterContext, filter, filteredOperands) {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA >= operandB;
}
const isVariantEqual = (a, b) => {
switch (a.dataType) {
case node_opcua_variant_1.DataType.Null:
return b.dataType === node_opcua_variant_1.DataType.Null;
case node_opcua_variant_1.DataType.Boolean:
return a.value === b.value;
case node_opcua_variant_1.DataType.Byte:
case node_opcua_variant_1.DataType.SByte:
case node_opcua_variant_1.DataType.Int16:
case node_opcua_variant_1.DataType.Int32:
case node_opcua_variant_1.DataType.UInt16:
case node_opcua_variant_1.DataType.UInt32:
return a.value === b.value;
case node_opcua_variant_1.DataType.Double:
return a.value === b.value;
case node_opcua_variant_1.DataType.String:
return a.value === b.value;
case node_opcua_variant_1.DataType.NodeId:
return (0, node_opcua_nodeid_1.sameNodeId)(a.value, b.value);
case node_opcua_variant_1.DataType.DateTime:
return a.value?.getTime() === b.value.getTime();
case node_opcua_variant_1.DataType.Guid:
return a.value.toLowerCase() === ("" + (b.value || "")).toLowerCase();
case node_opcua_variant_1.DataType.ByteString:
if (b.dataType !== node_opcua_variant_1.DataType.ByteString) {
return false;
}
return a.value.toString("hex") === b.value.toString("hex");
case node_opcua_variant_1.DataType.XmlElement:
return a.value === b.value;
case node_opcua_variant_1.DataType.LocalizedText:
return a.value?.text === b.value?.text;
case node_opcua_variant_1.DataType.QualifiedName:
return a.value?.namespaceIndex === b.value?.namespaceIndex && a.value?.name === b.value?.name;
case node_opcua_variant_1.DataType.ExtensionObject:
console.log("isVariantEqual: Not implemented for DataType.ExtensionObject");
default:
return false; // not sure how to do
}
};
function checkEquals(filterContext, filter, filteredOperands) {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
return operandA === operandB;
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToEqualable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToEqualable);
return isVariantEqual(operandA, operandB);
}

@@ -150,5 +210,5 @@ /**

function checkBetween(filterContext, filter, filteredOperands) {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToCompareable);
return operandA >= operandLow && operandA <= operandHigh;

@@ -155,0 +215,0 @@ }

{
"name": "node-opcua-service-filter",
"version": "2.143.0",
"version": "2.149.0",
"description": "pure nodejs OPCUA SDK - module service-filter",

@@ -13,3 +13,3 @@ "main": "./dist/index.js",

"dependencies": {
"node-opcua-address-space-base": "2.143.0",
"node-opcua-address-space-base": "2.149.0",
"node-opcua-assert": "2.139.0",

@@ -47,3 +47,3 @@ "node-opcua-basic-types": "2.139.0",

"homepage": "http://node-opcua.github.io/",
"gitHead": "3bd85d4036f219f6f7e401d54e60afb3592ff1ba",
"gitHead": "f88519f1ee215d924c051e86a8ccf0eca3be27bd",
"files": [

@@ -50,0 +50,0 @@ "dist",

@@ -21,24 +21,44 @@ import {

function _coerceToBoolean(value: Variant | number | string | null | boolean): boolean {
function _coerceToBoolean(value: Variant | string| number | null ): boolean {
if (value instanceof Variant) {
return _coerceToBoolean(value.value);
return !!value.value;
}
return !!value;
}
function _coerceToNumber(value: Variant | number | string | null | boolean): number {
function _coerceToCompareable(value: Variant): string | number {
if (value instanceof Variant) {
return _coerceToNumber(value.value);
switch (value.dataType) {
case DataType.String:
return value.value;
case DataType.Byte:
case DataType.SByte:
case DataType.Int16:
case DataType.Int32:
case DataType.UInt16:
case DataType.UInt32:
return value.value;
case DataType.Double:
return value.value;
case DataType.DateTime:
return value.value.getTime();
case DataType.Guid:
return value.value.toLowerCase();
case DataType.ByteString:
return value.value.toString("hex");
case DataType.XmlElement:
return value.value;
case DataType.LocalizedText:
return value.value.text;
case DataType.QualifiedName:
return value.value.name; // not sure about this one
default:
return "";
}
}
if (typeof value === "string") {
return parseInt(value, 10);
}
if (typeof value === "boolean") {
return value ? 1 : 0;
}
if (typeof value === "number") {
return value;
}
return 0;
return "";
}
function _coerceToEqualable(value: Variant): Variant {
return value;
}
function evaluateOperand<T>(

@@ -134,4 +154,4 @@ filterContext: FilterContext,

function checkLessThan(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA < operandB;

@@ -141,4 +161,4 @@ }

function checkLessThanOrEqual(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA <= operandB;

@@ -148,4 +168,4 @@ }

function checkGreaterThan(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA > operandB;

@@ -155,10 +175,53 @@ }

function checkGreaterThanOrEqual(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
return operandA >= operandB;
}
const isVariantEqual = (a: Variant, b: Variant): boolean => {
switch (a.dataType) {
case DataType.Null:
return b.dataType === DataType.Null;
case DataType.Boolean:
return a.value === b.value;
case DataType.Byte:
case DataType.SByte:
case DataType.Int16:
case DataType.Int32:
case DataType.UInt16:
case DataType.UInt32:
return a.value === b.value;
case DataType.Double:
return a.value === b.value;
case DataType.String:
return a.value === b.value;
case DataType.NodeId:
return sameNodeId(a.value as NodeId, b.value as NodeId);
case DataType.DateTime:
return (a.value as Date)?.getTime() === (b.value as Date).getTime();
case DataType.Guid:
return a.value.toLowerCase() === ("" + (b.value || "")).toLowerCase();
case DataType.ByteString:
if (b.dataType !== DataType.ByteString) {
return false;
}
return a.value.toString("hex") === b.value.toString("hex");
case DataType.XmlElement:
return a.value === b.value;
case DataType.LocalizedText:
return a.value?.text === b.value?.text;
case DataType.QualifiedName:
return a.value?.namespaceIndex === b.value?.namespaceIndex && a.value?.name === b.value?.name;
case DataType.ExtensionObject:
console.log("isVariantEqual: Not implemented for DataType.ExtensionObject");
default:
return false; // not sure how to do
}
}
function checkEquals(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
return operandA === operandB;
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToEqualable);
const operandB = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToEqualable);
return isVariantEqual(operandA, operandB);
}

@@ -178,5 +241,5 @@ /**

function checkBetween(filterContext: FilterContext, filter: ContentFilter, filteredOperands: FilterOperand[]): boolean {
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToNumber);
const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToNumber);
const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToNumber);
const operandA = evaluateOperand(filterContext, filter, filteredOperands[0], _coerceToCompareable);
const operandLow = evaluateOperand(filterContext, filter, filteredOperands[1], _coerceToCompareable);
const operandHigh = evaluateOperand(filterContext, filter, filteredOperands[2], _coerceToCompareable);
return operandA >= operandLow && operandA <= operandHigh;

@@ -183,0 +246,0 @@ }

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc