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.
iso-datestring-validator
Advanced tools
The goal of the package is to provide lightweight tools for validating strings denotings dates and time. It includes ISO 8601 datestring validation, simple YYYY-MM-DD date validation and time validation in hh:mm:ss.fff format. See details in readme.
A simple package for validating strings denoting dates and time, including ISO 8601 format. The package provides the following functions:
Date validation. YYYY-MM-DD format from 0001-01-01 to 9999-12-31, leap year friendly. Custom digit separators and null separators supported: YYYY/MM/DD or YYYYMMDD is no problem.
Time validation. HH:mm:ss.fff±hh:mm format, seconds, fractions of seconds and timezone offset being optional. Custom digit separators supported for HHmmss as well (no custom separator for fractions, it is dot).
Caveat: do not use '-' and '+' as separators when validating time with timezone. I am reluctant to fix this unless it is an issue.
isValidTime('14-45-15.000+00-00', '-', true);
// will yield wrong result
Year-month validation.
ISO 8601 datestring validation with timezones, with and without separators:
npm i --save iso-datestring-validator
or
yarn add iso-datestring-validator
import * as isoDatestringValidator from 'iso-datestring-validator';
alternatively you can import the function that you need separately:
import {
isValidDate,
isValidISODateString,
isValidTime,
isValidYearMonth,
} from 'iso-datestring-validator';
Pass a YYYY-MM-DD date string to the isValidDate function to check it. To validate dates that use a custom digit separator, pass it as the second argument.
import { isValidDate } from 'iso-datestring-validator';
isValidDate('2019-01-31');
// true
isValidDate('20190131');
// false, no custom digit separator provided, hyphen separator not found in the string
isValidDate('20190131', '');
// true
isValidDate('2019/01/31', '/');
// true
Time string in HH:mm:ss.fff±hh:mm format can be validated with the isValidTime function. Seconds and fractions are optional. However, if using fractions min number of numbers is 1 and max is 9. Zone offset is optional as well, its check is switched off by default.
import { isValidTime } from 'iso-datestring-validator';
isValidTime('13:00');
// true
isValidTime('13:00:00');
// true
isValidTime('13:00:00.000000000');
// true
// pass time, separator and boolean flag to enable zone offset check
isValidTime('14:45:15.000+00:00', ':', true);
// true
// you can take advantage of default separator if you pass undefined as second param
isValidTime('14:45:15.000+00:00', undefined, true);
// true
isValidTime('144515.000Z', '', true);
// true
These are validated by the isValidYearMonth function. Rules same as in the previous case: a string YYYY-MM and a custom digit separator if required.
import { isValidYearMonth } from 'iso-datestring-validator';
isValidYearMonth('2019/01', '/');
// true
isValidYearMonth('2019-01');
// true
Pass a string to isValidISODateString to see if it is valid.
import { isValidISODateString } from 'iso-datestring-validator';
isValidISODateString('2019-07-09T15:03:36.000+00:00');
// true
isValidISODateString('20190709T150336Z');
// true
That's all about this package. Have fun, feel free to contribute with some test :]
FAQs
The goal of the package is to provide lightweight tools for validating strings denotings dates and time. It includes ISO 8601 datestring validation, simple YYYY-MM-DD date validation and time validation in hh:mm:ss.fff format. See details in readme.
The npm package iso-datestring-validator receives a total of 37,769 weekly downloads. As such, iso-datestring-validator popularity was classified as popular.
We found that iso-datestring-validator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.