Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@modusjs/convert
Advanced tools
Universal library for reading/writing/validating Modus files/resources. Converts between:
This library works in the browser and in node.
yarn add @modusjs/convert
# or
npm install @modusjs/convert
import { xml } from '@modusjs/convert';
// Just parse as tolerantly as possible, no validation against resulting json schema:
const json_unvalidated = xml.parse(xml_string_from_somewhere);
// parse and validate
const json = xml.parseAsModusResult(xml_string_from_somewhere);
import { csv } from '@modusjs/convert';
// Using the tomkat generic xlsx parsing
// (works for sheets that have the structure outlined below)
// parse as base64:
let json = parse({ base64: base_64_string, format: 'generic' });
// parse as ArrayBuffer (useful when retrieving from Google Drive, for example):
json = parse({ arrbuf: the_array_buffer, format: 'generic' });
// parse as string (i.e. a CSV):
json = parse({ str: csv_string, format: 'generic' });
// parse from an already-parsed SheetJS workbook (https://www.npmjs.com/package/xlsx)
json = parse({ wb: parsed_workbook, format: 'generic' });
Because lab result formats are highly irregular, the CSV conversion may require some hand modifications currently to what is directly produced by a lab:
COMMENT
to any column of a row that you want to ignore from parsing. Do this to pretty much any non lab-result rows.UNITS
to any column of a row that contains unit information for the corresponding column header. This will override any unit information used by default for lab result elements.With these simple modifications, most CSV files can be coerced into modus format without too much effort.
This library is universal, so it runs tests both in-browser and in node. To simplify
browser testing, the src/test/
folder holds an HTML file that opens a browser on your machine,
imports the compiled test bundle, and then runs the tests listed there. Option for getting
an automated result from this in the future might be TestCafe...
To run just the browser tests: yarn test:browser
.
To run just the node tests: yarn test:node
.
To build: yarn build
.
To rollup dist/index.mjs
bundle for browser: yarn build:rollup
To compile/bundle everything live as you code: yarn dev
To run all tests live as you code (you should run yarn dev
at the same time): yarn test
.
FAQs
Universal library for interacting with Modus XML files
We found that @modusjs/convert demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.