
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
@splunk/visualization-encoding-parsers
Advanced tools
Visualization encoding parsers transform data from datasources to props of react visualization components. A visualization encoding parser takes a datasources object and an optional encoding configuration, and returns props a react-visualization can under
Visualization encoding parsers transform data from datasources to props of react visualization components. A visualization encoding parser takes a datasources object and an optional encoding configuration, and returns props a react-visualization can understand to visualize data.
import { parse } from '@splunk/visualization-encoding-parsers/Base';
// data from datasources
const dataProps = parse(data, {
x: 'primary[0]',
y: 'primary[1]',
});
/*
parse returns dataProps as
{
x: [...], // data from the first column of the primary datasource
y: [...], // data from the second column of the primary datasource
_meta: {
fieldNames: {
x: 'xFieldName',
y: 'yFieldName'
},
},
}
*/
The base parser implements core functionality that all visualization specific parsers need, e.g. getting data based on data field references, or formatting data.
import { parse } from '@splunk/visualization-encoding-parsers/AreaParser';
import Area from '@splunk/react-visualizations/Area';
// data from datasources
const dataProps = parse(data);
<Area {...dataProps} />;
import { parse } from '@splunk/visualization-encoding-parsers/AreaParser';
import Area from '@splunk/react-visualizations/Area';
// data from datasources
const dataProps = parse(data, {
x: 'primary._time',
y: 'primary.count',
});
<Area {...dataProps} />;
The encoding config is an explicit way of mapping visualization dimensions (e.g. x, y, color, size) to data from a datasource. Each key represents a visual encoding in the visualization, each value represents a data field reference.
Explicit encoding with field name reference in datasource
{
x: 'primary._time',
y: 'primary.count'
}
// returns
{
x: [...], // data from primary._time
y: [...], // data from primary.count,
_meta: {...} // meta data about the fields
}
A bit more loose encoding with field index reference in datasource. This is commonly used as fallback strategy when the field names are not (yet) known.
{
x: 'primary[0]',
y: 'primary[1]'
}
// returns
{
x: [...], // data from first field index of primary
y: [...], // data from second field index of primary
_meta: {...} // meta data about the fields
}
Any visual encoding can also be powered by multiple fields from a datasource. The following is an example for multiple y series
{
x: 'primary._time',
y: ['primary.count1', 'primiary.count2']
}
// returns
{
x: [...], // data for time
y: [[...], [...]], // array of data arrays, first containing data for count1 field from primary datasource, second containing data for count2 field from primary datasource
_meta: {...} // meta data about the fields
}
When it's not clear how many fields are available in a result set, or if the data fields change over time it's recommended to use index range field references with open boundaries. The following is an example for multiple y series, where the number of y series can be dynamic
{
x: 'primary[0]',
y: 'primary[1:]'
}
// returns
{
x: [...], // first column of data
y: [[...], [...], ...] // array of data arrays starting from column index 1 til end of datasource fields
_meta: { ... } // meta data about fields
}
Two formatter configurations are supported at the moment:
Finds the range a numeric value fits in based on a range configuration and returns the specified value. The range is determined by matching from <= value < to. E.g with the following encoding example, the value 100 will be formatted to 'red' because 100 <= value. The value 66 will be formatted to 'green' because 50 <= 66 < 100
encoding: {
color: {
field: 'primary.count',
format: {
type: 'rangevalue',
ranges: [
{
from: 100,
value: 'red'
},
{
from: 50,
to: 100,
value: 'green'
},
{
to: 50,
value: 'red'
}
]
}
}
}
{
color: {
field: 'primary.count',
format: {
ranges: [0, 10, 20, 50],
values: ['#333', '#444', '#555', '#666']
}
}
}
{
x: {
field: 'primary.category',
format: {
categories: ['test', 'toast']
values: [50, 100]
}
}
}
Note: If categories, ranges, and values are present in the formatter config, it will format the data based on the range value formatting and ignore the categories.
FAQs
Visualization encoding parsers transform data from datasources to props of react visualization components. A visualization encoding parser takes a datasources object and an optional encoding configuration, and returns props a react-visualization can under
We found that @splunk/visualization-encoding-parsers demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.